Table of contents

EFT Payments

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 /v2/payment/eft

Request (Same-day)

BASH

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": "2001014800086",
     "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

JSON

{
 "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

BASH

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

JSON

{
 "serviceType": "TWODAY",
 ...
}

Get Payment Status

Endpoint

GET /v2/payment/eft/{paymentId}/status

Request

BASH

curl -X GET https://dev.api.revio.co.za/v2/payment/eft/pay-123-456-789/status \
 -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Response

JSON

{
 "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:

  1. Creditor account details are correct
  2. Your account has sufficient funds
  3. Payment was submitted before the cut-off

Best Practices

  1. Verify recipient details: Confirm account numbers before processing
  2. Use appropriate service type: Choose based on urgency and cost
  3. Submit early: Process payments well before cut-off times
  4. Track payments: Monitor status and handle failures promptly
  5. 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.