Referencia de APIPayment methods

Payment methods

/v1/payment-methods — métodos de pago tokenizados sobre tu cuenta de Wompi. Ver también el concepto Método de pago.

El objeto PaymentMethod

{
  "id": "pm_01HZXK7QJ5M8Z9X2R3TVQ7A1B2",
  "customer_id": "cus_01HZXK7QJ5M8Z9X2R3TVQ7A1B2",
  "type": "CARD",
  "brand": "VISA",
  "last4": "4242",
  "exp_month": 12,
  "exp_year": 2029,
  "is_default": true,
  "state": "available",
  "created_at": "2026-08-24T15:00:00Z"
}
CampoTipoDescripción
idstringIdentificador único
customer_idstringCliente dueño del método de pago
typestringActualmente solo CARD
brandstringMarca de la tarjeta (VISA, MASTERCARD, …)
last4stringÚltimos 4 dígitos
exp_monthintegerMes de vencimiento
exp_yearintegerAño de vencimiento
is_defaultbooleanSi es el método por defecto del cliente
statestringpending · available · verification_pending
created_atdatetimeFecha de creación

Obtener configuración de tokenización

GET /v1/payment-methods/setup

Devuelve la llave pública de Wompi de tu cuenta, los acceptance tokens y la URL de tokenización. Ningún secreto sale del servidor.

curl https://api.rekurra.dev/v1/payment-methods/setup \
  -H "Authorization: Bearer rk_live_XXXXXXXXXXXXXXXXXXXXXXXX"

Response — 200 OK

{
  "public_key": "pub_prod_XXXXXXXXXXXXXXXXXXXX",
  "acceptance_token": "eyJhbGciOi...",
  "tokenization_url": "https://production.wompi.co/v1/tokens/cards"
}

Crear un método de pago

POST /v1/payment-methods

Request body

{
  "customer_id": "cus_01HZXK7QJ5M8Z9X2R3TVQ7A1B2",
  "type": "CARD",
  "token": "tok_test_1234_abcd",
  "acceptance_token": "eyJhbGciOi...",
  "accept_personal_auth": "eyJhbGciOi...",
  "set_default": true
}
CampoTipoRequeridoDescripción
customer_idstringSíCliente al que pertenece el método
typestringSíTipo de método; actualmente CARD
tokenstringSíToken devuelto por Wompi al tokenizar la tarjeta
acceptance_tokenstringSíToken de aceptación de términos de Wompi
accept_personal_authstringSíToken de autorización de datos personales de Wompi
set_defaultbooleanNoSi se marca como método por defecto del cliente
curl -X POST https://api.rekurra.dev/v1/payment-methods \
  -H "Authorization: Bearer rk_live_XXXXXXXXXXXXXXXXXXXXXXXX" \
  -H "Content-Type: application/json" \
  -d '{
    "customer_id": "cus_01HZXK7QJ5M8Z9X2R3TVQ7A1B2",
    "type": "CARD",
    "token": "tok_test_1234_abcd",
    "acceptance_token": "eyJhbGciOi...",
    "accept_personal_auth": "eyJhbGciOi...",
    "set_default": true
  }'

Response

  • 201 Created — PaymentMethod con state: available.
  • 202 Accepted — PaymentMethod con state: verification_pending (3DS pendiente).

Errores posibles

Statuserror.typeCausa
400invalid_requestCampos faltantes o token mal formado
404invalid_requestcustomer_id no existe
422wompi_errorWompi rechazó la verificación (micro-cobro fallido)

Listar métodos de pago

GET /v1/payment-methods

Filtro opcional ?customer_id=, más paginación estándar.

curl "https://api.rekurra.dev/v1/payment-methods?customer_id=cus_01HZXK7QJ5M8Z9X2R3TVQ7A1B2" \
  -H "Authorization: Bearer rk_live_XXXXXXXXXXXXXXXXXXXXXXXX"

Obtener un método de pago

GET /v1/payment-methods/{id}

curl https://api.rekurra.dev/v1/payment-methods/pm_01HZXK7QJ5M8Z9X2R3TVQ7A1B2 \
  -H "Authorization: Bearer rk_live_XXXXXXXXXXXXXXXXXXXXXXXX"

Errores posibles

Statuserror.typeCausa
404invalid_requestEl método de pago no existe

Marcar como método de pago por defecto

POST /v1/payment-methods/{id}/default

curl -X POST https://api.rekurra.dev/v1/payment-methods/pm_01HZXK7QJ5M8Z9X2R3TVQ7A1B2/default \
  -H "Authorization: Bearer rk_live_XXXXXXXXXXXXXXXXXXXXXXXX"

Eliminar un método de pago

DELETE /v1/payment-methods/{id}

curl -X DELETE https://api.rekurra.dev/v1/payment-methods/pm_01HZXK7QJ5M8Z9X2R3TVQ7A1B2 \
  -H "Authorization: Bearer rk_live_XXXXXXXXXXXXXXXXXXXXXXXX"

Errores posibles

Statuserror.typeCausa
404invalid_requestEl método de pago no existe
409invalid_requestEs el único método de pago de una suscripción activa