Specification
Transactions
Transaction API calls
List
List transactions that have been processed by the platform.
Path
GET
/transactions?{query parameters}
Query Parameters
Field | Required | Description | Example |
---|---|---|---|
transaction_status_lookups_id | N | Filter for specific transaction statuses | loo_abc123... |
charged_at_start_date | N | Filter for transactions that got charged after this date | 2024-06-14 |
charged_end_date | N | Filter for transactions that got charged before this date | 2024-10-26 |
status_changed_at_start_date | N | Filter for transactions that had their status changed after this date | 2024-07-06 |
status_changed_at_end_date | N | Filter for transactions that had their status changed before this date | 2024-08-04 |
payment_methods_id | N | ID of the payment method used with this transaction, see payment methods | pam_abc123... |
Response Body
{
"status": true,
"transactions": [{
"id": "tra_abc123...",
"created_at": "2024-12-28 22:14:47",
"updated_at": null,
"charged_at": "2024-02-03 08:14:35",
"status_changed_at": "2024-02-04 16:45:23",
"payment_methods_id": "pam_abc123...",
"payments_id": "pay_abc123...",
"customers_id": "cus_lpzgQpM56pm-FC01L4qSb",
"bank_accounts_id": "ban_bV4BP2PcdJFgu9lVawE0_",
"mandates_id": "man_GxHu2gBsBWnddf0-Sh5Cm",
"transaction_reference": "INV0045",
"payment_reference": "FAHE03053406",
"submission_batch_reference": "ABBO61857139",
"transaction_status_lookups_id": "loo_abc123...",
"amount": 500.25,
"payment_data": { ... },
"unpaid_reason": null,
"submission_data": [{ ... }]
}, ...]
}
Response Parameters
Field | Type | Description | Example |
---|---|---|---|
status | Boolean | true - response success, false - response error | true |
*.id | String(32) | Unique ID of this transaction | tra_abc123... |
*.created_at | Timestamp(YYYY-MM-DD HH:mm:ss) | When this transaction was logged | 2024-12-28 22:14:47 |
*.updated_at | Timestamp(YYYY-MM-DD HH:mm:ss) | When this transaction entry was last changed | 2024-12-29 22:14:47 |
*.charged_at | Timestamp(YYYY-MM-DD HH:mm:ss) | When this transaction was charged | 2024-02-03 08:14:35 |
*.status_changed_at | Timestamp(YYYY-MM-DD HH:mm:ss) | When was the status of this transaction last changed | 2024-02-04 16:45:23 |
*.payment_methods_id | String(32) | ID of the payment method to be used for this collection see payment methods | pam_abc123... |
*.payments_id | String(32) | ID of the payment used to generate the transaction see payments | pay_abc123... |
*.customers_id | String(32) | ID of the customer used to generate the transaction see customers | cus_abc123... |
*.bank_accounts_id | String(32) | ID of the bank account used to generate the transaction see bank accounts | ban_abc123... |
*.mandates_id | String(32) | ID of the mandate used to generate the transaction see mandates | man_abc123... |
*.transaction_reference | String(128) | Used internally for invoice or customer transaction references. | INV0045 |
*.payment_reference | String(35) | Generated when sending the payment to the bank, usually reflects on bank statements | GERH82887180 |
*.submission_batch_reference | String(256) | Identifies the group batch number sent to the bank | KOZE05327011 |
*.transaction_status_lookups_id | String(32) | Lookups ID relating to the status of this transaction e.g. paid, unpaid etc | loo_abc123... |
*.amount | Decimal | Amount of this transaction in ZAR | 500.25 |
*.payment_data | Object | This is a snapshot of the 'payment' data at the time of creating the this transaction see payments response body for the content layout | |
*.unpaid_reason | String(256) | Reason for transaction reflecting unpaid if applicable | NO SUCH ACCOUNT |
*.submission_data | Object | Transaction status change history, differs between DebiCheck and EFT Debit Orders | [{"status": "PAID", "message": null, "bank_code": 0, "timestamp": "2025-01-20T03:30:03.737Z"}] OR [{"date":"2025-04-07 07:35:02","code":"000080","message":"** WARNING ONLY - ACCOUNT TYPE CHANGE - 0 TO 1 ***"}] |
Record
Get a single transaction record
Path
GET
/transactions/record/{reference}
Path Parameters
Field | Required | Description | Example |
---|---|---|---|
reference | Y | Filter for specific transaction reference | INV0045 |
Response Body
{
"status": true,
"transaction": {
"id": "tra_abc123...",
"created_at": "2024-12-28 22:14:47",
"updated_at": null,
"charged_at": "2024-02-03 08:14:35",
"status_changed_at": "2024-02-04 16:45:23",
"payment_methods_id": "pam_abc123...",
"payments_id": "pay_abc123...",
"customers_id": "cus_lpzgQpM56pm-FC01L4qSb",
"bank_accounts_id": "ban_bV4BP2PcdJFgu9lVawE0_",
"mandates_id": "man_GxHu2gBsBWnddf0-Sh5Cm",
"transaction_reference": "INV0045",
"payment_reference": "FAHE03053406",
"submission_batch_reference": "ABBO61857139",
"transaction_status_lookups_id": "loo_abc123...",
"amount": 500.25,
"payment_data": { ... },
"unpaid_reason": null,
"submission_data": [{ ... }]
}
}
Webhooks
Get a webhook POST
request sent to your server for new or updated transactions. Webhooks needs to be configured in the developer section. Records will be sent through as an Array.
Response Body
{
"transactions": [{
"id": "tra_abc123...",
"created_at": "2024-12-28 22:14:47",
"updated_at": null,
"charged_at": "2024-02-03 08:14:35",
"status_changed_at": "2024-02-04 16:45:23",
"payment_methods_id": "pam_abc123...",
"payments_id": "pay_abc123...",
"customers_id": "cus_lpzgQpM56pm-FC01L4qSb",
"bank_accounts_id": "ban_bV4BP2PcdJFgu9lVawE0_",
"mandates_id": "man_GxHu2gBsBWnddf0-Sh5Cm",
"transaction_reference": "INV0045",
"payment_reference": "FAHE03053406",
"submission_batch_reference": "ABBO61857139",
"transaction_status_lookups_id": "loo_abc123...",
"amount": 500.25,
"payment_data": { ... },
"unpaid_reason": null,
"submission_data": [{ ... }]
}]
}