Table of contents

Merchant profiles

Merchant Profiles

Merchant profiles store your banking configuration and are required for processing collections and payments.

Overview

A merchant profile contains:

  • Your bank account details for settlement
  • Approved collection instruments (EFT, DebiCheck)
  • Your PASA-registered abbreviated name
  • Processing limits and configuration

Get Merchant Profile

Retrieve your merchant profile(s) to obtain the configuration values needed for API calls.

Endpoint

JSON

GET /v2/merchantprofile/

Request

BASH

curl -X GET https://dev.api.revio.co.za/v2/merchantprofile/ \
 -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
 -H "Content-Type: application/json"

Response

JSON

[
 {
   "id": "24",
   "profileCode": "TEST1",
   "bank": "STANDARDBANK",
   "instruments": ["EFTONEDAY", "EFTTWODAY", "EFTSAMEDAY", "DEBICHECK"],
   "name": "TEST MERCHANT 1",
   "accountNumber": "12345678",
   "branchCode": "051001",
   "abbreviatedName": "TESTMERCH1",
   "contactNumber": "+27-615333440",
   "emailAddress": "test@test.com",
   "currency": "ZAR",
   "entryClass": "21",
   "createdByClient": "109"
 }
]

Response Fields

|Field|Type|Description| |---|---|---| |`id`|string|Unique merchant profile identifier| |`profileCode`|string|Bank-provided profile code linking credit limits and pricing| |`bank`|string|Bank name (e.g., `STANDARDBANK`)| |`instruments`|array|Enabled payment instruments| |`name`|string|Merchant trading name registered with bank| |`accountNumber`|string|Settlement account number| |`branchCode`|string|Bank branch code| |`abbreviatedName`|string|PASA-approved name shown on customer bank statements| |`contactNumber`|string|Merchant contact phone number| |`emailAddress`|string|Merchant email address| |`currency`|string|Currency code (always `ZAR`)| |`entryClass`|string|Entry class code (always `21`)| |`createdByClient`|string|Parent client ID|

Available Instruments

|Instrument|Description| |---|---| |`EFTSAMEDAY`|Same-day EFT collection/payment| |`EFTONEDAY`|One business day EFT collection/payment| |`EFTTWODAY`|Two business day EFT collection/payment| |`DEBICHECK`|DebiCheck authenticated debit orders|

Get Merchant Profile by ID

Retrieve a specific merchant profile.

Endpoint

GET /v2/merchantprofile/{id}/

Request

BASH

curl -X GET https://dev.api.revio.co.za/v2/merchantprofile/24/ \
 -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Create Merchant Profile (Platform Providers)

Platform providers can create merchant profiles for their sub-merchants.

Note: This feature is only available for System Operator (SO) model processing. Contact Precium support to enable this capability.

Endpoint

POST /v2/merchantprofile

Request

BASH

curl -X POST https://dev.api.revio.co.za/v2/merchantprofile \
 -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
 -H "Content-Type: application/json" \
 -d '{
   "profileCode": "TEST1",
   "bank": "STANDARDBANK",
   "instruments": ["EFTONEDAY", "EFTTWODAY", "EFTSAMEDAY", "DEBICHECK"],
   "name": "NEW MERCHANT",
   "accountNumber": "02345679",
   "branchCode": "051001",
   "abbreviatedName": "NEWMERCH1",
   "contactNumber": "+27-615333555",
   "emailAddress": "newmerchant@test.com",
   "currency": "ZAR",
   "entryClass": "21",
   "clientId": "109"
 }'

Request Fields

|Field|Type|Required|Description| |---|---|---|---| |`profileCode`|string|Yes|Profile code from your master merchant profile| |`bank`|string|Yes|Bank name (only `STANDARDBANK` supported)| |`instruments`|array|Yes|Payment instruments to enable| |`name`|string|Yes|Merchant name as registered with bank| |`accountNumber`|string|Yes|Bank account number for settlement| |`branchCode`|string|Yes|Bank branch code| |`abbreviatedName`|string|Yes|PASA-approved abbreviated name (unique)| |`contactNumber`|string|Yes|Merchant contact phone number| |`emailAddress`|string|Yes|Merchant email address| |`currency`|string|Yes|Currency code (only `ZAR` accepted)| |`entryClass`|string|Yes|Entry class (only `21` accepted)| |`clientId`|string|Yes|Master merchant ID provided by Precium|

Unique Fields

The following fields must be unique across all merchant profiles:

  • profileCode
  • accountNumber
  • instruments
  • abbreviatedName

Response

JSON

{
 "id": "25",
 "profileCode": "TEST1",
 "bank": "STANDARDBANK",
 "instruments": ["EFTONEDAY", "EFTTWODAY", "EFTSAMEDAY", "DEBICHECK"],
 "name": "NEW MERCHANT",
 "accountNumber": "02345679",
 "branchCode": "051001",
 "abbreviatedName": "NEWMERCH1",
 "contactNumber": "+27-615333555",
 "emailAddress": "newmerchant@test.com",
 "currency": "ZAR",
 "entryClass": "21"
}

Using Profile Values

The merchant profile values are required when creating mandates and collections:

JSON

{
 "profileCode": "TEST1",           // From merchant profile
 "abbreviatedName": "TESTMERCH1",  // From merchant profile
 "creditor": {
   "accountNumber": "12345678",    // From merchant profile
   "branchCode": "051001",         // From merchant profile
   "name": "TEST MERCHANT 1",      // From merchant profile
   "bank": "STANDARDBANK"
 }
}

Abbreviated Name

The abbreviated name is a critical identifier that:

  • Appears on customer bank statements
  • Must be registered and approved by PASA
  • Uniquely identifies your business to customers
  • Is limited to 10 characters

Example bank statement display:

TESTMERCH1 CONTRACT001  -R100.00

Test Merchant Profile

For sandbox testing, use the following pre-configured profile:

|Field|Value| |---|---| |`id`|`24`| |`profileCode`|`TEST1`| |`abbreviatedName`|`TESTMERCH1`| |`accountNumber`|`12345678`| |`branchCode`|`051001`| |`name`|`TEST MERCHANT 1`|

Platform Provider Requirements

To create and manage merchant profiles as a platform provider, you need:

  1. Standard Bank Profile Code and credit limits
  2. Standard Bank processing account for real-time settlement
  3. PASA Registration as a Third-Party Payment Provider (TPPP)
  4. Precium verification and approval

Contact Precium support to enable platform provider capabilities.