1. Docs
CryptopocketAPI
  • Common
    • Authentication
      POST
    • Token Price
      GET
    • Get Available Assets
      GET
  • Users
    • List customers
      GET
    • Create customer
      POST
    • Create customer with delegated KYC
      POST
    • Create company customer
      POST
    • Retrieve KYC/KYB verification status
      GET
    • Create enhanced verification link
      POST
    • Upload Customer Document
      POST
    • Find User
      GET
  • OnRamp
    • List payment methods
      GET
    • Get Quote
      GET
    • Create Payment Intend
      POST
    • Create guided payment intent
      POST
    • Retrieve payment
      GET
    • List on-ramp transactions
      GET
  • OffRamp
    • Get quote
      GET
    • Create OffRamp Transaction
      POST
    • Retrieve off-ramp transaction status
      GET
    • List off-ramp transactions
      GET
  • Bank Accounts
    • List bank accounts
      GET
    • List account transactions
      GET
    • Reconcile payment with bank transaction
      POST
  • Webhooks
    • Available webhooks
    • Webhook Event Subscribe
    • Webhook Event Update
  • Docs
    • Sandbox Environment Instructions
    • CryptoPocket Integration Guide — Buy Flow (On-Ramp)
  • Raíz
  • Schemas
    • FindUserSuccess
    • ReconcilePaymentRequest
    • IntegrationError
    • BankAccount
    • ReconcilePaymentSuccessResponse
    • BankAccountsListResponse
    • ErrorResponse
    • BankAccountTransaction
    • Pagination
    • BankAccountTransactionsResponse
  1. Docs

CryptoPocket Integration Guide — Buy Flow (On-Ramp)

CryptoPocket Integration Guide — Buy Flow (On-Ramp)#

This guide describes how to integrate CryptoPocket’s API to let your customers buy cryptocurrency and use it in your remittance process.

Prerequisites#

Before calling the API, CryptoPocket will provide you with:
API Key and API Secret
Base URL (production or sandbox)
Optional: IP whitelist configuration

Step 0 — Authenticate#

All API requests require an auth token in the header:
auth: <your_token>
Obtain the token by calling:
POST /api/authenticate
Body:
{
  "api_key": "your_api_key",
  "api_secret": "your_api_secret"
}
Response: a token valid for ~24 hours. Refresh it before expiry.

Step 1 — Build an estimation form (optional)#

Use the Quote endpoint to show your customer how much crypto they will receive for a given EUR amount.
GET /api/quote
Query params:
ParamRequiredDescription
amountYesEUR amount to buy
symbolYesCrypto symbol (e.g. USDC, BTC)
chainNoBlockchain (default: polygon)
payment_typeYese.g. card, PSD2, TRANSFER
Response: estimated crypto amount (tokens).
You can also call GET /api/available-assets to list supported coins and blockchains.

Step 2 — Register the customer (KYC)#

When your customer is ready to operate, register them with:
POST /api/registerUser
Minimum body:
{
  "name": "John",
  "email": "john@example.com"
}
Response (key fields):
FieldDescription
idCustomer ID — save this in your database
kyc_form_urlURL to redirect the customer to complete KYC
Your action: redirect the customer to kyc_form_url.
Optional: send callback_url if you want the customer redirected back to your app after KYC.

Step 3 — Poll KYC status#

While the customer completes KYC, poll:
GET /api/kyc/check?user_id={id}
Stop polling when kyc_status is:
StatusMeaning
validKYC approved — proceed to payment
failKYC rejected — do not proceed
Intermediate statuses (unused, processing) mean KYC is still in progress.
Alternative: subscribe to KYC webhooks instead of polling (contact us for setup).

Step 4 — Create a guided payment intent#

Once KYC is valid, create the payment:
POST /api/createGuidedPayment
Body:
{
  "user_id": 12345,
  "coin_symbol": "USDC",
  "coin_chain": "polygon",
  "fiat_amount": 100,
  "payment_type": "card",
  "external_id": "your-remesa-reference-001"
}
FieldRequiredDescription
user_idYesCustomer ID from Step 2
coin_symbolYesCrypto to buy
coin_chainYesBlockchain
fiat_amountYesAmount in EUR
payment_typeNoDefault: card
external_idNoYour internal reference (recommended for remittances)
Note: Guided payment is currently available for EUR only.
Response (key fields):
FieldDescription
payment_idPayment token — save this in your database
gateway_urlURL to redirect the customer to pay
Your action: redirect the customer to gateway_url.

Step 5 — Poll payment status#

Poll until the operation completes:
GET /api/payment/{payment_id}
Relevant statuses:
StatusMeaning
startedPayment created, awaiting customer action
payment_receivedCustomer paid — crypto dispatch in progress
coins_sentCrypto sent to wallet — operation complete
When status is coins_sent, the response may also include txid (blockchain transaction hash).
Alternative: subscribe to webhooks (PAY_IN, COINS_SENT) to receive notifications instead of polling.

Step 6 — Continue your remittance process#

When the payment reaches coins_sent, the cryptocurrency is available in the configured wallet.

Flow diagram#


What you should store#

Your DB fieldSource
cryptopocket_user_idid from registerUser
cryptopocket_payment_idpayment_id from createGuidedPayment
external_idYour own remittance reference
Modificado en 2026-06-27 19:43:40
Anterior
Sandbox Environment Instructions
Siguiente
FindUserSuccess
Built with