API CashIn
Buscar…
Notificación
Este es el proceso de notificación que utiliza payvalida para notificar el pago o la expiración de una orden creada.
Para esta etapa del proceso de integración el comercio debe construir un servicio REST que sera consumido por Payvalida para realizar el proceso de notificación. Este una vez construido se debe comunicar a Payvalida para que se realice el registro de la url de dicho servicio.
Al momento de registrar una orden, ésta se crea en estado PENDIENTE. La orden puede cambiar de estado por diversas razones:
  1. 1.
    Se ha recibido el pago correspondiente -> Cambia de PENDIENTE a APROBADA y se notifica con estatus approved.
  2. 2.
    No se ha recibido el pago correspondiente antes de la fecha de vencimiento -> Cambia de PENDIENTE a VENCIDA y se notifica con estatus cancelled.
  3. 3.
    El comercio elimina la orden (usando el API) -> Cambia de PENDIENTE a CANCELADA. No se notifica
  4. 4.
    El cliente realiza un reclamo de devolución del pago realizado -> Cambia de APROBADA a ANULADA y se notifica con estatus cancelled.
  5. 5.
    El comercio solicita devolución del pago de un cliente -> Cambia de APROBADA a ANULADA, no se notifica.
El sistema notifica de forma automática en el momento del cambio de estado de la orden, pero es posible que exista más de una notificación de la misma orden. Es responsabilidad del comercio evitar entregar mas de una vez el producto adquirido por el cliente en caso de que haya más de una notificación.
Esta notificación se realizara a la URL proporcionada por el comercio.
Request (Realiza Payvalida)
Request (ejemplo)
Respuesta (Esperada)
Cabeceras
Campo
tipo
Descripción
pv_po_id
int
Identificación de la orden de Payvalida
po_id
string
Identificación de la orden del comercio
status
string
Estado de la orden. Puede ser approved o cancelled.
pv_checksum
string
Cadena de comprobación calculada con SHA256(po_id + status + FIXED_HASH_NOTIFICACION)
amount
string
Monto de la orden
iso_currency
string
Moneda con la que se registra la orden
pv_payment
string
Medio de pago con el que se registra ó se aprueba la orden
curl --location --request POST 'https://url-comercio.com/notificacion/payvalida' \
--header 'Content-Type: application/json' \
--data-raw '{
"pv_po_id":1934480,
"po_id":"999999991",
"status":"approved",
"pv_checksum":"0C08309AE28D15E8D337344E88668E2047947F653B126B7F62B0EACC4B1A30FD680DBE25BD8B38413032A219B86BDAE52D9554D45A892CA4B5C5103597876EAD",
"amount":"10500.0",
"iso_currency":"COP",
"pv_payment":"PSE"
}'
//Para este caso se puede responder en el body con texto claro y el mensaje
OK
//Adicionalmente se puede responder en el body una estructura json
{"status":"OK"}
Cabecera
Valor
Content-Type
application/json
De lado del comercio por motivos de seguridad se recomienda hacer la construcción del pv_checksum con la credencial FIXED_HASH_NOTIFICACION entregada en el registro. Para validar que sea payvalida la que realiza la notificación al compararlas.
Cuando se notifica una orden aprobada, el valor del campo pv_payment corresponde al medio de pago por el cual se paga la orden.
Cuando se notifica una orden vencida, el valor del campo pv_payment corresponde al medio de pago indicado al momento de registrar la orden, en caso de no especificar el medio de pago, este campo no se envía en la petición.
El sistema registra la respuesta obtenida al momento de la notificación, por ello es recomendable enviar como respuesta un texto adecuado al proceso de notificación, por ejemplo, OK en caso afirmativo y ERROR en caso contrario, también se recomienda acompañar la respuesta de una breve descripción, como por ejemplo: “OK. Pago registrado”, “ERROR. Orden no reconocida”.
Copiar enlace