FINORA Checkout · How-to guide
Crea una sesión de cobro
This content is not available in your language yet.
Cada pedido que se paga en línea necesita su sesión. La crea tu servidor, nunca el navegador, porque usa la clave API del comercio.
-
Arma el cuerpo de la petición. Solo
montoes obligatorio, pero en la práctica siempre envías tambiénreferencia,returnUrlywebhookUrl:{"monto": 227.00,"moneda": "VES","referencia": "PED-1042","descripcion": "Pan campesino y café","items": [{ "nombre": "Pan campesino", "cantidad": 2, "precio": 113.50 }],"returnUrl": "https://mitienda.example/gracias","webhookUrl": "https://mitienda.example/webhooks/finora","ttlSegundos": 900,"sandbox": true}El monto va en unidades con dos decimales (
227.00), no en céntimos. -
Si vas a ofrecer tarjeta, agrega el
terminalIddel terminal físico que cobrará. Sin terminal, la tarjeta aparece atenuada con su motivo y el cliente puede pagar con los demás medios.{ "monto": 227.00, "referencia": "PED-1042", "terminalId": "TIENDA01" } -
Si ya conoces al cliente, precarga sus datos en
pagadorpara que no los escriba otra vez:{ "pagador": { "tipoDocumento": "V", "documento": "00000001", "nombre": "Ana Ejemplo", "telefono": "04140000001" } } -
Envía la petición con tu clave:
Ventana de terminal curl -s -X POST "<URL_DEL_MERCHANT>/api/v1/checkout/sesiones" \-H "X-API-Key: <TU_CLAVE_API>" \-H "Content-Type: application/json" \-d @sesion.json -
Guarda el
sesionIdde la respuesta junto a tu pedido. -
Devuelve al navegador solo el
sesionIdy eltoken, o laurlPago. Nunca la respuesta completa reenviada sin filtrar, y nunca la clave.
Si algo sale mal
Sección titulada «Si algo sale mal»| Respuesta | Qué significa | Qué hacer |
|---|---|---|
401 CLAVE_INVALIDA | La clave falta, es incorrecta o fue revocada | Revisa la variable de entorno; si la revocaron, pide una nueva |
403 CLAVE_SIN_ACCESO_AL_COMERCIO | La clave no es de ese comercio | Usa la clave del comercio correcto |
403 TERMINAL_AJENO | El terminal no pertenece a tu comercio | Revisa el terminalId |
404 TERMINAL_NO_ENCONTRADO | Ese terminal no existe | Revisa el terminalId en el Portal del comercio |
400 PETICION_INVALIDA | Monto cero o negativo, moneda que no es ISO, tiempo de vida fuera de 60 a 3600 segundos, URL que no es http(s) | Corrige el campo que dice el detail |
La lista completa está en Códigos de error y de resultado.