1. Webhooks
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
      POST
    • Webhook Event Update
      POST
  • 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. Webhooks

Available webhooks

1. Configuration#

Subscription#

EndpointMethodAuth
/api/subscribeToWebhookPOSTHeader auth
/api/updateWebhookSubscriptionPOSTHeader auth
Body:
{
  "type": "PAY_IN",
  "url": "https://your-server.com/webhooks/cryptopocket"
}
Subscribable types (public API):
typeEmitted event
PAY_INpayment_received
COINS_SENTcoins_sent
CRYPTO_RECEIVEDCRYPTO_RECEIVED
RAMPOFF_FINISHEDRAMPOFF_FINISHED
Subscription responses:
{ "status": "ok", "data": "subscription_created" }
{ "status": "error", "error": "subscription_already_exists" }

2. Authentication#

Standard mode#

Used for: PAY_IN, COINS_SENT, CRYPTO_RECEIVED, RAMPOFF_FINISHED, TRANSFER_RAMPOFF_FINISHED.

3. On-ramp events (payments)#

PAY_IN → payment_received#

When: Fiat payment is confirmed (card, bank transfer, PSD2, Koywe, etc.).
Payload:
{
  "event": "payment_received",
  "data": {
    "id": "abc123token456",
    "user_id": 12345,
    "external_id": "your-ref-001",
    "status": "payment_received",
    "fiat_amount": 10000,
    "fiat_symbol": "EUR",
    "coin_symbol": "USDC",
    "coin_amount": "95.12345678",
    "created_at": "2026-06-27T10:30:00.000000Z",
    "holder": "JOHN DOE"
  }
}
FieldDescription
idPayment token (payment_id from the API)
external_idReference sent in createPayment / createGuidedPayment
fiat_amountFiat amount (may be in cents depending on payment state)
holderPayer name, when available

COINS_SENT → coins_sent#

When: Crypto is sent to the user's wallet (e.g. Koywe crypto_delivered, whitelabel liquidations).
Payload:
{
  "event": "coins_sent",
  "data": {
    "id": "abc123token456",
    "user_id": 12345,
    "external_id": "your-ref-001",
    "status": "coins_sent",
    "fiat_amount": 100.00,
    "fiat_symbol": "EUR",
    "coin_symbol": "USDC",
    "coin_amount": "95.12345678",
    "created_at": "2026-06-27T10:35:00.000000Z",
    "txid": "0xabc123...",
    "holder": "JOHN DOE"
  }
}
FieldDescription
txidOn-chain transaction hash
Typical order: payment_received → coins_sent.

Authentication: Different from other webhooks (does not use the standard signature header). Validate origin through other agreed means.

4. Off-ramp events (rampoff)#

CRYPTO_RECEIVED#

When: User crypto arrives at the rampoff deposit wallet.
Standard payload:
{
  "event": "CRYPTO_RECEIVED",
  "data": {
    "id": "rampoff_token_xyz",
    "rampoff_operation_id": 9876,
    "chain": "polygon",
    "crypto_symbol": "USDC",
    "crypto_amount": "150000000",
    "crypto_decimals": 6,
    "user_deposit_hash": "0x...",
    "commission": "2.50",
    "bank_trx_id": null,
    "bank_trx_iban": null,
    "bank_trx_amount": null,
    "bank_trx_symbol": "eur",
    "created_at": null
  }
}

RAMPOFF_FINISHED#

When: Rampoff is completed and fiat is transferred to the user.
Payload: Same structure as CRYPTO_RECEIVED, with bank details when available:
{
  "event": "RAMPOFF_FINISHED",
  "data": {
    "id": "rampoff_token_xyz",
    "rampoff_operation_id": 9876,
    "chain": "polygon",
    "crypto_symbol": "USDC",
    "crypto_amount": "150000000",
    "crypto_decimals": 6,
    "user_deposit_hash": "0x...",
    "commission": "2.50",
    "bank_trx_id": "bank_trx_123",
    "bank_trx_iban": "ES12....",
    "bank_trx_amount": "148.25",
    "bank_trx_symbol": "eur",
    "created_at": "2026-06-27T12:00:00.000000Z"
  }
}

Modificado en 2026-07-01 00:48:28
Anterior
Reconcile payment with bank transaction
Siguiente
Webhook Event Subscribe
Built with