PayShap management
Deactivate PayShap on an existing merchant — remove PayShap from the accepted-payments list and soft-delete the PayShap config.
PayShap is South Africa's instant low-value payment rail. Scan to Pay supports PayShap as one of several payment methods a merchant can accept alongside cards.
This page covers the deactivation endpoint — the programmatic way to remove PayShap from a merchant. To activate PayShap on a new or existing merchant, supply the payShapInfo block on Merchant management → Create or Update.
Endpoint
| Method | Path | Purpose | Allowed callers |
|---|---|---|---|
| POST | /restful/merchant/payshap/deactivate/{merchantId} | Remove PayShap from a merchant | PSP, Acquirer |
The {merchantId} path variable is the merchant whose PayShap config you want to remove.
Deactivate PayShap
Request:
curl -X POST https://qa.scantopay.io/portal/restful/merchant/payshap/deactivate/25 \
-u 'PSP_42:yourPspApiPassword'(No request body — the merchant ID is in the path.)
Response — PayShap was active:
PayShap payment type is deactivated for the merchant
with HTTP 200 OK.
Response — PayShap wasn't active:
Merchant doesn't support PayShap payment type so no action is required
also with HTTP 200 OK. The endpoint is idempotent — calling deactivate on a merchant that already doesn't have PayShap is a no-op success.
What deactivation does
Three things happen atomically when deactivation succeeds:
PAYSHAPis removed from the merchant'sacceptedPaymentslist — future transactions can't be routed via PayShap- The PayShap config record is soft-deleted — preserved for audit, hidden from active queries
- An audit log entry is written — recording the action, the user who performed it, and a timestamp
The merchant remains active for other payment methods (AMT, Secure Code, etc.) — only the PayShap rail is removed.
Common errors
| HTTP | Body | Cause |
|---|---|---|
400 | "Invalid 'merchantId'" | Ownership check failed — you don't own this merchant |
401 | (empty) | ROLE_REMOTE not granted, or caller-prefix not allowed |
500 | (varies) | Internal error during soft-delete — raise a support ticket |
The endpoint does not require the merchant to be in ACTIVE state. You can deactivate PayShap on a suspended merchant — useful when cleaning up before terminating a merchant relationship.
Reactivating after deactivation
There's no specific reactivation endpoint. To re-enable PayShap on a merchant after deactivation:
- Call Merchant management → Update with a populated
payShapInfoblock - The platform creates a fresh PayShap config and adds
PAYSHAPback toacceptedPayments
The old (soft-deleted) PayShap config is not restored — the new config is treated as a fresh setup. If the merchant's shapId, shapIdOwner, shapAcquirer, and shapDomain haven't changed, supply the same values.
PayShapInfo fields (verified against pluto-commons-lib):
| Field | Required | Example | Notes |
|---|---|---|---|
shapId | yes | mobilenumber@bank | The PayShap identifier the merchant pays into |
shapIdOwner | yes | EFTCORP | SELF, AGGREGATOR, or EFTCORP |
shapAcquirer | yes | NEDBANK | 3-45 alphabetic characters |
shapDomain | optional | NEDBANK | Domain associated with the Shap ID |
When to use deactivation
| Scenario | Action |
|---|---|
| Merchant decides they no longer want PayShap (but keeps card acceptance) | Use this endpoint |
| Merchant is being terminated entirely | Suspend the merchant via Merchant management — termination is a separate Operations-team workflow |
PayShap config has wrong details (wrong shapId) | Update via Merchant management → Update with corrected payShapInfo — don't deactivate then re-add |
| Temporary hold (e.g. compliance review on PayShap specifically) | This endpoint, plus a calendar reminder to re-enable |
What's next
- Add PayShap to a new merchant → Merchant management → Create
- Update PayShap details on an existing merchant → Merchant management → Update
- Cross-cutting rules → Business rules
Updated about 23 hours ago
