Reconcile adjustments in transfers

Learn how to use the Payabli API to track adjustments, such as ACH returns and chargebacks, in your money in transfers

Applies to:DevelopersPartners

If you need to build your own money in reconciliation processes or dashboards, follow this guide to find chargebacks, ACH returns, and other adjustments that are included with transfers.

You can learn more about the difference between batches and transfers in the How Money Moves guide.

The process

Choose a process to find transfer details. If you already have a TransferId, choose Find by transfer

If you need to find transfers that include returns and chargebacks by batch, use this approach.

1

Get list of batches

Make a GET request to /Query/batches/{entry}` to list batches by a paypoint. You can use filters and conditions to limit the responses.

cURL example
1curl --request GET \
2 --url https://api.payabli.com/api/Query/batches/476aacfed00?limitRecord=20&fromRecord=0&batchDate=2024-01-17 \
3 --header 'requestToken: <API TOKEN>'
2

Check response for transfers with ACH returns and chargebacks

Now, check to see if the target batch has a transfer, and if the transfer had an ACH return or chargeback.

Check if the batch contains any data in the Transfer object:

  • If it doesn’t, it means that the batch hasn’t been transferred yet.
  • If it does, it means the batch has been transferred. The Transfer object contains the summary info about that transfer.

Check in the Transfer object to see if ReturnedAmount or ChargeBackAmount is 0. If the amount is anything other than 0, then it means the transfer included ACH returns or chargebacks.

Example response
1{
2 "Summary": {
3 "totalRecords": 2,
4 "totalAmount": 222.22,
5 "totalNetAmount": 0.0,
6 "totalPages": 1,
7 "pageSize": 20,
8 "pageidentifier": "x19smxocx..."
9 },
10 "Records": [
11 {
12 "IdBatch": 110297,
13 "BatchNumber": "batch_1000_combined_01-17-2024",
14 "ConnectorName": " ",
15 "BatchDate": "2024-01-17T00:00:00",
16 "BatchAmount": 222.22,
17 "BatchFeesAmount": 0.00,
18 "BatchAuthAmount": 222.22,
19 "BatchReleasedAmount": 0.00,
20 "BatchHoldAmount": 0.00,
21 "BatchReturnedAmount": -140.00,
22 "BatchRefundAmount": 0.00,
23 "BatchSplitAmount": 11.60,
24 "BatchStatus": 3,
25 "BatchRecords": 1,
26 "PaypointId": 123,
27 "PaypointName": "San Valentino Acres Neighborhood Assn, LLC",
28 "PaypointDba": "San Valentino Acres",
29 "ParentOrgName": "HOAManager",
30 "externalPaypointID": null,
31 "Method": "combined",
32 "ExpectedDepositDate": "2024-01-22T00:00:00",
33 "TransferDate": "2024-01-20T00:00:00",
34 "Transfer": {
35 "TransferId": 10101, // Copy the TransferId for the next step
36 "TransferDate": "2024-01-20T23:45:01.877",
37 "Processor": " ",
38 "TransferStatus": 3,
39 "GrossAmount": 222.22,
40 "ChargeBackAmount": 0.00, // If amount isn't 0, then this transfer has chargebacks in it
41 "ReturnedAmount": -140.00, // If Amount isn't 0, then this transfer has ACH returns in it
42 "RefundAmount": 0.00,
43 "HoldAmount": 0.00,
44 "ReleasedAmount": 0.00,
45 "BillingFeesAmount": 0.00,
46 "ThirdPartyPaidAmount": 0.00,
47 "AdjustmentsAmount": 0.00,
48 "NetFundedAmount": 93.82
49 }
50 }
51
52 ]
53}

Copy the TransferId for the next step.

3

Get transfer details

Fetch the transfer details to know about the specific ACH returns or chargebacks processed in the transfer.

Use the TransferId from the last step and make a GET request to /Query/transferDetails/{entry}/{transferId}. You can use filters and conditions to limit the responses.

curl example
$curl --request GET \
> --url https://api.payabli.com/api/Query/transferDetails/476aacfed00/10101?limitRecord=20&fromRecord=0 \
> --header 'requestToken: <API TOKEN>'

Review the response to get details about individual transactions with chargebacks or returns.

1{
2 "Summary": {
3 "achReturns": -140, // If this amount isn't 0, then the transfer had ACH returns
4 "adjustments": 0,
5 "billingFees": 0,
6 "chargebacks": 0, // If this amount isn't 0, then the transfer had chargebacks
7 "grossTransferAmount": 222.22,
8 "releaseAmount": 0,
9 "thirdPartyPaid": 0,
10 "totalNetAmountTransfer": 93.82,
11 ...
12 },
13 "Records": [
14 {
15 "transferDetailId": 34135,
16 "transferId": 10101,
17 "transactionId": "100-b1000d0ec123456789aa",
18 "transactionNumber": "TRN_fEoo5pq0000XXX",
19 "paypointId": 937,
20 "type": "debit",
21 "category": "return", // Indicates that a transaction had a return. The value is `chargeback` if the transaction has a chargeback
22 "method": "ach",
23 "grossAmount": 0,
24 "chargeBackAmount": 0, // The chargeback amount for the transaction
25 "returnedAmount": -140, // The ACH Return Amount for this transaction
26 "refundAmount": 0,
27 "holdAmount": 0,
28 "releasedAmount": 0,
29 "billingFeesAmount": 0,
30 "thirdPartyPaidAmount": 0,
31 ...
32 }
33 ]
34}

Go further

You can use this process to reconcile other adjustments to your transfers. Just follow the steps and look for these values instead of ChargeBackAmount and ReturnedAmount:

  • holdAmount
  • releasedAmount
  • billingFeesAmount
  • thirdPartyPaidAmount
  • adjustmentsAmount