This guide provides comprehensive information about creating customers in the Grid API, including customer types, onboarding models, registration, and management.Documentation Index
Fetch the complete documentation index at: https://ramps-docs-sync-20260512.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Onboarding model
There are two models for regulated and unregulated platforms.- Regulated platforms: Use your existing compliance processes. Create individual and business customers directly via
POST /customers. The information you supply is used for beneficiary/counterparty compliance screening. - Unregulated platforms: Grid performs KYC/KYB. Generate a hosted KYC/KYB link, redirect your customer to complete verification in their locale, receive a KYC result webhook. While KYC is pending, allow customers to finish account setup but block funding and money movement.
Customer Types
The Grid API supports both individual and business customers. While the API schema itself makes most Personally Identifiable Information (PII) optional at initial creation, specific fields may become mandatory based on the currencies the customer will transact with. Your platform’s configuration (retrieved viaGET /config) includes a supportedCurrencies array. Each currency object within this array has a providerRequiredCustomerFields list. If a customer is intended to use a specific currency, any fields listed for that currency must be provided when creating or updating the customer.
The only required field for all customers is customerType (INDIVIDUAL or BUSINESS). It’s recommended to also pass a platformCustomerId to tie the customer to your internal identifier, but if you don’t, one will be generated automatically.
If using sending and receiving to just-in-time UMA addresses, you’ll also need to specify the bank account information
Creating Customers
Regulated Platforms
Regulated Platforms
Regulated platforms have lighter KYC requirements since they handle compliance verification internally.
- Direct API Onboarding: Create customers directly via API calls with minimal verification
- Internal KYC/KYB: Handle identity verification through your own compliance systems
- Reduced Documentation: Only provide essential customer information required by your payment counterparty or service provider.
- Faster Onboarding: Streamlined process for known, verified customers
Creating Customers via Direct API
For regulated platforms, you can create customers directly through the API without requiring external KYC verification:To register a new customer in the system, use thePOST /customers endpoint:- Individual customer
- Business Customer
Unregulated Platforms
Unregulated Platforms
Unregulated platforms must:Persist the returned Response:
- Hosted KYC Flow: Use the hosted KYC link for complete identity verification
- Extended Review: Customers may require manual review and approval in some cases
Hosted KYC Link Flow
The hosted KYC flow provides a secure, hosted interface where customers can complete their identity verification and onboarding process.The flow is two steps: create the customer with the information you have, then generate a hosted KYC link for that customer. The customer’skycStatus stays PENDING until they complete the hosted flow.1. Create the customer
Create the customer withPOST /customers, supplying at least customerType and any fields you already have. See Configuring Customers for the full list of optional pre-fill fields.id (the Grid customer ID) — you’ll need it for the next step.2. Generate a KYC link
Complete KYC Process
Create the customer
Call
POST /customers with customerType and any pre-fill fields you have. The returned id is the customer’s Grid ID; their kycStatus is PENDING until verification completes.Generate the KYC link
Call
POST /customers/{customerId}/kyc-link. Each call returns a fresh single-use kycUrl and expiresAt; previously-issued links remain single-use but aren’t invalidated.The
redirectUri you pass is embedded in the generated kycUrl and is used to automatically return the customer to your application after they complete verification.Send the customer through verification
Redirect the customer to
kycUrl, or — if you want to embed the flow directly — initialize the provider’s SDK with the returned token.Track the decision
Reaching your
redirectUri only means the customer finished the hosted flow — not that they were approved. Wait for the final decision in one of two ways:- Webhook (recommended): Subscribe to
KYC_STATUSto be notified when the customer reaches a terminal status (APPROVED,REJECTED,EXPIRED, orCANCELED). - Polling: Call
GET /customers/{customerId}and inspectkycStatus.
Individual customers
In some cases, only the above fields are required at customer creation. Beyond those base requirements, additional fields commonly associated with individual customers include:- Full name
- Date of birth (YYYY-MM-DD format)
- Physical address (including country, state, city, postalCode)
providerRequiredCustomerFields for each relevant currency in your platform’s configuration to determine which of these fields are strictly mandatory at creation/update time for that customer to transact in those currencies.
Business customers
Beyond the base requirements, additional fields commonly associated with business customers include:- Business information:
- Legal name (this is often required, check
providerRequiredCustomerFields) - Registration number (optional, unless specified by
providerRequiredCustomerFields) - Tax ID (optional, unless specified by
providerRequiredCustomerFields)
- Legal name (this is often required, check
- Physical address (including country, state, city, postalCode)
providerRequiredCustomerFields for each relevant currency in your platform’s configuration to determine which of these fields are strictly mandatory at creation/update time for that customer to transact in those currencies.
When creating or updating customers, the customerType field must be specified as either INDIVIDUAL or BUSINESS.
Customer Creation Process
Creating a new individual customer (regulated institutions)
To register a new customer directly, use thePOST /customers endpoint (regulated institutions):
providerRequiredCustomerFields for those currencies (found in your platform’s configuration via GET /config).
The examples below show a more comprehensive set of data. Not all fields are strictly required by the API for customer creation itself, but become necessary based on currency and provider requirements.
Example request body for an individual customer with UMA instant payments enabled (ensure all providerRequiredCustomerFields for intended currencies are included):
Typically bank account information is provided separately via internal and external account management. However, when using UMA for instant payments, since funding and withdrawals are instant, bank account information can be provided at time of customer creation.
UMA addresses follow the format
$username@domain. For your platform:- The
domainpart will be your configured UMA domain (set in platform configuration) - The
usernamepart can be chosen by you or your customers, following these rules:- Must start with a $ symbol. This is to differentiate from email addresses and clearly identify an uma address.
- The
usernameportion is limited to a-z0-9-_.+ - Addresses are case-insensitive, but by convention are written only with lowercase letters
- Like email addresses, the maximum number of characters for the
usernameportion of the address is 64 characters (including the $).
Creating a new business customer (regulated institutions)
Onboarding customers (unregulated institutions)
Unregulated institutions should initiate a hosted KYC/KYB flow in two steps: create the customer, then generate a hosted KYC link for that customer. While KYC is pending, allow account setup but block funding and money movement.- Create the customer with
POST /customers, supplying any information you already have. OnlycustomerTypeis required.
- Generate a hosted KYC link for the new customer:
- Redirect the customer to
kycUrl, or pass the optionaltokento the provider’s SDK to embed verification directly in your UI. - After the user is redirected back to your app, they can continue with account setup until KYC review is complete.
- Track the decision via the
KYC_STATUSwebhook, or pollGET /customers/{customerId}and inspectkycStatus. OnAPPROVED, the customer is ready to transact and you can unlock funding.
Handling KYC/KYB Webhooks
After a customer completes the KYC/KYB verification process, you’ll receive webhook notifications about their KYC status. These notifications are sent to your configured webhook endpoint.For regulated platforms, customers are created with
APPROVED KYC status by default.Content-Type: application/jsonX-Grid-Signature: {"v": "1", "s": "base64_signature..."}
Unique identifier for this webhook delivery. Use this for idempotency to prevent processing duplicate webhooks.
Status-specific event type. KYC webhooks use
CUSTOMER.* types:CUSTOMER.KYC_APPROVED: Customer verification completed successfullyCUSTOMER.KYC_REJECTED: Customer verification was rejectedCUSTOMER.KYC_SUBMITTED: KYC verification was initially submittedCUSTOMER.KYC_MANUALLY_APPROVED: Customer was manually approved by platformCUSTOMER.KYC_MANUALLY_REJECTED: Customer was manually rejected by platform
The full customer resource object, same as the corresponding
GET /customers/{id} endpoint would return. Includes all customer fields such as id, kycStatus, fullName, birthDate, nationality, address, etc.Intermediate states like
PENDING_REVIEW do not trigger webhook notifications. Only final resolution states will send webhook notifications.Webhook Implementation Example
Webhook Implementation Example
Customer management
Retrieving customer information
You can retrieve customer information using either the Grid-assigned customer ID or your platform’s customer ID:Data validation
The Grid API performs validation on all customer data. Common validation rules include:- All required fields must be present based on customer type
- Date of birth must be in YYYY-MM-DD format and represent a valid date
- Names must not contain special characters
- Bank account information must follow country-specific formats
- Addresses must include all required fields including country code
Bulk customer import operations
For scenarios where you need to add many customers to the system at once, the API provides a CSV file upload endpoint.CSV file upload
For large-scale customer imports, you can upload a CSV file containing customer information:- Webhook notifications (if configured)
- Status endpoint: