# Rejestracja submerchanta

Tworzy konto submerchanta w ramach usługi Flow wraz z usługą Płatności Online.
Dla usług z rolą role_payment_service_provider obiekt service jest wymagany.

W odpowiedzi zwracany jest obiekt onboarding, który informuje o kolejnym kroku:
- redirect_user - należy przekierować użytkownika na redirectUrl, gdzie przejdzie onboarding w SimPay,
- provide_api - onboarding jest realizowany przez usługę Flow za pośrednictwem API.

Endpoint: POST /flow/{flowServiceId}/submerchants
Version: 1.0.0
Security: bearerAuth

## Path parameters:

  - `flowServiceId` (string, required)
    ID usługi Flow
    Example: "flow_aaaabbbb"

## Request fields (application/json):

  - `customId` (string, required)
    Własne, unikalne w ramach usługi Flow ID submerchanta. Nie może zaczynać się od flsm_.
    Example: "user-123"

  - `email` (string, required)
    Adres email submerchanta (unikalny w ramach usługi Flow)
    Example: "jan.kowalski@example.com"

  - `name` (string)
    Nazwa submerchanta (firmy)
    Example: "Jan Kowalski"

  - `service` (object)
    Dane usługi Płatności Online submerchanta. Wymagane dla role_payment_service_provider.

  - `service.name` (string)
    Nazwa usługi
    Example: "Sklep Jana"

  - `service.url` (string)
    Adres URL usługi
    Example: "https://example.com"

  - `service.termsUrl` (string)
    Adres URL regulaminu
    Example: "https://example.com/regulamin"

  - `service.mcc` (string)
    Kod MCC
    Example: "5999"

  - `service.contact` (object)

  - `service.contact.email` (string)
    Example: "kontakt@example.com"

  - `service.contact.phone` (string)
    Example: "+48123123123"

  - `service.contact.name` (string)
    Example: "Jan Kowalski"

## Response 201 fields (application/json):

  - `success` (boolean, required)
    Request status

  - `message` (string, required)
    Example: "Submerchant successfully registered"

  - `data` (object, required)

  - `data.submerchantId` (string, required)
    ID submerchanta
    Example: "flsm_aaaabbbb"

  - `data.customId` (string, required)
    Example: "user-123"

  - `data.onboarding` (object, required)

  - `data.onboarding.action` (string, required)
    - redirect_user - przekieruj użytkownika na redirectUrl (onboarding po stronie SimPay),
- provide_api - onboarding realizowany przez usługę Flow przez API.
    Enum: "redirect_user", "provide_api"

  - `data.onboarding.redirectUrl` (string)
    Adres URL onboardingu (tylko dla redirect_user)
    Example: "https://panel.simpay.pl/onboarding/flow/..."

## Response 401 fields (application/json):

  - `success` (boolean, required)
    Request status

  - `errorCode` (string, required)
    Error status code
    Enum: "UNAUTHORIZED"

## Response 403 fields (application/json):

  - `success` (boolean, required)
    Request status

  - `message` (string)
    Opis błędu

  - `errorCode` (string, required)
    Kod błędu

## Response 404 fields (application/json):

  - `success` (boolean, required)
    Request status

  - `errorCode` (string, required)
    Error status code
    Enum: "SERVICE_NOT_FOUND", "TRANSACTION_NOT_FOUND", "ROUTE_NOT_FOUND"

## Response 422 fields (application/json):

  - `success` (boolean, required)
    Request status

  - `errorCode` (string, required)
    Error status code
    Enum: "VALIDATION_ERROR"

  - `errors` (object, required)
    Example: {"amount":["The amount field is required."],"currency":["The selected currency is invalid."]}

  - `errors.amount` (array)
    Example: ["The amount field is required."]


