Acquirer flows
How acquiring banks load and manage merchants on the Scan to Pay platform.
If you're an acquiring bank loading merchants you already manage onto the Scan to Pay platform, this is your flow. You use acquirer-specific credentials issued directly by EFT Corp (not generated in the Portal), and create merchants on behalf of your own merchant accounts.
For the PSP / Aggregator version of the same API, see PSP / Aggregator flows. For the operation reference, see Onboarding overview.
Acquirer-specific credentials
Acquirer credentials are different from PSP credentials in two ways:
| Acquirer | PSP | |
|---|---|---|
| Where they come from | Issued directly by EFT Corp on signed agreement | Generated by the PSP in the Portal under the API tab |
| Username format | Acquirer-specific identifier provided in onboarding pack | psp-{id} |
| Audit / scoping | Scoped to all merchants under that acquirer's umbrella | Scoped to the merchants the PSP has created |
| Renewing | Contact EFT Corp directly | Self-serve via Portal |
If you don't have your acquirer credentials yet, request them via [email protected].
You also need a corresponding PSP ID to provide when creating merchants — it identifies which PSP relationship the merchant sits under. Your onboarding pack will include the PSP ID(s) you're allowed to operate against.
Create a merchant (acquirer)
curl -X POST "https://qa.scantopay.io/portal/restful/merchant/create" \
-u "$ACQUIRER_USERNAME:$ACQUIRER_PASSWORD" \
-H 'Content-Type: application/json' \
-d '{
"pspId": "PSP123",
"email": "[email protected]",
"name": "Acme Coffee Pty Ltd",
"tradingName": "Acme Coffee",
"url": "https://acmecoffee.example",
"phoneNumber": "27101234567",
"currencyCode": "ZAR",
"merchantCategoryCode": "5814",
"acquirerMerchantId": "012345678901234",
"acquirerTerminalId": "00012345",
"address": {
"line1": "1 Main Road",
"city": "Cape Town",
"country": "ZA",
"postalCode": "8001"
}
}'Acquirer-specific fields beyond the standard merchant payload:
| Field | Required | Description |
|---|---|---|
pspId | ✓ | The PSP relationship this merchant sits under. From your acquirer onboarding pack. |
acquirerMerchantId | ✓ | The merchant ID as registered with the card scheme (Mastercard). 15 characters. |
acquirerTerminalId | ✓ | The terminal ID for this merchant under your acquirer. |
merchantCategoryCode | ✓ | 4-digit MCC. Must match what's registered with the scheme. |
acquirerMerchantIdmust match what's registered with Mastercard. This is the linkage that lets the platform route the merchant's transactions to your acquirer for settlement. A mismatch causes transactions to fail at the bank-routing stage.
Updates
Most update operations are the same as the PSP flow. The one difference: acquirers can update fields PSPs can't, including acquirerMerchantId and acquirerTerminalId.
ChangingacquirerMerchantIdmid-life requires coordination. Trans-in-flight that have been authorised but not yet settled will route to the old MID. Coordinate the change with a low-traffic window and ensure both MIDs are valid during the transition.
Permissions and scoping
Acquirer credentials can:
| Operation | Allowed |
|---|---|
| Create a merchant under any PSP in your acquirer scope | ✓ |
| Update any merchant under your acquirer scope | ✓ |
| Suspend any merchant under your acquirer scope | ✓ |
Update acquirerMerchantId and acquirerTerminalId | ✓ |
| Generate API passwords for merchants in your scope | ✓ |
| List merchants under your scope | ✓ |
| Manage merchants in other acquirers' scopes | ✗ — returns 403 Forbidden |
What's next
- Full operation reference → Onboarding overview
- Business rules → Business rules
- Acquirer-side technical integration (ISO 8583) → contact [email protected] for the acquirer integration pack — separate from this API
- Test the onboarding flow → Testing
Updated 3 days ago
