1. Users
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. Users

Upload Customer Document

Entorno sandbox
https://sandbox.cryptopocket.io/api
Entorno sandbox
https://sandbox.cryptopocket.io/api
POST
/customers/{user_id}/documents

Summary#

Uploads a KYC/supporting document for an existing customer and stores it in cloud storage.

Description#

Use this endpoint to submit a customer document as part of the KYC or source-of-funds workflow. The file can be provided either as a Base64-encoded string (with or without a data:{mime};base64, prefix) or as a publicly accessible HTTP/HTTPS URL.
Supported file formats: PDF, images (JPG, PNG, etc.), and other common document types. Maximum file size: 20 MB.

Path Parameters#

ParameterTypeRequiredDescription
user_idintegerYesUnique identifier of the customer

Request Body (application/json)#

FieldTypeRequiredDescription
typestringYesDocument category. See allowed values below.
filestringYesBase64-encoded file content or a public HTTP/HTTPS URL to the file.

Allowed type values#

ValueDescription
onboarding_formOnboarding form
bank_statementBank account statement
payslipSalary payslip
employment_contractEmployment contract
tax_returnTax return
tax_certificateTax certificate
company_accountsCompany financial accounts
dividend_statementDividend statement
investment_statementInvestment portfolio statement
crypto_wallet_statementCryptocurrency wallet statement
sale_of_propertyProperty sale documentation
sale_of_vehicleVehicle sale documentation
sale_of_company_sharesCompany shares sale documentation
inheritance_documentInheritance documentation
gift_declarationGift declaration
loan_agreementLoan agreement
savings_evidenceSavings evidence
invoiceInvoice
freelance_income_evidenceFreelance income evidence
pension_statementPension statement
unemployment_benefit_statementUnemployment benefit statement
source_of_funds_declarationSource of funds declaration
otherOther supporting document

Example Request (Base64)#

{
  "type": "bank_statement",
  "file": "data:application/pdf;base64,JVBERi0xLjQKJeLjz9MK..."
}

Example Request (Public URL)#

{
  "type": "payslip",
  "file": "https://cdn.example.com/documents/payslip-january.pdf"
}

Success Response (200 OK)#

{
  "status": "ok"
}

Error Responses#

HTTP StatusError CodeDescription
200authorization_incorrectInvalid or missing auth header
403user_not_in_integrationCustomer does not belong to the authenticated integration
404user_not_foundCustomer ID does not exist
422invalid_fileFile content is not valid Base64
422invalid_file_urlURL is unreachable or returns an empty/invalid response
422file_too_largeFile exceeds the 100 MB size limit
422Validation errorMissing or invalid type / file fields
500file_upload_failedCloud storage upload failed
500unexpected_errorInternal server error

Notes#

When using a URL, it must be publicly accessible over HTTP or HTTPS.
Raw Base64 strings (without the data: prefix) are also supported.
The file extension is inferred automatically from the MIME type, URL path, or file content.

Solicitud

Parámetros de ruta

Parámetros de Header

Parámetros del Body application/json

Ejemplos

Respuestas

🟢200
application/json
Bodyapplication/json

🟠422
Solicitud Ejemplo de Solicitud
Shell
JavaScript
Java
Swift
cURL
curl --location 'https://sandbox.cryptopocket.io/api/customers//documents' \
--header 'Content-Type: application/json' \
--data '{
    "type": "bank_statement",
    "file": "data:application/pdf;base64,JVBERi0xLjQKJeLjz9MK..."
}'
Respuesta Ejemplo de Respuesta
200 - Éxito
{
    "status": "ok"
}
Modificado en 2026-06-18 08:28:38
Anterior
Create enhanced verification link
Siguiente
Find User
Built with