curl --request PUT \
--url https://api.sandbox.paypathiq.com/v1/clients/{clientCode}/payment-reconciliations/{externalReconciliationId}/resolution \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"basis": "authorized_correction",
"reference": "SRC_CORRECTION_17"
}
'{
"acceptedAt": "2026-10-15T12:30:00.000Z",
"allocations": [
{
"allocatedAmount": {
"amount": "100.00",
"currency": "EUR"
},
"externalReceivableId": "REC_EXAMPLE_1",
"matchedAmount": {
"amount": "100.00",
"currency": "EUR"
},
"unmatchedAmount": {
"amount": "0.00",
"currency": "EUR"
}
},
{
"allocatedAmount": {
"amount": "200.00",
"currency": "EUR"
},
"externalReceivableId": "REC_EXAMPLE_2",
"matchedAmount": {
"amount": "0.00",
"currency": "EUR"
},
"unmatchedAmount": {
"amount": "200.00",
"currency": "EUR"
}
}
],
"externalPaymentRequestId": "PAYREQ_EXAMPLE",
"externalReconciliationId": "RECON_EXAMPLE",
"lines": [
{
"amount": {
"amount": "100.00",
"currency": "EUR"
},
"externalReceiptLineId": "RCPT_LINE_1",
"externalReceivableId": "REC_EXAMPLE_1",
"state": "matched"
}
],
"paymentAmount": {
"amount": "300.00",
"currency": "EUR"
},
"revision": 1,
"status": "matched",
"unappliedAmount": {
"amount": "0.00",
"currency": "EUR"
},
"unmatchedAmount": {
"amount": "200.00",
"currency": "EUR"
}
}Resolve payment reconciliation differences
Requires financial_corrections:write. Resolves the held differences of one reconciliation. matching_evidence is accepted only when matched receipt lines now account for the full allocated amount of every held Receivable. authorized_correction records the Source’s reference to a Client-authorized correction. Both preserve the original receipt figures and clear only this reconciliation’s restriction; recovery never resumes automatically. Resolving a reconciliation with no held difference returns 409. An identical retry returns 200 and changes nothing.
curl --request PUT \
--url https://api.sandbox.paypathiq.com/v1/clients/{clientCode}/payment-reconciliations/{externalReconciliationId}/resolution \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"basis": "authorized_correction",
"reference": "SRC_CORRECTION_17"
}
'{
"acceptedAt": "2026-10-15T12:30:00.000Z",
"allocations": [
{
"allocatedAmount": {
"amount": "100.00",
"currency": "EUR"
},
"externalReceivableId": "REC_EXAMPLE_1",
"matchedAmount": {
"amount": "100.00",
"currency": "EUR"
},
"unmatchedAmount": {
"amount": "0.00",
"currency": "EUR"
}
},
{
"allocatedAmount": {
"amount": "200.00",
"currency": "EUR"
},
"externalReceivableId": "REC_EXAMPLE_2",
"matchedAmount": {
"amount": "0.00",
"currency": "EUR"
},
"unmatchedAmount": {
"amount": "200.00",
"currency": "EUR"
}
}
],
"externalPaymentRequestId": "PAYREQ_EXAMPLE",
"externalReconciliationId": "RECON_EXAMPLE",
"lines": [
{
"amount": {
"amount": "100.00",
"currency": "EUR"
},
"externalReceiptLineId": "RCPT_LINE_1",
"externalReceivableId": "REC_EXAMPLE_1",
"state": "matched"
}
],
"paymentAmount": {
"amount": "300.00",
"currency": "EUR"
},
"revision": 1,
"status": "matched",
"unappliedAmount": {
"amount": "0.00",
"currency": "EUR"
},
"unmatchedAmount": {
"amount": "200.00",
"currency": "EUR"
}
}Authorizations
Integration-owned environment-specific API key. Never paste a production key into documentation tools.
Path Parameters
Stable non-sensitive Client code authorized by the Integration grant.
^[A-Za-z0-9_-]{1,128}$Caller-assigned identifier of this reconciliation. Reusing it with an identical body is a safe retry.
^[A-Za-z0-9_-]{1,128}$Body
One uncompressed resource representation, limited to 256 KiB.
matching_evidence: accepted only when matched receipt lines now account for the full allocated amount of every held Receivable. authorized_correction: the Client authorized a correction in the Source.
matching_evidence, authorized_correction The Source's reference to the matching evidence or authorized correction.
1 - 200Response
Identical safe retry.
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$The Payment's allocations as of this read, across every reconciliation of the Payment. unmatchedAmount is the allocated amount no Source receipt line has acknowledged yet.
Show child attributes
Show child attributes
^[A-Za-z0-9_-]{1,128}$^[A-Za-z0-9_-]{1,128}$Show child attributes
Show child attributes
Show child attributes
Show child attributes
Increases each time the reconciliation's state changes. It matches the revision in change-feed events.
1 <= x <= 9007199254740991matched: every line fits the allocated amounts. held: at least one line differs and affected recovery and Payment actions are held. resolved: every difference was cleared by matching evidence or an authorized correction.
matched, held, resolved Funds of the Payment that no allocation covers. They are never acknowledged by receipt lines.
Show child attributes
Show child attributes
The total allocated amount of the Payment that no Source receipt line has acknowledged yet.
Show child attributes
Show child attributes
Show child attributes
Show child attributes