Skip to content
Last updated

Each of your Customers who is to accept payments through SimPay Flow must be registered as a submerchant of your Flow service and then complete onboarding.


Step 1: Registering a submerchant

You register a submerchant with the POST /flow/{flowServiceId}/submerchants request.

curl -X POST "https://api.simpay.pl/flow/{flowServiceId}/submerchants" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "customId": "user-123",
    "email": "john.smith@example.com",
    "name": "John Smith"
  }'
FieldDescription
customIdRequired. Your own submerchant ID, e.g. the user ID in your system. Max. 36 characters (a-z, A-Z, 0-9, -, _), unique within the Flow service, cannot start with flsm_.
emailRequired. Submerchant email address, unique within the Flow service.
nameSubmerchant (company) name.
serviceSubmerchant's Online Payments service data (name, URL, terms, MCC, contact details). Required for payment institutions.
The Flow service must be active

You can register submerchants only after SimPay approves your Flow service. Otherwise, the API returns the FLOW_SERVICE_NOT_ACTIVE error.

Response

{
  "success": true,
  "message": "Submerchant successfully registered",
  "data": {
    "submerchantId": "flsm_aaaabbbb",
    "customId": "user-123",
    "onboarding": {
      "action": "redirect_user",
      "redirectUrl": "https://panel.simpay.pl/..."
    }
  }
}

Save submerchantId in your database. The onboarding object tells you what to do next:

actionWhat you do
redirect_userRedirect the submerchant to redirectUrl - onboarding takes place in the SimPay Panel. See Onboarding via SimPay Panel.
provide_apiProvide the submerchant data via the API. See Onboarding via API.

Step 2: Onboarding

The onboarding method depends on the role of your Flow service:

  1. Onboarding via SimPay Panel - for marketplace platforms and products that do not intermediate in the transfer of funds (role_non_financial_provider). The submerchant goes through full verification at SimPay.
  2. Onboarding via API - for regulated payment institutions (role_payment_service_provider). The procedure is simplified, and you provide the data.

Identifying a submerchant

In all SimPay Flow endpoints (and in the x-sim-flow-submerchant header) you can identify a submerchant in two ways:

  • by SimPay ID - flsm_aaaabbbb,
  • by your customId - user-123.

This way you don't have to store the SimPay ID if it's more convenient for you to use your own identifiers.


Submerchant statuses

StatusMeaning
flow_submerchant_pendingSubmerchant registered, waiting for onboarding.
flow_submerchant_in_verificationData has been submitted, SimPay verification in progress.
flow_submerchant_activeSubmerchant active - can accept payments.
flow_submerchant_inactiveSubmerchant inactive (e.g. rejected or blocked).

Most operations (payment channels, creating transactions, requesting withdrawals) are available only for submerchants with the flow_submerchant_active status. For others, the API returns the FLOW_SUBMERCHANT_NOT_ACTIVE error.

You can check the current status with GET /flow/{flowServiceId}/submerchants/{submerchantId}, but we recommend reacting to the flow_submerchant:status_changed webhook instead of polling the API.