Payment Docs
PayoutsAfrica

South Africa

Bank transfer, Ozow payouts in ZAR

Before you start

This payout destination is not enabled for all merchants. Check availability with your manager, and make sure your merchant balance is sufficient before creating a payout.

Overview

CurrencyCountry codeDestinationpaymentType
ZARZABank transfer, OzowBANK_ACCOUNT

Every operator or bank method is a separate payout service. Get the services enabled for you with GET /v1/payouts/services and pass the serviceId of the one you need; without it your default service is used.

The required set depends on the service enabled for you. If a field it needs is missing, the phone does not match the country or the payment type does not match the service, the payout is rejected with 400 before it is created and nothing is debited. Send userEmail whenever you have it.

Get the bank code

Bank transfer services need the recipient bank. Request the bank list for the service and pass the chosen id as account.bankName:

curl -X GET "https://api.1capital.capital/v1/payouts/banks?serviceId=123" \
  -H "X-Api-Token: YOUR_API_TOKEN"
{
  "data": [
    { "id": "000013", "name": "Example Bank" },
    { "id": "000014", "name": "Another Bank" }
  ]
}

account fields

FieldTypeRequiredDescription
namestring✅ YesRecipient name
requisitesstring✅ YesRecipient requisites: card number, phone number, PIX key, etc., depending on paymentType
userIdstring✅ YesUser ID in your system
FieldTypeRequiredDescription
requisitesstring✅ YesRecipient bank account number
bankNamestring⚠️ Depends on the serviceRecipient bank: the id from GET /v1/payouts/banks?serviceId=…
userEmailstring⚠️ Depends on the serviceRecipient email
userPhonestring⚠️ Depends on the serviceRecipient phone, digits with the country code: 27821234567
userIpstring❌ NoRecipient IP address

Request example

curl -X POST "https://api.1capital.capital/v1/payouts" \
  -H "Content-Type: application/json" \
  -H "X-Api-Token: YOUR_API_TOKEN" \
  -d '{
    "amount": 1000,
    "currency": "ZAR",
    "paymentType": "BANK_ACCOUNT",
    "serviceId": 123,
    "externalId": "payout-123",
    "account": {
      "name": "John Doe",
      "requisites": "1234567890",
      "userId": "user_12345",
      "bankName": "000013",
      "userEmail": "john.doe@example.com",
      "userPhone": "27821234567"
    },
    "note": "Payout for order #1234"
  }'

Response

The response is a standard payout object with the CREATED status. Store the id to track the payout.

Payout object fields

The final status usually arrives within a few minutes.

Next steps

On this page