Settlements and Reconciliation
Match the money your processor pays out with your checkouts, refunds, fees and chargebacks, one settlement date at a time.
Your payment processor pays out the money from your payins in batches, net of fees, refunds and chargebacks. A settlement is Payment Labs' record of one such batch: everything the processor reported for one settlement date, matched to your checkouts and subscription payments. Use it to reconcile your bank deposits with your sales.
The settlement API is read-only. You cannot create or change a settlement.
Before you start
- Get a token with Create Access Token, the same login payors use, from a credential with the Merchant Read permission. See Permissions.
- Settlement data comes from your processor's settlement reports. If you see no settlements, ask Payment Labs whether settlement reporting is enabled for your account.
- The search operations use the request format in Search, Exports and Pagination.
Settlements
A settlement (E-…) has a settlementDate, counts of its items, and a summary of totals by item type and currency.
| Field | Values |
|---|---|
settlementStatus | OPEN: the processor can still add or change items. FINAL: the settlement is closed. Reconcile against FINAL settlements. |
processingStatus | PENDING or PROCESSING while Payment Labs reads the processor's files, SUCCESS when every file was read, ERROR when reading failed (see error). |
summary | Totals per currency for total, credit, debit, fee, chargeback, adjustment and refund. calculatedAt is null while the totals are still being calculated. |
Find settlements with Search Settlements. You can filter and sort on id, settlementDate, settlementStatus, processingStatus, the item counts, and auditInfo.createdAt / auditInfo.updatedAt.
curl -X POST https://api-sandbox.paymentlabs.io/settlements/search \
-H "Authorization: Bearer $PAYMENT_LABS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"filter": {
"all": [
{ "fact": "settlementDate", "operator": "inRange", "value": ["2026-10-01", "2026-10-31"] },
{ "fact": "settlementStatus", "operator": "equals", "value": "FINAL" }
]
},
"sort": [{ "fieldName": "settlementDate", "order": "desc" }],
"pageSize": 50
}'For totals across many settlements, send the same filter to Summarize Settlements. It returns one group per settlementStatus, each with a count and totals per item type and currency.
Settlement items
Each item is one line of the processor's report:
type | Meaning |
|---|---|
CREDIT | Money paid to you, normally a buyer's payment. |
DEBIT | Money taken from you. |
FEE | A processor fee. |
REFUND | A refund you issued. |
CHARGEBACK | A payment the buyer's bank disputed and reversed. |
ADJUSTMENT | A manual or processor adjustment. |
When Payment Labs matches an item to your payin, the item carries checkoutId, transactionId, and for subscriptions subscriptionId and paymentId. settlementDate is the date the processor reported.
- All items of one settlement: List Settlement Items. The response holds
items,totalItemsand the settlement'ssummary. - Has this checkout settled? Search Settlement Items filtered on
checkoutId(ortransactionId,paymentId,subscriptionId,type,processingStatus):
curl -X POST https://api-sandbox.paymentlabs.io/settlements/items/search \
-H "Authorization: Bearer $PAYMENT_LABS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"filter": { "all": [{ "fact": "checkoutId", "operator": "equals", "value": "S-01JBX7Z3K9M2N4P6Q8R0S2T4V6" }] }
}'No items means the processor has not reported the payment yet. How long that takes depends on your processor's payout schedule.
Errors and edge cases
An item that could not be matched or processed has processingStatus: "ERROR". Read why with:
- List Settlement Errors: problems reading the processor's files, grouped by file.
- List Settlement Item Errors: problems with individual items.
Common codes:
| Code | Meaning |
|---|---|
TRANSACTION_NOT_FOUND | No checkout or subscription payment matches the processor's reference, for example a payment taken outside Payment Labs. |
TRANSACTION_AMOUNT_MISMATCH | The item's amount differs from the matched transaction. |
DOWNLOAD_ERROR, SETTLEMENT_FILE_PARSING_ERROR, SETTLEMENT_FILE_LINE_PROCESSING_ERROR | The processor's file could not be downloaded or read. Contact Payment Labs support with the settlement ID. |
List Settlement Items and both error operations return 404 for an unknown settlement and 403 for a settlement that belongs to another account.
Next steps
Updated 1 day ago
What’s Next
Next: Webhooks.
