Getnet DocsGetnet Docs

Procesar un pago

Esta guía detalla cómo implementar el flujo de pago estándar (Venta). En este flujo, envía una única petición a la API, y el terminal gestiona la interacción con el titular de la tarjeta.

Debido a que las interacciones con el terminal físico requieren tiempo, este proceso es asíncrono. Iniciarás el pago mediante una llamada directa a la API y recibirás el resultado final a través de una notificación de webhook.

El ciclo de vida de la transacción

  1. Petición: Tu servidor envía una petición POST al endpoint /pago.
  2. Acuse de recibo: La API devuelve un 200 OK síncrono indicando que el terminal ha recibido el comando.
  3. Interacción: El terminal solicita al cliente que inserte su tarjeta y que introduzca su PIN.
  4. Notificación: Una vez que la transacción concluye (Aprobada, Denegada o Cancelada), la API envía un payload JSON a tu urlNotificacion.

Paso 1: Enviar la petición de pago

Para iniciar una venta, envía una petición POST al endpoint /pago.

  • Endpoint de Test: https://tpvpc-i.redsys.es:27443/TPV_PC/services/rest/tpvpcwss/v1/pago
  • Endpoint de Producción: https://tpvpc.redsys.es/TPV_PC/services/rest/tpvpcwss/v1/pago

Payload de la petición

El payload debe incluir el importe, tu referencia interna de factura y la URL de notificación donde quieres recibir el resultado final.

{
  "info": {
    "comercio": "777888991",
    "terminal": 1,
    "timestamp": "20250428 111217",
    "notificacion": {
      "urlNotificacion": "https://your-server.com/api/webhooks/payment-results",
      "correoNotificacion": "[email protected]"
    },
    "datosOperacion": {
      "importe": "25.50",
      "factura": "ORD-2025-001"
    }
  },
  "signature": "YOUR_CALCULATED_SIGNATURE"
}

Asegúrate de que el importe esté formateado como XXXXXXXXX.XX (p. ej., 25.50 o 0.01). No utilices comas.

Paso 2: Gestionar la respuesta síncrona

Inmediatamente después de enviar la petición, la API devolverá una respuesta.

Respuesta esperada:

{
  "info": {
    "resultado": {
      "codigo": "0"
    }
  },
  "signature": "SERVER_SIGNATURE"
}
  • codigo: "0": Éxito. El terminal está ahora procesando el pago.
  • Cualquier otro código: La petición ha fallado (p. ej., error de validación, terminal desconectado). Consulta la referencia del Catálogo de códigos de error y denegación.

NO entregues los bienes o servicios todavía. Un código de 0 aquí solo significa “Petición aceptada”. No significa que el pago haya sido pagado o autorizado.

Paso 3: Recibir la notificación asíncrona

Cuando el cliente finaliza (o cancela) la transacción, API Cloud envía una petición POST a tu urlNotificacion.

Ejemplo de notificación de éxito

{
  "info": {
    "comercio": "777888991",
    "terminal": 1,
    "timestamp": "20250428 111500",
    "datosRespuesta": {
      "tipoPago": "PAGO",
      "importe": "25.50",
      "moneda": "978",
      "factura": "ORD-2025-001",
      "resultado": "Autorizada",
      "codigoRespuesta": "998877",
      "estado": "F",
      "tarjetaClienteRecibo": "************1234",
      "marcaTarjeta": "1"
    }
  },
  "signature": "SERVER_SIGNATURE"
}

Campos clave a validar

Debes inspeccionar campos específicos en datosRespuesta para confirmar el estado del pago:

CampoValor para éxitoDescripción
resultadoAutorizadaIndica explícitamente que la transacción fue aprobada.
estadoFIndica que la operación está “Finalizada” (Finalized).
codigoRespuesta(Código de autorización)El código de autorización del banco. Si la transacción fue denegada, contendrá un código de denegación (p. ej., 101, 117).
importe(Su importe)Verifica que el importe autorizado coincide con el importe que solicitaste.

Gestión de denegaciones y errores

Si el pago falla, la notificación reflejará el fallo:

  • resultado: Denegada
  • codigoRespuesta: Un código de denegación (p. ej., 117 para PIN incorrecto).
  • estado: Podría ser G (Denegada), A (Cancelada) o T (Fallo técnico).

Próximos pasos