EFT Payments
EFT Payments (EFT Credits) enable merchants to send outbound payments to bank accounts.
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.