πŸ’ΈHow to make transfers and payments

The Account information API also allows you to perform actions against their account programmatically (not just read-only). This includes transferring money between your accounts and paying money to beneficiaries.

Transfers and payments are currently only available for 🏦 Private Banking account holders.

Using Postman

If you’re new to APIs and want to get familiar with using the endpoints, we recommend you create a Postman account (it's free) and use the Postman collections provided to test things out.

1. Make a transfer

  1. Take note of the accountID that you would like to make the transfer to.

  2. Head over to the "Variables" table to insert your accountID - this is the account from which you would like to make the transfer. You can also set it under the Params tab on the query page.

  3. Navigate to the Accounts folder and POST transfer multiple query.

  4. Navigate to the Body tab and enter a value into each field. Here you will see that each transfer is defined by four key fields

    1. beneficiaryAccountID - this is the account where the funds will transfer to

    2. amount - the amount to pay in ZAR

    3. myReference - reference displayed on your transaction description

    4. theirReference - reference displayed on the recipient's statement

{
    "transferList": [
        {
            "beneficiaryAccountId": "3353431574710166878182963",
            "amount": "10", 
            "myReference": "API transfer",
            "theirReference": "API transfer"
        }
    ] 
}
  1. Hit Send to make a call to the API endpoint.

https://openapi.investec.com//za/pb/v1/accounts/:accountId/transfermultiple

2. Make a payment

You can only make programmatic payments to beneficiaries that have been created and paid at least once before from your account with regular online banking.

  1. Ensure you have authenticated and pasted in your bearer token into the "Variables" tables.

  2. Retrieve your list of beneficiaries by navigating to the Beneficiaries folder and the GET Beneficiaries query.

  3. Hit Send to make a call to the API endpoint (no additional parameters need to be set).

https://openapi.investec.com/za/pb/v1/accounts/beneficiaries
  1. Take note of the beneficiaryID of the beneficiary that you would like to make the payment to.

Example response for 🏦 Private Banking
{
  "data": [
    {
      "beneficiaryId": "LOREMIPSUMDOLOR=",
      "accountNumber": "1234567890",
      "code": "123456",
      "bank": "ACME CORP",
      "beneficiaryName": "Jane Smith",
      "lastPaymentAmount": "1.00",
      "lastPaymentDate": "10/01/2023",
      "cellNo": null,
      "emailAddress": null,
      "name": "Jane Smith",
      "referenceAccountNumber": "LOREM IPSUM DOLOR",
      "referenceName": "LOREM IPSUM",
      "categoryId": "112233445566",
      "profileId": "77889900"
    },
  ],
  "links": {
    "self": "https://openapi.investec.com/za/pb/v1/accounts/beneficiaries"
  },
  "meta": {
    "totalPages": 1
  }
}

Payment notifications will go out to the listed "cellNo" and "emailaddress" of the beneficiary. If these are null, then no notification will be sent.

  1. Head over to the "Variables" table to insert your accountID - this is the account from which you would like to make the payment. You can also set it under the Params tab on the query page.

  2. Navigate to the Beneficiaries folder and the POST Beneficiary payment query. The endpoint can receive an array list of payments and is therefore able to process multiple payments at one point.

  3. Navigate to the Body tab and enter a value into each field. Here you will see that each payment is defined by four key fields

    1. beneficiaryID - this is the account to which you want to make the payment

    2. amount - the amount to pay in ZAR

    3. myReference - reference displayed on your transaction description

    4. theirReference - reference displayed on the recipient's statement

{
  "paymentsList": [
    {
      "beneficiaryId": "01234567890",
      "amount": "10",
      "myReference": "API transfer",
      "theirReference": "API transfer"
    }
  ]
}
  1. Hit Send to make a call to the API endpoint.

https://openapi.investec.com/za/pb/v1/accounts/{accountId}/paymultiple

cURL code snippets

Get beneficiaries

curl --location 'https://openapi.investec.com/za/pb/v1/accounts/beneficiaries' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'

Get beneficiary categories

curl --location 'https://openapi.investec.com/za/pb/v1/accounts/beneficiarycategories' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'

Make a transfer

curl --location 'https://openapi.investec.com/za/pb/v1/accounts//transfermultiple' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
    "transferList": [
        {
            "beneficiaryAccountId": "3353431574710166878182963", 
            "amount": "10", 
            "myReference": "API transfer", 
            "theirReference": "API transfer" 
        }
    ] 
}'

Make a payment

curl --location 'https://openapi.investec.com/za/pb/v1/accounts//paymultiple' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
    "paymentList": [
        {
            "beneficiaryId": "{{beneficiaryId}}", 
            "amount": "10", 
            "myReference": "API demo", 
            "theirReference": "API demo2" 
        }
    ]
}'

Last updated

Was this helpful?