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.

FieldValues
settlementStatusOPEN: the processor can still add or change items. FINAL: the settlement is closed. Reconcile against FINAL settlements.
processingStatusPENDING or PROCESSING while Payment Labs reads the processor's files, SUCCESS when every file was read, ERROR when reading failed (see error).
summaryTotals 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:

typeMeaning
CREDITMoney paid to you, normally a buyer's payment.
DEBITMoney taken from you.
FEEA processor fee.
REFUNDA refund you issued.
CHARGEBACKA payment the buyer's bank disputed and reversed.
ADJUSTMENTA 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, totalItems and the settlement's summary.
  • Has this checkout settled? Search Settlement Items filtered on checkoutId (or transactionId, 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:

Common codes:

CodeMeaning
TRANSACTION_NOT_FOUNDNo checkout or subscription payment matches the processor's reference, for example a payment taken outside Payment Labs.
TRANSACTION_AMOUNT_MISMATCHThe item's amount differs from the matched transaction.
DOWNLOAD_ERROR, SETTLEMENT_FILE_PARSING_ERROR, SETTLEMENT_FILE_LINE_PROCESSING_ERRORThe 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


What’s Next

Next: Webhooks.

Did this page help you?