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

MethodPathPurposeAllowed callers
POST/restful/merchant/payshap/deactivate/{merchantId}Remove PayShap from a merchantPSP, 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:

  1. PAYSHAP is removed from the merchant's acceptedPayments list — future transactions can't be routed via PayShap
  2. The PayShap config record is soft-deleted — preserved for audit, hidden from active queries
  3. 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

HTTPBodyCause
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:

  1. Call Merchant management → Update with a populated payShapInfo block
  2. The platform creates a fresh PayShap config and adds PAYSHAP back to acceptedPayments

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):

FieldRequiredExampleNotes
shapIdyesmobilenumber@bankThe PayShap identifier the merchant pays into
shapIdOwneryesEFTCORPSELF, AGGREGATOR, or EFTCORP
shapAcquireryesNEDBANK3-45 alphabetic characters
shapDomainoptionalNEDBANKDomain associated with the Shap ID

When to use deactivation

ScenarioAction
Merchant decides they no longer want PayShap (but keeps card acceptance)Use this endpoint
Merchant is being terminated entirelySuspend 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