Pay with Capitec Pay

Follow these steps to accept payment using Capitec Pay:

  • Initiate

  • Validate

  • Check Status

Coverage

The gateway parameter should be set to anyone of the following currencies.

Country
Country Code
Currency
gateway

South Africa

ZAF

ZAR

ZAR

Initiate

POST {{env_url}}/pay/aggregators/{{gateway}}/bank-wallet-transfer

You would need to pass, as header the x-auth-token. This can be obtained from your merchant dashboard → Settings → Generate API keys → Merchant public key.

Headers

Name
Value

Content-Type

application/json

x-auth-token

Your merchant public key

Request Body (encrypted)

Encryption algorithm here

{
    "message": "encrypted-body"
}

Request Body (plain)

{
    "fullname": "Francisca Reuben",
    "email": "[email protected]",
    "phone_number": "260953456700",
    "account_number": "260953456700",
    "tx_ref": "de43d7a1-569c-4348-abd8-75246e81d5009",
    "type": "capitec",
    "description": "payment for airpod",
    "country": "ZAF",
    "amount": "10",
    "currency": "ZAR",
    "rate": 1,
    "paymentType": "woo",
    "sourceCurrency": "ZAR",
    "sourceAmount": 10,
    "rememberMe": false,
    "productType": "COLLECTION",
    "redirect_url": "https://validuri.com"
}

Response

{
    "data": {
        "tx_ref": "de43d7a1-569c-4348-abd8-75246e81d5009",
        "payment_type": "BANK_WALLET_TRANSFER",
        "chargeResponseCode": "pending",
        "charged_amount": 10.0,
        "narration": "Capitec_PAYMENT",
        "currency": "ZAR",
        "message": "Transaction in Progress",
        "status": "pending",
        "customer": {
            "id": 3360279.0,
            "phone_number": "260953456700",
            "name": "Klasha South Africa",
            "email": "[email protected]",
            "created_at": "2025-09-03T11:12:16.000Z"
        }
    },
    "error": null,
    "status": "success"
}

Validate

The customer will need to complete the transaction from the Capitec Pay App.

Check Status

Click the "Transaction status" link below to check the status of the transaction by passing your tnx_ref as request body.

Transaction status

Last updated