General
Transactions
Retrieve and monitor transaction records including payment attempts, status changes, and settlement details. Access comprehensive transaction history with filtering, pagination, and detailed status information for reporting and reconciliation.
List
List transactions that have been processed by the platform.
Path
GET /transactions?{query parameters}
Query Parameters
| Field | Required | Description | Example |
|---|---|---|---|
| transaction_status | N | Filter for specific transaction statuses. (ACCEPTED_BY_BANK,CANCELLED,CHARGEBACK,DECLINED,DISPUTED,IN_TRACKING,NO_RESPONSE,PAID,PENDING,REFUNDED,REJECTED_BY_API,REJECTED_BY_BANK,REVERSED,SENT_TO_BANK,UNPAID) | PAID |
| 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_YxK0zCtJpVpRzdBYTlxnm |
| customer_id | N | ID of a specific customer to filter for, see customers | cus_qXel_yBCs_epE681GU0YO |
Response Body
{
"status": true,
"transactions": [{
"id": "tra_VLSEUZK5STgmP4J6yBDlU",
"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_YxK0zCtJpVpRzdBYTlxnm",
"collections_id": "col_Pw5jImVFZfpd0Lplp35op",
"customers_id": "cus_qXel_yBCs_epE681GU0YO",
"bank_accounts_id": "ban_zvDwIjI63bIjCuECN7m0l",
"mandates_id": "man_2J4tlxoTRs0duVK1kenMC",
"transaction_reference": "INV0045",
"payment_reference": "FAHE03053406",
"submission_batch_reference": "ABBO61857139",
"transaction_status": "PAID",
"amount": 500.25,
"amount_excl": 500.25,
"refunded_amount": null,
"payment_data": { ... },
"unpaid_reason": null,
"submission_data": [{ ... }],
"metadata": { ... },
}, ...]
}
Response Parameters
Field | Type | Description | Example |
|---|---|---|---|
| status | Boolean | true - response success, false - response error | true |
| *.id | String(32) | Unique ID of this transaction | tra_VLSEUZK5STgmP4J6yBDlU |
| *.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_YxK0zCtJpVpRzdBYTlxnm |
| *.collections_id | String(32) | ID of the collection used to generate the transaction see collections | col_Pw5jImVFZfpd0Lplp35op |
| *.customers_id | String(32) | ID of the customer used to generate the transaction see customers | cus_qXel_yBCs_epE681GU0YO |
| *.bank_accounts_id | String(32) | ID of the bank account used to generate the transaction see bank accounts | ban_zvDwIjI63bIjCuECN7m0l |
| *.mandates_id | String(32) | ID of the mandate used to generate the transaction see mandates | man_2J4tlxoTRs0duVK1kenMC |
| *.transaction_reference | String(128) | Used internally for invoice or customer transaction references. | INV0045 |
| *.payment_reference | String(35) | Generated when sending the collection 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 | ENUM | (ACCEPTED_BY_BANK,CANCELLED,CHARGEBACK,DECLINED,DISPUTED,IN_TRACKING,NO_RESPONSE,PAID,PENDING,REFUNDED,REJECTED_BY_API,REJECTED_BY_BANK,REVERSED,SENT_TO_BANK,UNPAID) | PAID |
| *.amount | Decimal | Amount of this transaction in ZAR | 500.25 |
| *.amount_excl | Decimal | Amount excluding tax. | 500.25 |
| *.refunded_amount | Decimal | Total amount refunded on this transaction in ZAR; null when the transaction has not been refunded. A REFUNDED transaction status indicates a refund was processed — see refunds | 150.00 |
| *.payment_data | Object | This is a snapshot of the 'collection' data at the time of payment see collections 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 ***"}] |
| *.metadata | Object | Transaction metadata | {"my_key": "my_value"} |
Record
Get a single transaction record
Path
GET /transactions/record/{reference}
Path Parameters
| Field | Required | Description | Example |
|---|---|---|---|
| reference | Y | Filter for specific transaction reference, payment reference or ID | INV0045 |
Response Body
{
"status": true,
"transaction": {
"id": "tra_VLSEUZK5STgmP4J6yBDlU",
"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_YxK0zCtJpVpRzdBYTlxnm",
"collections_id": "col_Pw5jImVFZfpd0Lplp35op",
"customers_id": "cus_qXel_yBCs_epE681GU0YO",
"bank_accounts_id": "ban_zvDwIjI63bIjCuECN7m0l",
"mandates_id": "man_2J4tlxoTRs0duVK1kenMC",
"transaction_reference": "INV0045",
"payment_reference": "FAHE03053406",
"submission_batch_reference": "ABBO61857139",
"transaction_status": "PAID",
"amount": 500.25,
"amount_excl": 500.25,
"refunded_amount": null,
"payment_data": { ... },
"unpaid_reason": null,
"submission_data": [{ ... }],
"metadata": { ... }
}
}
Record (by body)
Get a single transaction record by supplying an identifier in the request body. This is an alternative to GET /transactions/record/{reference} for cases where the identifier is not suited to a URL path. Supply at least one of reference, publicId or id.
Path
POST /transactions/record
Body Parameters
| Field | Required | Description | Example |
|---|---|---|---|
| reference | N* | Filter for a specific transaction reference, payment reference or ID | INV0045 |
| publicId | N* | Filter for a specific transaction public ID | pub_9f3c1a2b |
| id | N* | Filter for a specific transaction ID | tra_VLSEUZK5STgmP4J6yBDlU |
* At least one of reference, publicId or id must be provided.
Request Body
{
"reference": "INV0045"
}
Response Body
{
"status": true,
"transaction": {
"id": "tra_VLSEUZK5STgmP4J6yBDlU",
"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_YxK0zCtJpVpRzdBYTlxnm",
"collections_id": "col_Pw5jImVFZfpd0Lplp35op",
"customers_id": "cus_qXel_yBCs_epE681GU0YO",
"bank_accounts_id": "ban_zvDwIjI63bIjCuECN7m0l",
"mandates_id": "man_2J4tlxoTRs0duVK1kenMC",
"transaction_reference": "INV0045",
"payment_reference": "FAHE03053406",
"submission_batch_reference": "ABBO61857139",
"transaction_status": "PAID",
"amount": 500.25,
"amount_excl": 500.25,
"refunded_amount": null,
"payment_data": { ... },
"unpaid_reason": null,
"submission_data": [{ ... }],
"metadata": { ... }
}
}
Webhooks
Get a webhook POST request sent to your server for new or updated transactions. Webhooks needs to be configured from the dashboard developer section. Records will be sent through as an Array. See the webhooks section.