Skip to Content
Integra pagos con terminales POS directamente desde tu app Android 🚀 - Conoce el SDK Android
API EndpointsPagos con 3DSConsultar estado de idempotencia

Consultar estado de idempotencia

Esta sección detalla el uso del endpoint para consultar el estado de una x-idempotency-key. Utilízalo cuando se pierda la conexión o expire el tiempo de espera durante el flujo de pagos con 3DS, para saber en qué punto quedó el pago antes de decidir qué hacer.

⚠️

Ante un timeout nunca reintentes el POST a ciegas. Consulta primero el estado de la key.

Detalles del endpoint

  • Método: GET
  • URL: /api/v1/transactions/status

El endpoint devuelve el estado del registro de idempotencia asociado a la key enviada en el header. Solo responde sobre keys de tu propio comercio.

Este endpoint está limitado a 10 consultas por minuto por API Key. Las keys se conservan 3 minutos después de procesar el pago, y 10 minutos mientras hay un challenge 3DS pendiente.

Configuración de la solicitud

Headers

HeaderDescripción
X-API-KEYAPI Key generada en Cubo Admin.
x-idempotency-keyLa key del pago que deseas consultar.

Ejemplos de uso

fetch('https://<CUBO_API_URL>/api/v1/transactions/status', { method: 'GET', headers: { 'X-API-KEY': 'TU_API_KEY_AQUI', 'x-idempotency-key': '3f2a1b4c-5d6e-4f70-8a91-b2c3d4e5f607', }, }) .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error('Error:', error));

Respuestas del servidor

✅ Respuesta exitosa

{ "idempotencyData": { "status": "APPROVED", "channel": "API", "transactionId": 48213, "createdAt": "2026-09-17T14:21:05.113Z", "updatedAt": "2026-09-17T14:23:40.882Z", "expiresAt": "2026-09-17T14:31:05.113Z" }, "paymentIntentToken": "pi_9f8a7b6c", "status": "SUCCEEDED", "referenceId": "REF123456", "authorizationCode": "A1B2C3", "processedAt": "2026-09-17T14:23:40.882Z" }
CampoTipoDescripción
statusstringEstado de la key. Ver tabla de estados.
channelstringCanal por el que se originó el pago.
transactionIdnumber | nullIdentificador de la transacción, si ya fue creada.
createdAtstringFecha y hora en que se registró la key (formato ISO 8601).
updatedAtstringFecha y hora del último cambio de estado (formato ISO 8601).
expiresAtstringFecha y hora en que expira la key (formato ISO 8601).

Junto a idempotencyData, la respuesta incluye lo último que la API devolvió para esa key: con APPROVED o DECLINED, la transacción con su paymentIntentToken; con PENDING_3DS, el challenge de la solicitud inicial. Así puedes recuperar el resultado de un pago aunque hayas perdido la respuesta original.

Estados de la key

statusQué pasóQué hacer
PENDING_3DSEl challenge está emitido, esperando la confirmación.Continúa con el challenge o con la consulta del resultado.
PROCESSINGEl cobro se está procesando en este momento.Espera y vuelve a consultar.
APPROVEDEl pago ya se cobró.Listo. No repitas el POST.
DECLINEDEl pago fue rechazado.Inicia un flujo nuevo con una key nueva.
NOT_FOUNDLa key expiró, nunca existió o pertenece a otro comercio.Empieza de cero con una key nueva.

NOT_FOUND es ambiguo: una key que nunca existió y una que ya expiró se ven igual. Como las keys se conservan solo 3 minutos después de procesar el pago, consulta el estado lo antes posible tras un timeout. Si ya expiró, usa el paymentIntentToken para consultar la transacción si lo tienes, o revisa el pago en Cubo Admin antes de volver a cobrar.

❌ Respuesta de error

{ "statusCode": 429, "message": "Too Many Requests" }