1. Customers
Artha All Module Api's
  • Introduction
  • Authentication
  • KYC/KYB Requirements
  • API Setup Guide
  • Products
    • List Products
      GET
    • Get Product
      GET
    • Get Customer Product Status
      GET
  • Customers
    • Create Customer
      POST
    • List Customers
      GET
    • Get Customer
      GET
    • Submit Applicant (KYC/KYB)
      POST
    • Create Onboarding Session
      POST
  • Wallets
    • Beneficiary
      • Create Crypto Beneficiary
      • Update Crypto Beneficiary
      • List Crypto Withdraw Beneficiaries
    • Create Wallet
      POST
    • Get Wallet Address
      GET
    • Get Customer Balances
      GET
    • List Wallets
      GET
    • List Withdrawals
      GET
    • List Withdrawal Networks
      GET
    • Preview Withdrawal Summary
      POST
    • Create Crypto Withdrawal
      POST
  • Cards
    • Issuance
      • Issue Card
      • List Cards
      • List Customer Cards
      • Get Card Details
      • Get Sensitive Card Details
    • Funding
      • Top Up Card
      • Get Card Balance
      • Get Top-Up Status
      • List Top-Up History
    • Operations
      • Resend Activation Code
      • Activate Card
      • Set Card PIN
      • Change Card PIN
      • Update Card Limits
      • Freeze Card
      • Unfreeze Card
      • Replace Card
      • Cancel Card
      • Get Card Limits
      • Show Card PIN Details
      • Get PIN View Iframe URL
      • Get PIN Change Iframe URL
      • Get PIN Set Iframe URL
      • Get Card View Iframe URL
      • Show Card PIN
  • Payees
    • Create a payee for a customer.
      POST
    • List a customer's payees.
      GET
    • Update a payee.
      PUT
    • Retrieve a payee by id.
      GET
    • Look up an existing payee.
      GET
    • List the currencies a payee can be created in.
      GET
    • List the accepted payment purpose codes for a payee.
      GET
    • List the countries a payee can be created in.
      GET
    • List currency/country pairings for payees.
      GET
    • List the accepted beneficiary relationship codes.
      GET
  • Payments
    • Onboarding
      • List the customer's payout-currency configuration sections.
      • Enable a payout-currency section for the customer.
      • Get the customer's terms-of-service acceptance status.
      • Enable or disable a payout-currency section.
    • Quote
      • List the currencies a beneficiary can be paid in under a product.
      • List the payout rails available for a product and beneficiary.
      • Create an FX quote giving the rate and fee for a cross-currency payout.
    • Order
      • Submit a payout order to send money to a beneficiary.
      • Retrieve the on-chain address to fund an order.
      • Retrieve the status and settlement detail of a payout order.
    • Lookups
      • List the accepted payment purpose codes for a payout.
      • List the accepted source-of-funds codes for a payout.
      • List the document types accepted on a payout order.
  • Banks
    • Accounts
      • Create Bank Account
      • Get Account Details
      • Get Account Issuance Status
    • Withdraw
      • Create Withdrawal Quote
      • List Withdrawal Purposes
      • Get Payment Schemes
      • Execute Withdrawal
  • Exchange
    • Quote
      • Get Exchange Rate
      • Create Price Quote
    • Order
      • Place Exchange Order
  • Transactions
    • List Transactions
    • Get Transaction Details
  • Utilities
    • List Currencies
    • List Countries
    • Get Fee Schedule
    • List Product Occupations
    • List Product Industry Codes
    • Upload File
  • Webhook's
    • Wallets Webhooks
    • Banks Webhooks
    • Payments Webhooks
    • Exchange Webhooks
    • Card Webhooks
  1. Customers

Create Onboarding Session

POST
/api/v1/customers/{customerId}/products/{productId}/onboarding
Creates a hosted onboarding (KYC) session for a customer against a product and returns the hostedUrl
you redirect the customer to. Use this instead of - or alongside - Submit Applicant for products that
use a hosted verification flow (typically Banks and Payments products).
Prerequisites: the customer and the product must already exist, and the product must be active.
Optional Fields
FieldTypeDescriptionConstraints
sumSubTokenstringAn existing SumSub share token for the customer, used to prefill the hosted session. Omit it to have one generated for youNullable
returnUrlstring (uri)Where the customer is redirected once the hosted flow finishesMust be an absolute http/https URL
The body is optional - POST with no body is valid.
Response Fields (inside data)
FieldTypeDescription
customerIdstring (uuid)Customer the session belongs to
productIdstring (uuid)Product the session was created for
productTypestringProduct type - Cards, Banks, Wallets, Exchange, Payments
hostedUrlstring (uri)The URL to redirect the customer to
walletIdstring (uuid), nullableWallet the session belongs to (Banks products)
statusstringready when hostedUrl is populated, otherwise unavailable
sumSubTokenAppliedbooleanWhether a SumSub token was applied. The token itself is never returned
messagestringEmpty on success; the reason when the session is unavailable
When a hosted session is not available for the product, the call returns
409 ONBOARDING_SESSION_UNAVAILABLE with the reason in error.message - submit the applicant
details directly instead.

Request

Path Params

Header Params

Body Params application/json

Examples

Responses

🟢200
application/json
Onboarding session created successfully.
Bodyapplication/json

🟠401
🟠404
🟠409
🟠422
🔴500
Request Request Example
Shell
JavaScript
Java
Swift
cURL
curl --location '/api/v1/customers/3fa85f64-5717-4562-b3fc-2c963f66afa6/products/5e91a0d4-2b77-4c1a-8d36-9ab0c1d2e3f4/onboarding' \
--header 'X-API-Key;' \
--header 'X-Signature;' \
--header 'X-Timestamp;' \
--header 'X-Nonce;' \
--header 'X-Body-Hash;' \
--header 'X-Idempotency-Key;' \
--header 'Content-Type: application/json' \
--data '{}'
Response Response Example
200 - Success
{
    "data": {
        "customerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "productId": "5e91a0d4-2b77-4c1a-8d36-9ab0c1d2e3f4",
        "productType": "Banks",
        "hostedUrl": "https://hosted-kyc.provider.com/session/7c9e6679-7425-40de-944b-e07fc1f90ae7",
        "walletId": "1b2c3d4e-5f60-4718-8293-a4b5c6d7e8f9",
        "status": "ready",
        "sumSubTokenApplied": true,
        "message": ""
    },
    "requestId": "9f2c4b6e8a1d4f0cb7e35a91d2c46f80",
    "timestamp": "2026-08-22T10:30:00.123Z"
}
Modified at 2026-08-22 04:49:45
Previous
Submit Applicant (KYC/KYB)
Next
Create Crypto Beneficiary
Built with