1. Appian - Submerchant Register
Español
  • English
  • Español
  • Docs de API 🇲🇽
  • Online Payments
    • Errores ISO
    • Errores del API de Kushki
    • Notas de versión
    • Card Payments
      • Solicitar un token de tarjeta
      • Hacer un cargo o cargo diferido
      • Crear pago (sin token)
      • Solicitar opciones de diferido
      • Reembolsar una transacción
      • Autorizar pagos
      • Preautorización (sin token)
      • Anular una transacción
      • Reautorizar pagos
      • Capturar un pago autorizado
      • Información de BIN V2
      • Información de BIN
      • Validar OTP
    • One-Click and Scheduled Payments
      • Solicitar un token de cargo recurrente
      • Crear un cargo recurrente
      • Hacer un pago One-click
      • Actualizar los datos de la tarjeta del cargo recurrente
      • Cancelar un cargo recurrente
      • Actualizar un cargo recurrente
      • Agregar un cargo o descuento temporal
      • Autorizar pagos
      • Capturar un pago autorizado
      • Consultar información del cargo recurrente
    • Transfer in
      • Consultar lista de bancos
      • Solicitar un token de Transfer In
      • Iniciar transacción
      • Consultar estado
    • Transfer Out
      • Consultar lista de bancos
      • Consultar lista de bancos V2
      • Solicitar un token de Transfer Out
      • Iniciar transacción
      • Consultar estado
      • Saldo para payouts
    • Smartlinks
      • Crear un Smartlink
      • Consultar un Smartlink
      • Eliminar un Smartlink
      • Actualizar un Smartlink
    • Payment Button
      • Crear un Payment Button
    • Analytics
      • Consultar listado de transacciones v2
    • Chargebacks
      • Consultar chargebacks
      • Solicitar exportación de chargebacks
    • Commissions
      • Consultar configuración de comisiones
    • Payment Credentials
      • Crear una credencial
      • Activar o desactivar
      • Eliminar credencial
      • Regenerar una credencial
      • Actualizar credencial
      • Búsqueda avanzada
      • Buscar credenciales
    • Platform Status
      • Consultar estado de la plataforma
      • Consultar estado del gateway
    • Settlement
      • Consultar liquidación
    • Subscription Transactions
      • Consultar transacciones de suscripción
    • Fraud Report
      • Consultar alertas de fraude
  • Card Present Billpocket
    • Notas de versión
    • Notas de versión del SDK de Android
    • Notas de versión de la app de Android
    • Notas de versión de la app de iOS
    • Get Started
      • Crear una cuenta
      • User Token
      • API Keys
    • Webhooks
      • Webhooks — Transferencia de fondos a tu cuenta bancaria
      • Errores de transferencia de fondos
    • Terminals
      • App Review
      • Splash Screen
    • Card not Present Billpocket Services
      • 3DS Checkout
        • Crear checkout
        • Consultar detalles del checkout
      • E-commerce Flex
        • Obtener token
        • Validar token
        • Cobrar pagos
        • Reembolso
        • Capturar un pago autorizado
        • Consultar estado
    • Catalogs
      • Estados
      • Municipios
      • Empresas de impuestos
      • Actividades comerciales
    • Accounts
      • Clabe Account Setup
        • Agregar cuenta CLABE
      • Deposit Accounts
        • Agregar o actualizar cuenta CLABE
    • User Settings
      • Crear usuario
    • Card Present Payment Services
      • Cloud Terminal API
        • Cobrar pagos con tarjeta
        • Imprimir ticket
        • Cancelar notificación push
        • Consultar estado de la transacción
        • Cobrar pagos con tarjeta v2
      • App-to-App
        • Android intents
        • App to App — iOS
        • App to App — Mobile Web
      • Terminal SDK
        • Terminal SDK Android
        • Errores del SDK de Android
    • Transactions
      • Transaction List
        • Obtener token
        • Consultar listado de transacciones
        • Consultar listado de transacciones v2
        • Consultar listado de transacciones v3
        • Consultar listado de transacciones v4
      • Cancel Payments
        • Códigos de error de cancelación
        • Cancelar pagos
  • API Raw Card Present
    • El objeto Amount
    • Catálogo de errores
    • Proceso de intercambio de llaves
    • Notas de versión
    • Datos de prueba
    • One-time payments
      • Pago único
    • Two-step-payments
      • Autorización y captura
    • Voids & Refunds
      • Reembolsar una transacción
      • Anular y reversar
    • Card information
      • Consultar información de BIN
      • Información de BIN V2
      • Solicitar opciones de diferido
    • Query Transactions
      • Búsqueda de transacciones
    • Webhooks
      • Webhooks — Pagos con tarjeta
      • Webhooks — Reembolsos
      • Webhooks — Introducción
      • Buenas prácticas
      • Revisa tus webhooks
    • Chargebacks
      • Consultar chargebacks
      • Solicitar exportación de chargebacks
    • Fraud Report
      • Consultar alertas de fraude
  • Kushki One
    • Error Catalog
    • Release notes
    • Transaction Examples
    • Webhooks
    • Cloud Services
      • Payment
        • Sync
          • Charge
          • Authorization (Pre-auth)
          • Capture
          • Re-authorization
          • Post-tip
          • Void
          • Refund
          • Abort
        • Async
          • Charge (Async)
          • Authorization — Pre-auth (Async)
          • Capture (Async)
          • Re-authorization (Async)
          • Post-tip (Async)
          • Void (Async)
        • Search
          • Transaction Search
      • Print
        • Create Print Job
        • Get Print Job Status
    • Local Services
      • Payment
        • Sync
          • Charge
          • Authorization (Pre-auth)
          • Capture
          • Re-authorization
          • Post-tip
          • Void
          • Refund
          • Abort
        • Async
          • Charge (Async)
          • Authorization — Pre-auth (Async)
          • Capture (Async)
          • Re-authorization (Async)
          • Post-tip (Async)
          • Void (Async)
          • Abort (Async)
        • Search
          • Transaction Search — Online
          • Transaction Search — Local
      • Print
        • Create Print Job
        • Get Print Job Status
        • Print Job Webhook (inbound — implemented by your POS)
  • Appian - Submerchant Register
    • Release Notes
    • Submerchant Validation in Batch
      POST
    • Query submerchant status by requestId/submerchantId
      GET
    • Submerchant Document Upload
      POST
    • Get submerchantIds
      GET
    • Get credentials for submerchants
      POST
  • Schemas
    • RequestBodies
      • one-and-two-step-payment
    • Card
    • Channel
    • Amount-cash-in
    • ChargebackListResponse
    • TransactionResponse
    • PrintJobRequest
    • one-and-two-step-payment-2
    • Card Present (CP)
    • one-and-two-step-payment-2
    • SubscriptionTransactionsResponse
    • FraudAlertRequest
    • StatusComponent
    • SettlementDateRangeRequest
    • amount
    • ChargebackItem
    • SubscriptionTransaction
    • extra_taxes
    • RawResponse
    • CommandText
    • Card Not Present (CNP)
    • Deferred
    • networkToken
    • FraudAlertResponse
    • ErrorResponse400
    • SettlementRecord
    • card
    • CardData
    • CommandColumns
    • FraudAlertRecord
    • SettlementResponse
    • currency
    • webhooksItem
    • ErrorResponse
    • Country
    • ErrorResponse401
    • LinkFailure
    • ColumnItem
    • ValidationError
    • Amount
    • card_details
    • ErrorResponse403
    • enc_tlv
    • CommandDivider
    • TransactionEvent
    • extraTaxes
    • payment_method
    • ErrorResponse500
    • CommandFeed
    • TransactionStatus
    • deferred
    • CommandSpace
    • ReadingType
    • pos_details
    • ContactDetails
    • sub_merchant
    • CommandCut
    • FailureReason
    • contact_details
    • Subscription
    • metadata
    • CommandImage
    • EventTerminal
    • documentType
    • orderDetails
    • Language
    • TransactionSearchRequest
    • CommandQR
    • EventOperation
    • Shipping Address
    • payment_submethod
    • CommandBarcode
    • EventAmount
    • Billing-Address
    • SubscriptionUpdate
    • EventExtraTaxes
    • PrintJobAccepted
    • PrinterError
    • EventMetadata
    • SubscriptionAdjustmentRequest
    • product
    • AmountWithTaxes
    • PrintJobStatus
    • PrintJobStatusRequest
    • threeDomainSecure
    • AmountCore
    • webhooks
    • headers
    • ExtraTaxes
    • PrintWebhookPayload
    • webhooksChargeback
    • Metadata
    • AmountWithTip
    • citMit
    • TransactionSearchBody
    • TransactionSearchOnlineBody
    • network
    • binInfo
    • AmountWithOptionalTip
    • TransactionSearchLocalBody
    • TransactionEvent_2
    • messageFields
    • UnexpectedErrorResponse
    • FailureReason_2
    • transactionType
    • ExternalReferenceId
    • EventTerminal_2
    • ExternalSubscriptionId
    • EventOperation_2
    • EventAmount_2
    • EventExtraTaxes_2
    • EventMetadata_2
    • SettlementTicketRequest
HomePerú 🇵🇪México 🇲🇽
Ecuador 🇪🇨Colombia 🇨🇴Chile 🇨🇱
HomePerú 🇵🇪México 🇲🇽
Ecuador 🇪🇨Colombia 🇨🇴Chile 🇨🇱
  1. Appian - Submerchant Register

Submerchant Validation in Batch

https://api-uat.kushkipagos.com
https://api-uat.kushkipagos.com
POST
/onboarding/v1/submerchants/batch
This endpoint allows Payment Service Providers (PSPs) to submit one or more submerchants for initial validation before they can enter to the onboarding process. This step does not create or onboard submerchants yet; It only checks that the data structure and operational context are valid.
This validation helps ensure that submerchant records meet the required format and that the PSP is eligible to the onboarding process.
Only submerchants that pass the validations will proceed to the actual onboarding process. Those that fail must be corrected and resubmitted.

Request Body (JSON)#

The request must include an array of submerchants, each containing relevant details such as country of operation, legal representatives, ultimate beneficial owners (UBOs), emails, and more.

Card Present (CP) / Kushki POS acquiring fields#

When operationType is CP, additional fields are required to register the submerchant in Kushki POS.
When operationType is CP, the usesKushkiPos field is required.
If usesKushkiPos is true, these fields are also required: operationMode emails, paymentOptions, paymentTypes, terminalCount, storeName and storeAddress.
If usesKushkiPos is false, or if operationType is not CP, those fields should not be sent.
📌 Important
Please note that submerchantName has a dynamic character limit based on your PSP's configured prefix: MIN(18, 21 - length(PSP Prefix) - 1). The system automatically normalizes the text to uppercase and builds the Soft Descriptor. See the field details below for character restrictions.

Response Handling#

If the validation was successful the response includes a status field, which can have one of the following values:
INITIALIZED – The request has been received and is being processed.
VALIDATION_FAILED – At least one submerchant in the request contains errors, preventing successful processing.
Once a submerchant is approved and ready for onboarding, each request generates a unique requestId, which can be used to track the status of the creation process.
Additionally, the response provides an array of submerchants, each with:
submerchantId – A unique identifier assigned to the submerchant.
submerchantName – The name of the submerchant.
status – Indicates if the submerchant passed validation:
VALID – The submerchant was successfully validated.
INVALID – The submerchant contains errors and requires correction.
Make sure to check the webhook notification. This will confirm whether the validation process was successful or rejected.

Request

Header Params

Body Params application/json

Examples

Responses

🟢200OK
application/json
Successful response
Bodyapplication/json

🟠403Forbidden
Request Request Example
Shell
JavaScript
Java
Swift
cURL
curl --location '/onboarding/v1/submerchants/batch' \
--header 'X-Api-Key;' \
--header 'Content-Type: application/json' \
--data-raw '[
    {
        "pspCustomerId": "20000000105771766000",
        "operationType": "CNP",
        "operationCountry": "MEX",
        "submerchantCountryTaxResidency": "MEX",
        "submerchantTaxId": "ABC120315XX1",
        "submerchantLegalName": "COMERCIAL MEXICO S.A. DE C.V.",
        "submerchantLegalEntityType": "Private",
        "submerchantName": "MEX API DOC",
        "submerchantAddress": "Av. Insurgentes Sur 1602",
        "submerchantCity": "Ciudad de México",
        "submerchantPostalCode": "03940",
        "submerchantUrl": "https://www.ejemplo.mx",
        "submerchantMcc": "5732",
        "legalRepresentativeName": "Juan Carlos",
        "legalRepresentativeFirstLastName": "Esquer",
        "legalRepresentativeSecondLastName": "Ramos",
        "legalRepresentativeDateBirth": "12/07/1990",
        "legalRepresentativeIdNumber": "EQRJ900712HDFRR01",
        "legalRepresentativeSameAsUbo": true,
        "uboName": "Juan Carlos",
        "uboFirstLastName": "Esquer",
        "uboSecondLastName": "Ramos",
        "uboDateBirth": "12/07/1990",
        "ubo2Name": "",
        "ubo2FirstLastName": "",
        "ubo2SecondLastName": "",
        "ubo2DateBirth": "",
        "secondConcurrenceNeeded": true,
        "pspNotificationEmail": "test@kushkipagos.com",
        "openField": ""
    }
]'
Response Response Example
200 - INITIALIZED (successful response)
{
    "status": "INITIALIZED",
    "requestId": "5c91b0ee-677f-448e-b2e8-eb13bf2efcab",
    "message": "The submerchants are ready to be processed. We will notify you once all have been processed",
    "results": [
        {
            "submerchantId": "5e9a859c-2112-4e8e-b819-2d18bc0f4d29",
            "submerchantName": "Kushki México",
            "status": "VALID",
            "message": "The format is valid",
            "errors": []
        },
        {
            "submerchantId": "c0d99b38-9590-49fc-b348-899affe20726",
            "submerchantName": "Empresa México SA de CV",
            "status": "VALID",
            "message": "The format is valid",
            "errors": []
        }
    ]
}
Modified at 2026-09-02 15:22:57
Previous
Release Notes
Next
Query submerchant status by requestId/submerchantId
Built with