Esta página se genera desde el contrato (data/gateway-v1.json): cada operación muestra su verbo, ruta, parámetros, cuerpo, respuestas, si lleva Idempotency-Key y el método equivalente en los cinco SDK. Para el flujo de punta a punta con ejemplos completos, ve a la guía de implementación.

Operaciones del tag wallet #

Descripción en el contrato: Wallet / fintech surface: accounts (pockets, savings), card issuing and lifecycle, and FX quoting/conversion. The wallet holder is identified by document — as a query parameter on reads, and in the body on writes.

MétodoRutaOperaciónScopeIdem.
GET/v1/gateway/wallet/accounts/List the holder's accounts (wallet, pockets, savings)wallet:read—
POST/v1/gateway/wallet/accounts/Create a sub-account (pocket / savings / goal)wallet:accountsrecomendada
POST/v1/gateway/wallet/accounts/transfer/Transfer between the holder's own accountswallet:accountsrecomendada
GET/v1/gateway/wallet/balance/Saldo de la billetera del titularwallet:read—
GET/v1/gateway/wallet/billers/Catálogo de convenioswallet:read—
POST/v1/gateway/wallet/bills/inquiry/Consultar una facturawallet:payments—
POST/v1/gateway/wallet/bills/pay/Pagar una facturawallet:paymentsobligatoria
GET/v1/gateway/wallet/bills/payments/Historial de pagos de facturas y recargaswallet:read—
GET/v1/gateway/wallet/bills/payments/{payment_id}/Detalle de un pagowallet:read—
GET/v1/gateway/wallet/breb/limits/Límites Bre-B del titularwallet:read—
POST/v1/gateway/wallet/breb/resolve/Resolver una llave Bre-Bwallet:transfer—
POST/v1/gateway/wallet/breb/transfers/Enviar por Bre-Bwallet:transferobligatoria
GET/v1/gateway/wallet/cards/List issued cards (non-sensitive metadata)wallet:read—
POST/v1/gateway/wallet/cards/Issue a card (debit; virtual or physical)wallet:cardsrecomendada
POST/v1/gateway/wallet/cards/{card_id}/status/Change card status (freeze / unfreeze / block)wallet:cardsrecomendada
GET/v1/gateway/wallet/cards/{card_id}/transactions/Movements on a cardwallet:read—
POST/v1/gateway/wallet/fx/convert/Execute a currency conversionwallet:fxrecomendada
POST/v1/gateway/wallet/fx/quote/Quote a currency conversionwallet:fx—
POST/v1/gateway/wallet/p2p/resolve/Resolver destinatario P2Pwallet:transfer—
POST/v1/gateway/wallet/p2p/transfers/Transferir a otro afiliadowallet:transferobligatoria
POST/v1/gateway/wallet/topups/Recargar un celularwallet:topupobligatoria
GET/v1/gateway/wallet/topups/operators/Operadores de recargawallet:read—
GET/v1/gateway/wallet/transactions/Movimientos del titular (paginado, con filtros)wallet:read—
GET/v1/gateway/wallet/transactions/{tx_id}/Detalle de un movimientowallet:read—

List the holder's accounts (wallet, pockets, savings) #

GET/v1/gateway/wallet/accounts/

  • operationId listWalletAccounts
  • Autenticación X-API-Key · scope wallet:read
  • Idempotency-Key no aplica

Parámetros

NombreEnTipoDescripción
document obligatorioquerystringDocument id of the wallet holder. Ej.: 1090123456

Respuestas

CódigoDescripciónCuerpo
200The holder’s accounts.WalletAccountList application/json
Errores posibles (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

Ver Errores problem+json para la excepción equivalente en cada SDK.

Ejemplo

Método del SDK y petición HTTP
client.accounts.list()

Los métodos de cada SDK salen de su suite de paridad con el contrato. El cURL va contra el sandbox; los valores <campo> son marcadores.

Create a sub-account (pocket / savings / goal) #

POST/v1/gateway/wallet/accounts/

  • operationId createWalletAccount
  • Autenticación X-API-Key · scope wallet:accounts
  • Idempotency-Key recomendada (el SDK la genera)

Parámetros

NombreEnTipoDescripción
Idempotency-KeycabecerastringClient-generated key that makes a write safely retryable. Replaying the same key returns the original result with idempotent_replay: true; a replay while the original is still in flight returns 409. Ej.: horizonte-2026-06-26-credit-000123

Cuerpo de la petición

Tipo de contenido: application/json · obligatorio

Esquema WalletAccountCreateIn — Create a sub-account (pocket / savings / goal) for the wallet holder.

CampoTipoDescripción
document obligatoriostringNational document of the wallet holder. Ej.: "1032456789"
kind obligatoriostringValores: pocket, savings, goal. Ej.: "pocket"
namestringEj.: "Ahorro vacaciones"

Acepta campos adicionales (additionalProperties): se reenvían al motor sin cambios.

Respuestas

CódigoDescripciónCuerpo
200Accepted; transaction enqueued / processed.TransactionEnvelope application/json
Errores posibles (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

Ver Errores problem+json para la excepción equivalente en cada SDK.

Ejemplo

Método del SDK y petición HTTP
client.accounts.create_pocket()

Los métodos de cada SDK salen de su suite de paridad con el contrato. El cURL va contra el sandbox; los valores <campo> son marcadores.

Transfer between the holder's own accounts #

POST/v1/gateway/wallet/accounts/transfer/

  • operationId transferBetweenWalletAccounts
  • Autenticación X-API-Key · scope wallet:accounts
  • Idempotency-Key recomendada (el SDK la genera)
Moves money between two accounts owned by the same holder. Send an Idempotency-Key: without one the gateway cannot collapse a retry and the transfer may execute twice.

Parámetros

NombreEnTipoDescripción
Idempotency-KeycabecerastringClient-generated key that makes a write safely retryable. Replaying the same key returns the original result with idempotent_replay: true; a replay while the original is still in flight returns 409. Ej.: horizonte-2026-06-26-credit-000123

Cuerpo de la petición

Tipo de contenido: application/json · obligatorio

Esquema WalletTransferIn — Transfer funds between two of the holder’s own accounts.

CampoTipoDescripción
amount obligatorioMoneyCOP
document obligatoriostringEj.: "1032456789"
from_account obligatoriostringEj.: "acc_main"
to_account obligatoriostringEj.: "acc_pocket_1"

Acepta campos adicionales (additionalProperties): se reenvían al motor sin cambios.

Respuestas

CódigoDescripciónCuerpo
200Accepted; transaction enqueued / processed.TransactionEnvelope application/json
Errores posibles (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

Ver Errores problem+json para la excepción equivalente en cada SDK.

Ejemplo

Método del SDK y petición HTTP
client.accounts.transfer()

Los métodos de cada SDK salen de su suite de paridad con el contrato. El cURL va contra el sandbox; los valores <campo> son marcadores.

Saldo de la billetera del titular #

GET/v1/gateway/wallet/balance/

  • operationId getWalletBalance
  • Autenticación X-API-Key · scope wallet:read
  • Idempotency-Key no aplica

Parámetros

NombreEnTipoDescripción
document obligatorioquerystringDocument id of the wallet holder. Ej.: 1090123456

Respuestas

CódigoDescripciónCuerpo
200Saldo.WalletBalance application/json
Errores posibles (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

Ver Errores problem+json para la excepción equivalente en cada SDK.

Ejemplo

Método del SDK y petición HTTP
client.wallet.balance()

Los métodos de cada SDK salen de su suite de paridad con el contrato. El cURL va contra el sandbox; los valores <campo> son marcadores.

Catálogo de convenios #

GET/v1/gateway/wallet/billers/

  • operationId listBillers
  • Autenticación X-API-Key · scope wallet:read
  • Idempotency-Key no aplica

Parámetros

NombreEnTipoDescripción
categoryquerystringCategoría del convenio.
qquerystringBúsqueda por nombre o código.

Respuestas

CódigoDescripciónCuerpo
200Convenios.WalletBillerList application/json
Errores posibles (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

Ver Errores problem+json para la excepción equivalente en cada SDK.

Ejemplo

Método del SDK y petición HTTP
client.wallet.bills.billers()

Los métodos de cada SDK salen de su suite de paridad con el contrato. El cURL va contra el sandbox; los valores <campo> son marcadores.

Consultar una factura #

POST/v1/gateway/wallet/bills/inquiry/

  • operationId inquireBill
  • Autenticación X-API-Key · scope wallet:payments
  • Idempotency-Key no aplica

Cuerpo de la petición

Tipo de contenido: application/json · obligatorio

Esquema WalletBillInquiryIn

CampoTipoDescripción
barcodestringAlternativa a biller_code+reference (GS1).
biller_codestringEj.: "EPM"
document obligatoriostringEj.: "1032456789"
referencestringEj.: "123456789"

Acepta campos adicionales (additionalProperties): se reenvían al motor sin cambios.

Respuestas

CódigoDescripciónCuerpo
200Factura.WalletInvoice application/json
Errores posibles (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

Ver Errores problem+json para la excepción equivalente en cada SDK.

Ejemplo

Método del SDK y petición HTTP
client.wallet.bills.inquire()

Los métodos de cada SDK salen de su suite de paridad con el contrato. El cURL va contra el sandbox; los valores <campo> son marcadores.

Pagar una factura #

POST/v1/gateway/wallet/bills/pay/

  • operationId payBill
  • Autenticación X-API-Key · scope wallet:payments
  • Idempotency-Key obligatoria
data.status APPROVED (200/201) o PENDING (202: consultar bills/payments/{id}/). Evento: wallets.bill_payment.completed.

Parámetros

NombreEnTipoDescripción
Idempotency-Key obligatoriocabecerastringObligatoria en operaciones que mueven dinero (sin ella: 400). Ej.: horizonte-2026-06-26-credit-000123

Cuerpo de la petición

Tipo de contenido: application/json · obligatorio

Esquema WalletBillPayIn

CampoTipoDescripción
amount obligatorioMoneyCOP
biller_code obligatoriostringEj.: "EPM"
document obligatoriostringEj.: "1032456789"
reference obligatoriostringEj.: "123456789"

Acepta campos adicionales (additionalProperties): se reenvían al motor sin cambios.

Respuestas

CódigoDescripciónCuerpo
200Procesado; sobre estándar {status, transaction_id, module, data}.TransactionEnvelope application/json
Errores posibles (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

Ver Errores problem+json para la excepción equivalente en cada SDK.

Ejemplo

Método del SDK y petición HTTP
client.wallet.bills.pay()

Los métodos de cada SDK salen de su suite de paridad con el contrato. El cURL va contra el sandbox; los valores <campo> son marcadores.

Historial de pagos de facturas y recargas #

GET/v1/gateway/wallet/bills/payments/

  • operationId listBillPayments
  • Autenticación X-API-Key · scope wallet:read
  • Idempotency-Key no aplica

Parámetros

NombreEnTipoDescripción
document obligatorioquerystringDocument id of the wallet holder. Ej.: 1090123456
kindquerystringBILL o TOPUP.
limitqueryintegerTamaño de página (1–100, por defecto 50).
offsetqueryintegerDesplazamiento (por defecto 0).

Respuestas

CódigoDescripciónCuerpo
200Página de pagos.WalletBillPaymentPage application/json
Errores posibles (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

Ver Errores problem+json para la excepción equivalente en cada SDK.

Ejemplo

Método del SDK y petición HTTP
client.wallet.bills.list_payments()

Los métodos de cada SDK salen de su suite de paridad con el contrato. El cURL va contra el sandbox; los valores <campo> son marcadores.

Detalle de un pago #

GET/v1/gateway/wallet/bills/payments/{payment_id}/

  • operationId getBillPayment
  • Autenticación X-API-Key · scope wallet:read
  • Idempotency-Key no aplica

Parámetros

NombreEnTipoDescripción
payment_id obligatoriorutastringId del pago. Ej.: 8c2d0000-0000-4a1b-9c2d-000000000001
document obligatorioquerystringDocument id of the wallet holder. Ej.: 1090123456

Respuestas

CódigoDescripciónCuerpo
200Pago.WalletBillPayment application/json
Errores posibles (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

Ver Errores problem+json para la excepción equivalente en cada SDK.

Ejemplo

Método del SDK y petición HTTP
client.wallet.bills.get_payment()

Los métodos de cada SDK salen de su suite de paridad con el contrato. El cURL va contra el sandbox; los valores <campo> son marcadores.

Límites Bre-B del titular #

GET/v1/gateway/wallet/breb/limits/

  • operationId getBreBLimits
  • Autenticación X-API-Key · scope wallet:read
  • Idempotency-Key no aplica

Parámetros

NombreEnTipoDescripción
document obligatorioquerystringDocument id of the wallet holder. Ej.: 1090123456

Respuestas

CódigoDescripciónCuerpo
200Límites.WalletBreBLimits application/json
Errores posibles (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

Ver Errores problem+json para la excepción equivalente en cada SDK.

Ejemplo

Método del SDK y petición HTTP
client.wallet.breb.limits()

Los métodos de cada SDK salen de su suite de paridad con el contrato. El cURL va contra el sandbox; los valores <campo> son marcadores.

Resolver una llave Bre-B #

POST/v1/gateway/wallet/breb/resolve/

  • operationId resolveBreBKey
  • Autenticación X-API-Key · scope wallet:transfer
  • Idempotency-Key no aplica

Cuerpo de la petición

Tipo de contenido: application/json · obligatorio

Esquema WalletBreBResolveIn

CampoTipoDescripción
document obligatoriostringEj.: "1032456789"
key_type obligatoriostringValores: PHONE, DOCUMENT, EMAIL, ALIAS.
value obligatoriostringEj.: "3109876543"

Acepta campos adicionales (additionalProperties): se reenvían al motor sin cambios.

Respuestas

CódigoDescripciónCuerpo
200Resolución.WalletResolution application/json
Errores posibles (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

Ver Errores problem+json para la excepción equivalente en cada SDK.

Ejemplo

Método del SDK y petición HTTP
client.wallet.breb.resolve()

Los métodos de cada SDK salen de su suite de paridad con el contrato. El cURL va contra el sandbox; los valores <campo> son marcadores.

Enviar por Bre-B #

POST/v1/gateway/wallet/breb/transfers/

  • operationId createBreBTransfer
  • Autenticación X-API-Key · scope wallet:transfer
  • Idempotency-Key obligatoria
Solo con el resolution_token de breb/resolve. Eventos: wallets.transfer.created / wallets.transfer.failed.

Parámetros

NombreEnTipoDescripción
Idempotency-Key obligatoriocabecerastringObligatoria en operaciones que mueven dinero (sin ella: 400). Ej.: horizonte-2026-06-26-credit-000123

Cuerpo de la petición

Tipo de contenido: application/json · obligatorio

Esquema WalletTransferIn2 — Envío P2P o Bre-B: solo con el resolution_token del resolve (nunca un id suelto).

CampoTipoDescripción
amount obligatorioMoneyCOP
descriptionstringMáx. 140 caracteres.
document obligatoriostringEj.: "1032456789"
resolution_token obligatoriostring

Acepta campos adicionales (additionalProperties): se reenvían al motor sin cambios.

Respuestas

CódigoDescripciónCuerpo
200Procesado; sobre estándar {status, transaction_id, module, data}.TransactionEnvelope application/json
Errores posibles (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

Ver Errores problem+json para la excepción equivalente en cada SDK.

Ejemplo

Método del SDK y petición HTTP
client.wallet.breb.transfer()

Los métodos de cada SDK salen de su suite de paridad con el contrato. El cURL va contra el sandbox; los valores <campo> son marcadores.

List issued cards (non-sensitive metadata) #

GET/v1/gateway/wallet/cards/

  • operationId listWalletCards
  • Autenticación X-API-Key · scope wallet:read
  • Idempotency-Key no aplica

Parámetros

NombreEnTipoDescripción
document obligatorioquerystringDocument id of the wallet holder. Ej.: 1090123456

Respuestas

CódigoDescripciónCuerpo
200The holder’s cards.WalletCardList application/json
Errores posibles (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

Ver Errores problem+json para la excepción equivalente en cada SDK.

Ejemplo

Método del SDK y petición HTTP
client.cards.list()

Los métodos de cada SDK salen de su suite de paridad con el contrato. El cURL va contra el sandbox; los valores <campo> son marcadores.

Issue a card (debit; virtual or physical) #

POST/v1/gateway/wallet/cards/

  • operationId issueWalletCard
  • Autenticación X-API-Key · scope wallet:cards
  • Idempotency-Key recomendada (el SDK la genera)

Parámetros

NombreEnTipoDescripción
Idempotency-KeycabecerastringClient-generated key that makes a write safely retryable. Replaying the same key returns the original result with idempotent_replay: true; a replay while the original is still in flight returns 409. Ej.: horizonte-2026-06-26-credit-000123

Cuerpo de la petición

Tipo de contenido: application/json · obligatorio

Esquema WalletCardIssueIn — Issue a card (debit; virtual or physical) for the wallet holder.

CampoTipoDescripción
document obligatoriostringEj.: "1032456789"
form_factorstringValores: virtual, physical. Ej.: "virtual"

Acepta campos adicionales (additionalProperties): se reenvían al motor sin cambios.

Respuestas

CódigoDescripciónCuerpo
200Accepted; transaction enqueued / processed.TransactionEnvelope application/json
Errores posibles (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

Ver Errores problem+json para la excepción equivalente en cada SDK.

Ejemplo

Método del SDK y petición HTTP
client.cards.issue()

Los métodos de cada SDK salen de su suite de paridad con el contrato. El cURL va contra el sandbox; los valores <campo> son marcadores.

Change card status (freeze / unfreeze / block) #

POST/v1/gateway/wallet/cards/{card_id}/status/

  • operationId setWalletCardStatus
  • Autenticación X-API-Key · scope wallet:cards
  • Idempotency-Key recomendada (el SDK la genera)

Parámetros

NombreEnTipoDescripción
card_id obligatoriorutastringCard id returned by issue/list. Ej.: card-9
Idempotency-KeycabecerastringClient-generated key that makes a write safely retryable. Replaying the same key returns the original result with idempotent_replay: true; a replay while the original is still in flight returns 409. Ej.: horizonte-2026-06-26-credit-000123

Cuerpo de la petición

Tipo de contenido: application/json · obligatorio

Esquema WalletCardStatusIn — Change a card’s state (freeze / unfreeze / block).

CampoTipoDescripción
document obligatoriostringEj.: "1032456789"
status obligatoriostringValores: freeze, unfreeze, block. Ej.: "freeze"

Acepta campos adicionales (additionalProperties): se reenvían al motor sin cambios.

Respuestas

CódigoDescripciónCuerpo
200Accepted; transaction enqueued / processed.TransactionEnvelope application/json
Errores posibles (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

Ver Errores problem+json para la excepción equivalente en cada SDK.

Ejemplo

Método del SDK y petición HTTP
client.cards.set_status()

Los métodos de cada SDK salen de su suite de paridad con el contrato. El cURL va contra el sandbox; los valores <campo> son marcadores.

Movements on a card #

GET/v1/gateway/wallet/cards/{card_id}/transactions/

  • operationId listWalletCardTransactions
  • Autenticación X-API-Key · scope wallet:read
  • Idempotency-Key no aplica

Parámetros

NombreEnTipoDescripción
card_id obligatoriorutastringCard id returned by issue/list. Ej.: card-9
document obligatorioquerystringDocument id of the wallet holder. Ej.: 1090123456

Respuestas

CódigoDescripciónCuerpo
200Card movements.WalletCardTransactionList application/json
Errores posibles (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

Ver Errores problem+json para la excepción equivalente en cada SDK.

Ejemplo

Método del SDK y petición HTTP
client.cards.transactions()

Los métodos de cada SDK salen de su suite de paridad con el contrato. El cURL va contra el sandbox; los valores <campo> son marcadores.

Execute a currency conversion #

POST/v1/gateway/wallet/fx/convert/

  • operationId executeFxConversion
  • Autenticación X-API-Key · scope wallet:fx
  • Idempotency-Key recomendada (el SDK la genera)
Executes the conversion and moves money. Send an Idempotency-Key: without one a retry converts twice.

Parámetros

NombreEnTipoDescripción
Idempotency-KeycabecerastringClient-generated key that makes a write safely retryable. Replaying the same key returns the original result with idempotent_replay: true; a replay while the original is still in flight returns 409. Ej.: horizonte-2026-06-26-credit-000123

Cuerpo de la petición

Tipo de contenido: application/json · obligatorio

Esquema FxConvertIn — Execute a currency conversion (moves money — idempotency-key recommended).

CampoTipoDescripción
amount obligatorioMoneyCOP
buy_currency obligatoriostringEj.: "USD"
documentstringEj.: "1032456789"
quote_idstring (nullable)A quote id returned by /fx/quote/. Ej.: "fxq_abc123"
sell_currency obligatoriostringEj.: "COP"

Acepta campos adicionales (additionalProperties): se reenvían al motor sin cambios.

Respuestas

CódigoDescripciónCuerpo
200Accepted; transaction enqueued / processed.TransactionEnvelope application/json
Errores posibles (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

Ver Errores problem+json para la excepción equivalente en cada SDK.

Ejemplo

Método del SDK y petición HTTP
client.fx.convert()

Los métodos de cada SDK salen de su suite de paridad con el contrato. El cURL va contra el sandbox; los valores <campo> son marcadores.

Quote a currency conversion #

POST/v1/gateway/wallet/fx/quote/

  • operationId quoteFxConversion
  • Autenticación X-API-Key · scope wallet:fx
  • Idempotency-Key no aplica
Prices a conversion. Moves no money, consumes no monthly quota and takes no Idempotency-Key. A quote is indicative — the rate is re-resolved at convert time.

Cuerpo de la petición

Tipo de contenido: application/json · obligatorio

Esquema FxQuoteIn — Request an indicative FX quote (moves no money, not billable).

CampoTipoDescripción
amount obligatorioMoneyCOP
buy_currency obligatoriostringEj.: "USD"
documentstringEj.: "1032456789"
sell_currency obligatoriostringEj.: "COP"

Acepta campos adicionales (additionalProperties): se reenvían al motor sin cambios.

Respuestas

CódigoDescripciónCuerpo
200Indicative quote.FxQuote application/json
Errores posibles (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

Ver Errores problem+json para la excepción equivalente en cada SDK.

Ejemplo

Método del SDK y petición HTTP
client.fx.quote()

Los métodos de cada SDK salen de su suite de paridad con el contrato. El cURL va contra el sandbox; los valores <campo> son marcadores.

Resolver destinatario P2P #

POST/v1/gateway/wallet/p2p/resolve/

  • operationId resolveP2PRecipient
  • Autenticación X-API-Key · scope wallet:transfer
  • Idempotency-Key no aplica
Devuelve el nombre enmascarado y un resolution_token (300 s) atado al titular que paga y al destinatario. No mueve dinero ni consume cuota.

Cuerpo de la petición

Tipo de contenido: application/json · obligatorio

Esquema WalletResolveP2PIn

CampoTipoDescripción
alias obligatoriostringCelular, correo, documento o @alias del destinatario. Ej.: "3001234567"
document obligatoriostringDocumento del titular que envía. Ej.: "1032456789"
key_typestringOpcional: desambigua una cadena de dígitos. Valores: PHONE, EMAIL, DOCUMENT, ALIAS.

Acepta campos adicionales (additionalProperties): se reenvían al motor sin cambios.

Respuestas

CódigoDescripciónCuerpo
200Resolución.WalletResolution application/json
Errores posibles (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

Ver Errores problem+json para la excepción equivalente en cada SDK.

Ejemplo

Método del SDK y petición HTTP
client.wallet.p2p.resolve()

Los métodos de cada SDK salen de su suite de paridad con el contrato. El cURL va contra el sandbox; los valores <campo> son marcadores.

Transferir a otro afiliado #

POST/v1/gateway/wallet/p2p/transfers/

  • operationId createP2PTransfer
  • Autenticación X-API-Key · scope wallet:transfer
  • Idempotency-Key obligatoria
Solo acepta el resolution_token de p2p/resolve. Evento: wallets.transfer.created.

Parámetros

NombreEnTipoDescripción
Idempotency-Key obligatoriocabecerastringObligatoria en operaciones que mueven dinero (sin ella: 400). Ej.: horizonte-2026-06-26-credit-000123

Cuerpo de la petición

Tipo de contenido: application/json · obligatorio

Esquema WalletTransferIn2 — Envío P2P o Bre-B: solo con el resolution_token del resolve (nunca un id suelto).

CampoTipoDescripción
amount obligatorioMoneyCOP
descriptionstringMáx. 140 caracteres.
document obligatoriostringEj.: "1032456789"
resolution_token obligatoriostring

Acepta campos adicionales (additionalProperties): se reenvían al motor sin cambios.

Respuestas

CódigoDescripciónCuerpo
200Procesado; sobre estándar {status, transaction_id, module, data}.TransactionEnvelope application/json
Errores posibles (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

Ver Errores problem+json para la excepción equivalente en cada SDK.

Ejemplo

Método del SDK y petición HTTP
client.wallet.p2p.transfer()

Los métodos de cada SDK salen de su suite de paridad con el contrato. El cURL va contra el sandbox; los valores <campo> son marcadores.

Recargar un celular #

POST/v1/gateway/wallet/topups/

  • operationId createTopup
  • Autenticación X-API-Key · scope wallet:topup
  • Idempotency-Key obligatoria
Evento: wallets.topup.completed.

Parámetros

NombreEnTipoDescripción
Idempotency-Key obligatoriocabecerastringObligatoria en operaciones que mueven dinero (sin ella: 400). Ej.: horizonte-2026-06-26-credit-000123

Cuerpo de la petición

Tipo de contenido: application/json · obligatorio

Esquema WalletTopupIn

CampoTipoDescripción
amount obligatorioMoneyCOP
carrier obligatoriostringEj.: "CLARO"
document obligatoriostringEj.: "1032456789"
phone_number obligatoriostringEj.: "3001234567"

Acepta campos adicionales (additionalProperties): se reenvían al motor sin cambios.

Respuestas

CódigoDescripciónCuerpo
200Procesado; sobre estándar {status, transaction_id, module, data}.TransactionEnvelope application/json
Errores posibles (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

Ver Errores problem+json para la excepción equivalente en cada SDK.

Ejemplo

Método del SDK y petición HTTP
client.wallet.topups.create()

Los métodos de cada SDK salen de su suite de paridad con el contrato. El cURL va contra el sandbox; los valores <campo> son marcadores.

Operadores de recarga #

GET/v1/gateway/wallet/topups/operators/

  • operationId listTopupOperators
  • Autenticación X-API-Key · scope wallet:read
  • Idempotency-Key no aplica

Respuestas

CódigoDescripciónCuerpo
200Operadores.WalletTopupOperators application/json
Errores posibles (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

Ver Errores problem+json para la excepción equivalente en cada SDK.

Ejemplo

Método del SDK y petición HTTP
client.wallet.topups.operators()

Los métodos de cada SDK salen de su suite de paridad con el contrato. El cURL va contra el sandbox; los valores <campo> son marcadores.

Movimientos del titular (paginado, con filtros) #

GET/v1/gateway/wallet/transactions/

  • operationId listWalletTransactions
  • Autenticación X-API-Key · scope wallet:read
  • Idempotency-Key no aplica

Parámetros

NombreEnTipoDescripción
document obligatorioquerystringDocument id of the wallet holder. Ej.: 1090123456
start_datequerystringDesde (YYYY-MM-DD o ISO 8601).
end_datequerystringHasta, inclusive (YYYY-MM-DD o ISO 8601).
categoryquerystringCategoría (TRANSFER, PAYMENT, …).
typequerystringTipo de transacción del motor.
limitqueryintegerTamaño de página (1–100, por defecto 50).
offsetqueryintegerDesplazamiento (por defecto 0).

Respuestas

CódigoDescripciónCuerpo
200Página de movimientos.WalletTransactionPage application/json
Errores posibles (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

Ver Errores problem+json para la excepción equivalente en cada SDK.

Ejemplo

Método del SDK y petición HTTP
client.wallet.transactions.list()

Los métodos de cada SDK salen de su suite de paridad con el contrato. El cURL va contra el sandbox; los valores <campo> son marcadores.

Detalle de un movimiento #

GET/v1/gateway/wallet/transactions/{tx_id}/

  • operationId getWalletTransaction
  • Autenticación X-API-Key · scope wallet:read
  • Idempotency-Key no aplica

Parámetros

NombreEnTipoDescripción
tx_id obligatoriorutastringId del movimiento. Ej.: 6b1f8c1e-0000-4a1b-9c2d-000000000001
document obligatorioquerystringDocument id of the wallet holder. Ej.: 1090123456

Respuestas

CódigoDescripciónCuerpo
200Movimiento.WalletTransaction application/json
Errores posibles (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

Ver Errores problem+json para la excepción equivalente en cada SDK.

Ejemplo

Método del SDK y petición HTTP
client.wallet.transactions.get()

Los métodos de cada SDK salen de su suite de paridad con el contrato. El cURL va contra el sandbox; los valores <campo> son marcadores.