EFT Payments (EFT Credits) enable merchants to send outbound payments to bank accounts.
Overview
The EFT Credit service handles financial transactions, including:
- Salary disbursements
- Account payments
- Refunds
- Supplier payments
Service Types
| Service Type | Description | Settlement |
|---|---|---|
SAMEDAY | Same-day value (SDV) | Same day |
ONEDAY | One business day | Next business day |
TWODAY | Two business days | Two business days |
Service Limitations
- Maximum transaction: R5,000,000 (5 million ZAR)
- Transactions ≥ R5m will be returned with “exceeds industry imposed limits”
- High-value transactions should use real-time line processing
Supported Account Types
- Current accounts
- Savings accounts
- Transmission accounts
Create EFT Payment
Endpoint
POST https://api.revio.co.za/v2/payment/eftRequest (Same-day)
curl -X POST https://dev.api.revio.co.za/v2/payment/eft \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"paymentDate": "2024-01-15T08:00:00.000Z",
"profileCode": "TEST1",
"abbreviatedName": "TESTMERCH1",
"contractReference": "PAY001",
"amountCents": 50000,
"serviceType": "SAMEDAY",
"debtor": {
"accountNumber": "12345678",
"branchCode": "051001",
"accountType": "CURRENT",
"bank": "STANDARDBANK",
"firstName": "TEST MERCHANT 1",
"identification": {
"phoneNumber": "+27-615333440",
"emailAddress": "merchant@test.com"
}
},
"creditor": {
"accountNumber": "010553922",
"accountType": "CURRENT",
"branchCode": "632005",
"name": "John Smith",
"idNumber": "0001010000006",
"phoneNumber": "+27-123456789"
}
}'Request Fields
| Field | Type | Required | Description |
|---|---|---|---|
paymentDate | string | Yes | Date to process payment (ISO 8601) |
profileCode | string | Yes | Your merchant profile code |
abbreviatedName | string | Yes | Your PASA-registered name |
contractReference | string | Yes | Payment reference |
amountCents | integer | Yes | Payment amount in cents |
serviceType | string | Yes | SAMEDAY, ONEDAY, or TWODAY |
debtor | object | Yes | Source account (your account) |
creditor | object | Yes | Destination account (recipient) |
Debtor Object (Source Account)
| Field | Type | Required | Description |
|---|---|---|---|
accountNumber | string | Yes | Your bank account number |
branchCode | string | Yes | Your bank branch code |
accountType | string | Yes | Account type |
bank | string | Yes | Your bank name |
firstName | string | Yes | Your merchant name |
identification.phoneNumber | string | Yes | Your contact number |
identification.emailAddress | string | Yes | Your email address |
Creditor Object (Destination Account)
| Field | Type | Required | Description |
|---|---|---|---|
accountNumber | string | Yes | Recipient account number |
accountType | string | Yes | Account type |
branchCode | string | Yes | Recipient branch code |
name | string | Yes | Recipient name |
idNumber | string | Yes | Recipient ID number |
phoneNumber | string | Yes | Recipient phone number |
Response
{
"id": "pay-123-456-789",
"status": "PENDING",
"paymentDate": "2024-01-15T08:00:00.000Z",
"amountCents": 50000,
"serviceType": "SAMEDAY",
"contractReference": "PAY001"
}Payment Examples
One-day Payment
curl -X POST https://dev.api.revio.co.za/v2/payment/eft \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"paymentDate": "2024-01-15T08:00:00.000Z",
"profileCode": "TEST1",
"abbreviatedName": "TESTMERCH1",
"contractReference": "PAY002",
"amountCents": 100000,
"serviceType": "ONEDAY",
"debtor": {
"accountNumber": "12345678",
"branchCode": "051001",
"accountType": "CURRENT",
"bank": "STANDARDBANK",
"firstName": "TEST MERCHANT 1",
"identification": {
"phoneNumber": "+27-615333440",
"emailAddress": "merchant@test.com"
}
},
"creditor": {
"accountNumber": "987654321",
"accountType": "SAVINGS",
"branchCode": "250655",
"name": "Jane Doe",
"idNumber": "8501015800089",
"phoneNumber": "+27-987654321"
}
}'Two-day Payment
{
"serviceType": "TWODAY",
...
}Get Payment Status
Endpoint
GET https://api.revio.co.za/v2/payment/eft/{paymentId}/statusRequest
curl -X GET https://dev.api.revio.co.za/v2/payment/eft/pay-123-456-789/status \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"Response
{
"id": "pay-123-456-789",
"status": "COMPLETED"
}Payment Statuses
| Status | Description |
|---|---|
PENDING | Payment submitted, awaiting processing |
PROCESSING | Payment being processed by bank |
COMPLETED | Payment successful |
FAILED | Payment failed |
CANCELLED | Payment cancelled |
Cut-off Times
| Service Type | Weekday Cut-off | Weekend Cut-off |
|---|---|---|
| Same-day (SSVS) | 08:00 - 16:20 | 08:00 - 09:45 |
| Two-day | 08:00 - 14:30 (2 days before) | 08:00 - 09:00 |
Important: Submit payments before cut-off times to ensure same-day processing. Payments submitted after cut-off will automatically be processed in the next available processing day
Error Handling
Common Errors
| Error | Cause | Resolution |
|---|---|---|
400 Bad Request | Invalid request data | Verify all required fields |
exceeds industry imposed limits | Amount ≥ R5m | Use real-time line for large transactions |
Invalid account | Invalid creditor details | Verify account number and branch code |
Failed Payments
If a payment fails, check:
- Creditor account details are correct
- Your account has sufficient funds
- Payment was submitted before the cut-off
Best Practices
- Verify recipient details: Confirm account numbers before processing
- Use appropriate service type: Choose based on urgency and cost
- Submit early: Process payments well before cut-off times
- Track payments: Monitor status and handle failures promptly
- Keep records: Store payment IDs and references for reconciliation
Bulk Payments
For processing multiple payments, submit separate requests for each. Consider implementing:
- Batching logic in your application
- Rate limiting to avoid overwhelming the API
- Error handling for partial batch failures
Contact Precium support for high-volume payment requirements.