Overview
When a project manager issues a payment in Qondor — whether an invoice specification, credit card payment, or credit note — it enters a processing queue. Your integration retrieves payments from this queue, validates them against your finance system, and reports the result back to Qondor.
Your integration handles:
Fetching unprocessed payments from the queue
Validating content (article codes, VAT rates, customer data, account mappings)
Creating invoices in your finance system
Reporting success or failure back to Qondor
Qondor handles:
Notifying project managers when processing fails
Displaying processing status and error messages
Allowing deletion of failed payments so corrected ones can be created
Flowchart:
Payment states
State | Description | Next actions |
Unprocessed | Ready for your integration to pick up | Validate → SetAsProcessed or SetAsFailed |
Processed | Successfully transferred to finance system | SetAsPaid (when paid) |
Failed | Validation failed (final state) | Delete in Qondor, create new payment |
Paid | Payment received | — |
API endpoints
Method | Endpoint | Description |
GET | Invoice/GetAllUnprocessedInvoices | Get payments ready for processing |
GET | Invoice/{id} | Get full details of a payment |
PUT | Invoice/SetAsProcessed | Mark as successfully processed |
PUT | Invoice/SetAsFailed | Mark as failed (final state) |
PUT | Invoice/SetAsPaid | Mark as paid |
Step 1: Fetch unprocessed payments
GET /Invoicing/v1/Invoice/GetAllUnprocessedInvoices
Host: qondor.azure-api.net
Ocp-Apim-Subscription-Key: your-api-key
This returns all payments ready for processing, including:
Invoice specifications
Credit card payments
Credit notes (cancellations)
Note: Failed payments do not appear in this queue. Only unprocessed payments are returned.
Step 2: Validate and process
For each payment, validate the content against your finance system:
Article codes: Do product references exist in your system?
Customer data: Is the customer reference valid?
Step 3: Report the result
Success: SetAsProcessed
When the payment is successfully processed in your finance system:
PUT /Invoicing/v1/Invoice/SetAsProcessed
Host: qondor.azure-api.net
Ocp-Apim-Subscription-Key: your-api-key
Content-Type: application/json
{
"invoiceId": 12345,
"externalReference": "FIN-2024-00789"
}
Field | Required | Description |
invoiceId | Yes | The Qondor payment ID |
externalReference | No | Reference from your finance system (recommended) |
Failure: SetAsFailed
When validation fails and the payment cannot be processed:
PUT /Invoicing/v1/Invoice/SetAsFailed
Host: qondor.azure-api.net
Ocp-Apim-Subscription-Key: your-api-key
Content-Type: application/json
{
"invoiceId": 12345,
"failureMessage": "Article code 'CONF-ROOM-DLX' not found in finance system"
}
Field | Required | Description |
invoiceId | Yes | The Qondor payment ID |
failureMessage | Yes | Clear description of why validation failed |
What happens when you call SetAsFailed:
The payment is marked as failed (final state)
It is removed from the unprocessed queue
An email notification is sent to the project manager with your failure message
The failure message is displayed in Qondor with an error indicator
For invoice payments: the project manager can delete the failed payment and create a new, corrected one
For credit card payments: the payment cannot be deleted or edited — see FAQ below
Important: SetAsFailed is a final state. The payment cannot be reprocessed. If the underlying data needs to be corrected, the project manager must delete the failed payment in Qondor and create a new one.
Write clear failure messages — they help project managers understand exactly what needs to be fixed:
Good | Bad |
"Article code 'ROOM-DLX' not found in finance system" | "Invalid article" |
"Customer 'Acme Corp' (ref: CUST-999) not found" | "Customer error" |
"VAT rate 12% not configured for product category 'Accommodation'" | "VAT error" |
Step 4: Mark as paid
Once payment is received:
PUT /Invoicing/v1/Invoice/SetAsPaid
Host: qondor.azure-api.net
Ocp-Apim-Subscription-Key: your-api-key
Content-Type: application/json
{
"invoiceId": 12345,
"paidDate": "2024-02-10"
}
Edge case: SetAsUnprocessed
Note: This endpoint is for exceptional circumstances only, such as when your integration incorrectly marked a payment as processed.
PUT /Invoicing/v1/Invoice/SetAsUnprocessed
Host: qondor.azure-api.net
Ocp-Apim-Subscription-Key: your-api-key
Content-Type: application/json
{
"invoiceId": 12345
}
This returns a processed payment to the unprocessed queue. Use this only when:
Your integration made an error and marked something as processed when it shouldn't have been
A human administrator needs to trigger reprocessing
Restrictions:
Only works on processed payments (not failed ones)
Credit notes cannot be set back to unprocessed once processed
Invoice API Business rules summary
Action | Restriction |
SetAsProcessed | Must not be already paid or failed |
SetAsFailed | Must not be already processed or paid |
SetAsUnprocessed | Only for processed payments; credit notes cannot be reverted |
SetAsPaid | Must be processed; credit card payments cannot be manually set as paid |
FAQ
What happens if a credit card payment is set to failed?
Credit card payments have already collected money before entering the processing queue. When set to failed:
The payment cannot be deleted (money has been collected)
The payment cannot be edited in Qondor
Recovery depends on where the error originated:
Error source | Can recover? | Action |
Integration/finance system | Yes | Call SetAsUnprocessed to return to queue, then reprocess |
Qondor data | No | Contact Qondor support for consulting options |
When should I use SetAsUnprocessed?
Only use SetAsUnprocessed when your integration made an error - for example:
A bug in your validation logic incorrectly rejected the payment
A temporary issue in your finance system
Configuration was missing but has now been added
Do not use it to recover from data errors in Qondor, as the payment will fail again with the same error.

