This guide covers everything you need to know about creating and managing customers in the Grid API for Bitcoin rewards distribution.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.
Overview
Customers are the payers of your Bitcoin rewards. They can be individuals or businesses. Each customer in the Grid system has:- System-generated ID: Unique identifier assigned by Grid (e.g.,
Customer:019542f5-b3e7-1d02-0000-000000000001) - Customer Type: Either
INDIVIDUALorBUSINESS - KYC Status: Indicates if the customer has been verified and approved.
- Internal Accounts: Automatically created for each supported currency upon customer creation
- Platform Customer ID: Optional field to link to your own user/customer ID
The
platformCustomerId field is optional but recommended. Use your existing user IDs to maintain a simple mapping between your system and Grid.Customer Onboarding
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.
When a customer is created successfully, internal accounts are automatically created for each currency configured on your platform. These accounts can be used as sources or destinations for transfers.
Hanlding KYC/KYC 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
Listing Customers
Retrieve a paginated list of customers with optional filtering:Query Parameters
Filter by your platform’s customer identifier
Filter by customer type (
INDIVIDUAL or BUSINESS)Filter customers created after this timestamp (ISO 8601)
Filter customers created before this timestamp (ISO 8601)
Filter customers updated after this timestamp (ISO 8601)
Filter customers updated before this timestamp (ISO 8601)
Whether to include deleted customers in results (default: false)
Maximum number of results per page (default: 20, max: 100)
Pagination cursor from previous response
Response
Retrieving a Single Customer
Get detailed information about a specific customer:Deleting Customers
Delete a customer by their system-generated ID:Related Resources
- API Reference: Customers - Complete customer API documentation
- Quick Start Guide - End-to-end Bitcoin rewards walkthrough
- Handling Webhooks - Implement webhook handling for real-time notifications