1. Chile 🇨🇱
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)
      • Anular una transacción
      • Reembolsar una transacción
      • Solicitar opciones de diferido
      • Autorizar pagos
      • Preautorización (sin token)
      • Reautorizar pagos
      • Capturar un pago autorizado
      • Verificar cuenta
      • Validar OTP
      • Información de BIN V2
      • Información de BIN
      • Voucher
    • One-Click & Scheduled Payments
      • Solicitar un token de cargo recurrente
      • Crear un cargo recurrente
      • Actualizar los datos de la tarjeta del cargo recurrente
      • Hacer un pago One-click
      • 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
    • Card Async
      • Solicitar un token de Card Async
      • Iniciar transacción
      • Autorizar pagos
      • Capturar un pago autorizado
      • Consultar estado
    • Async Card Recurring Charges
      • Solicitar un token de cargo recurrente con tarjeta asíncrono
      • Iniciar un cargo recurrente con tarjeta asíncrono
      • Autorizar pagos
      • Capturar un pago autorizado
    • Chargebacks
      • Consultar chargebacks
      • Solicitar exportación de chargebacks
    • 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
    • Cash In
      • Solicitar un token de Cash In
      • Iniciar transacción
      • Estado de la transacción
    • Smartlinks V2
      • Crear un Smartlink
      • Consultar un Smartlink
      • Eliminar un Smartlink
      • Actualizar un Smartlink
    • Payment Button
      • Crear un Payment Button
    • Analytics
      • Consultar listado de transacciones v2
    • Status
      • Consultar estado de la plataforma
      • Consultar estado del gateway
    • Subscription Transactions
      • Consultar transacciones de suscripción
    • Payment Credentials
      • Crear una credencial
      • Buscar credenciales
      • Actualizar credencial
      • Regenerar una credencial
      • Eliminar credencial
      • Activar o desactivar
      • Búsqueda avanzada
    • Settlement
      • Consultar liquidación
    • Fraud Report
      • Consultar alertas de fraude
  • API Raw Card Present Payments 🇨🇱
    • Notas de versión
    • Catálogo de errores
    • Datos de prueba
    • Proceso de intercambio de llaves
    • El objeto Amount
    • 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
    • Chargebacks
      • Consultar chargebacks
      • Solicitar exportación de chargebacks
    • Webhooks
      • Introducción
      • Buenas prácticas
      • Reembolsos
      • Pagos con tarjeta
      • Revisa tus webhooks
    • 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
        • Search
          • Transaction Search
        • Async
          • Charge (Async)
          • Authorization — Pre-auth (Async)
          • Capture (Async)
          • Re-authorization (Async)
          • Post-tip (Async)
          • Void (Async)
      • Print
        • Create Print Job
        • Get Print Job Status
    • Local Services
      • Payment
        • Sync
          • Charge
          • Authorization (Pre-auth)
          • Capture
          • Re-authorization
          • Post-tip
          • Void
          • Refund
          • Abort
        • Search
          • Transaction Search — Online
          • Transaction Search — Local
        • Async
          • Charge (Async)
          • Authorization — Pre-auth (Async)
          • Capture (Async)
          • Re-authorization (Async)
          • Post-tip (Async)
          • Void (Async)
          • Abort (Async)
      • 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
    • Query submerchant status by requestId/submerchantId
    • Submerchant Document Upload
    • Get submerchantIds
    • Get credentials for submerchants
  • Schemas
    • RequestBodies
      • one-and-two-step-payment
    • documentType
    • ChargebackListResponse
    • Channel
    • TransactionResponse
    • PrintJobRequest
    • one-and-two-step-payment-1
    • one-and-two-step-payment-1
    • Card Present (CP)
    • Card
    • Amount-cash-in
    • SubscriptionTransactionsResponse
    • SettlementDateRangeRequest
    • StatusComponent
    • FraudAlertRequest
    • amount
    • extra_taxes
    • ChargebackItem
    • SubscriptionTransaction
    • RawResponse
    • CommandText
    • Card Not Present (CNP)
    • one-and-two-step-payment-11
    • networkToken
    • FraudAlertResponse
    • card
    • ErrorResponse400
    • CardData
    • CommandColumns
    • FraudAlertRecord
    • Amount-CL
    • webhooks
    • SettlementResponse
    • webhooksItem
    • headers
    • ErrorResponse401
    • SettlementRecord
    • LinkFailure
    • ColumnItem
    • Amount
    • currency
    • ValidationError
    • card_details
    • transactionType
    • enc_tlv
    • ErrorResponse403
    • CommandDivider
    • TransactionEvent
    • ErrorResponse
    • Country
    • binInfo
    • ErrorResponse500
    • payment_method
    • CommandFeed
    • TransactionStatus
    • extraTaxes
    • Deferred
    • deferred
    • CommandSpace
    • ReadingType
    • SubscriptionUpdate
    • pos_details
    • ContactDetails
    • Language
    • sub_merchant
    • CommandCut
    • FailureReason
    • contact_details
    • metadata
    • CommandImage
    • EventTerminal
    • Subscription
    • orderDetails
    • TransactionSearchRequest
    • CommandQR
    • EventOperation
    • Shipping Address
    • payment_submethod
    • CommandBarcode
    • EventAmount
    • Billing-Address
    • EventExtraTaxes
    • PrintJobAccepted
    • PrinterError
    • EventMetadata
    • AmountWithTaxes
    • PrintJobStatus
    • PrintJobStatusRequest
    • threeDomainSecure
    • SubscriptionAdjustmentRequest
    • AmountCore
    • webhooksChargeback
    • ExtraTaxes
    • PrintWebhookPayload
    • Metadata
    • AmountWithTip
    • citMit
    • TransactionSearchBody
    • TransactionSearchOnlineBody
    • network
    • AmountWithOptionalTip
    • TransactionSearchLocalBody
    • TransactionEvent_2
    • messageFields
    • UnexpectedErrorResponse
    • FailureReason_2
    • EventTerminal_2
    • ExternalReferenceId
    • EventOperation_2
    • ExternalSubscriptionId
    • EventAmount_2
    • EventExtraTaxes_2
    • EventMetadata_2
    • product
    • SettlementTicketRequest
    • TransactionEvent_21
    • TransactionStatus2
    • ReadingType3
    • FailureReason_24
    • EventTerminal_25
    • EventOperation_26
    • EventAmount_27
    • EventMetadata_28
    • EventExtraTaxes_29
    • PrintWebhookPayload10
    • TransactionEvent11
    • FailureReason12
    • EventTerminal13
    • EventOperation14
    • EventAmount15
    • EventMetadata16
    • EventExtraTaxes17
    • TransactionEvent_22
    • TransactionStatus3
    • ReadingType4
    • FailureReason_25
    • EventTerminal_26
    • EventOperation_27
    • EventAmount_28
    • EventMetadata_29
    • EventExtraTaxes_210
    • PrintWebhookPayload11
    • TransactionEvent12
    • FailureReason13
    • EventTerminal14
    • EventOperation15
    • EventAmount16
    • EventMetadata17
    • EventExtraTaxes18
HomePerú 🇵🇪México 🇲🇽Ecuador 🇪🇨Colombia 🇨🇴Chile 🇨🇱
HomePerú 🇵🇪México 🇲🇽Ecuador 🇪🇨Colombia 🇨🇴Chile 🇨🇱
  1. Chile 🇨🇱

Appian - Submerchant Register

Appian - Submerchant Register#

Kushki provides an API for Payment Service Providers (PSPs) to create multiple submerchants in a single operation. This API streamlines the onboarding process, allowing businesses to scale efficiently while maintaining compliance with legal and operational requirements.

API Base URL#

EnvironmentURL
Productionhttps://api.kushkipagos.com
Testhttps://core-uat-us-east-1.kushkipagos.com

Main Onboarding Endpoints#

1.
Submerchant Creation in Batch (POST /onboarding/v1/submerchants/batch) — Submit one or more submerchants for initial validation. This step checks structural and operational data but does not onboard the submerchants yet.
1.1. Webhook Notification: Submerchant Status — Once the request is processed, Kushki sends a webhook for each submerchant with their onboarding status. This notification can be individual or batched.
If the status is READY_FOR_ONBOARDING, proceed to the next step to track onboarding progress (step 2).
If the status is ERROR, review the details, correct the data, and resend the request using step 1.
2.
Get Submerchant by requestId or submerchantId (GET /onboarding/v1/submerchants) — Use this endpoint to monitor the onboarding progress of a submerchant after receiving the READY_FOR_ONBOARDING status.
3.
Get All Submerchant IDs (GET /onboarding/v1/psp/submerchantIds) — Retrieve all submerchantIds for one or more submerchants that have completed the onboarding process using the API Key from Appian.
4.
Get Credentials for Submerchants (POST /onboarding/v1/psp/credentials) — Retrieve the transactional credentials (public and private keys) for submerchants that have completed onboarding.

Submerchant Register Process#

1.
PSP sends a batch creation request with multiple submerchants. Kushki validates the request format.
The batch will only be processed if all submerchants pass validation.
If valid, submerchants move into onboarding.
If invalid, errors must be corrected and the request resubmitted.
2.
Kushki processes the request and returns a requestId along with other details.
3.
PSP queries the status using the requestId or submerchantId to check individual submerchant onboarding progress.

🔔 Webhook Notifications via Appian#

Kushki can automatically notify PSPs of submerchant onboarding results via webhook, based on the configuration established in Appian, as part of the commercial agreement during affiliation.

📌 Configuration Highlights#

Webhook setup is done in the PSP Portal in Appian.
Each PSP can enable or disable webhook notifications and configure:
Notification type: batch or individual
Event scope for individual mode:
Notify only errors
Notify only successes
Notify all results
The target URL where events should be sent

📬 Notification Logic#

If batch is enabled → a summary is sent once the full batch is processed.
If individual is enabled → Kushki can notify:
✅ All submerchant results
❌ Only errors
✔️ Only successes

🔔 Webhook Payload Examples for Submerchant Creation#

Depending on the configuration (individual or batch), Kushki will send webhook notifications to the PSP's configured URL with the status of the submerchant onboarding process.

Response Handling#

When a batch creation request is submitted, Kushki validates the format of each submerchant in the payload. The response includes a status field with one of the following values:
StatusDescription
READY_FOR_ONBOARDINGThe submerchant has passed validation and is ready for the onboarding process.
ERRORThe submerchant creation failed due to validation or processing issues. The issue must be corrected and the creation request resubmitted.

Batch Webhook Notification — Successful Submerchants#

[
  {
    "requestId": "d7eb557c-8385-4282-b196-6fb1ccec6a06",
    "submerchantId": "e5c40357-7bed-4e43-bd6c-4815e9341eaf",
    "status": "READY_FOR_ONBOARDING",
    "message": "Success"
  },
  {
    "requestId": "d7eb557c-8385-4282-b196-6fb1ccec6a06",
    "submerchantId": "bf5cbdd3-625f-4734-9559-6cf208f9e2de",
    "status": "READY_FOR_ONBOARDING",
    "message": "Success"
  }
]

📦 Batch Webhook Notification — With Errors#

[
  {
    "requestId": "d7eb557c-8385-4282-b196-6fb1ccec6a06",
    "submerchantId": "e5c40357-7bed-4e43-bd6c-4815e9341eaf",
    "status": "ERROR",
    "message": "Submerchant Onboarding Request has failed",
    "errorDetails": {
      "message": "Submerchant Onboarding Request has failed",
      "fields": {
        "customerId": "Select a valid operation country",
        "operationType": "Select a valid operation country",
        "operationCountry": "Operation Country not registered",
        "legalRepresentative": {
          "firstName": "Value is required",
          "firstLastName": "Value is required",
          "secondLastName": "Second Last Name is required",
          "dateBirth": "Date of Birth was invalid, select a new date",
          "disabled": false
        },
        "ubo": {
          "disabled": true
        }
      }
    }
  },
  {
    "requestId": "d7eb557c-8385-4282-b196-6fb1ccec6a06",
    "submerchantId": "bf5cbdd3-625f-4734-9559-6cf208f9e2de",
    "status": "ERROR",
    "message": "Submerchant Onboarding Request has failed",
    "errorDetails": {
      "message": "Submerchant Onboarding Request has failed",
      "fields": {
        "customerId": "Select a valid operation country",
        "operationType": "Select a valid operation country",
        "operationCountry": "Operation Country not registered",
        "legalRepresentative": {
          "firstName": "Value is required",
          "firstLastName": "Value is required",
          "secondLastName": "Second Last Name is required",
          "dateBirth": "Date of Birth was invalid, select a new date",
          "disabled": false
        },
        "ubo": {
          "disabled": true
        }
      }
    }
  }
]

📦 Individual Webhook Notification — With Error#

[
  {
    "requestId": "98d7e553-a1fd-43e5-ad7a-8e019e76745c",
    "submerchantId": "804e0d11-f298-4015-8662-1c31af577164",
    "status": "ERROR",
    "message": "Submerchant Onboarding Request has failed",
    "errorDetails": {
      "message": "Submerchant Onboarding Request has failed",
      "fields": {
        "customerId": "Select a valid operation country",
        "operationType": "Select a valid operation country",
        "operationCountry": "Operation Country not registered",
        "legalRepresentative": {
          "firstName": "Value is required",
          "firstLastName": "Value is required",
          "secondLastName": "Second Last Name is required",
          "dateBirth": "Date of Birth was invalid, select a new date",
          "disabled": false
        },
        "ubo": {
          "disabled": true
        }
      }
    }
  }
]
Modified at 2026-08-14 20:28:25
Previous
Print Job Webhook (inbound — implemented by your POS)
Next
Release notes
Built with