DESARROLLADORES
VISTA PREVIAAñada el pago con la palma a un POS en una tarde.
Su POS pide a la app VenaPass del mismo terminal que identifique al cliente. Recibe su propio ID de cliente y un token firmado en el que su proveedor de pago puede confiar.
POS Android: abra la pantalla de pago
VenaPass muestra el importe, escanea la palma y devuelve el resultado. Los importes van en unidades menores con una moneda ISO 4217.
val pay = Intent("com.venapass.action.PAY")
.putExtra("amount", 500000L) // NGN 5,000.00
.putExtra("currency", "NGN")
.putExtra("terminal_id", "LEKKI-POS-1")
.putExtra("request_id", UUID.randomUUID().toString())
startActivityForResult(pay, PAY_WITH_PALM)
// Result extras: success, customer_ref,
// assertion, receipt_id (gateway mode), message
URL de pasarela: llame a la app en el terminal
Para software POS con una dirección de pasarela de pago configurable. Reintente con el mismo request_id, nunca con uno nuevo.
POST http://127.0.0.1:9090/api/pay_direct
{ "amount": 500000, "currency": "NGN",
"terminal_id": "LEKKI-POS-1",
"request_id": "6f1c2e9a-…" }
200 OK
{ "success": true,
"customer_ref": "CUST-1042",
"assertion": "eyJhbGciOiJFZERTQSIs…",
"receipt_id": null,
"message": "Identity verified" }
Para proveedores de pago: confíe en el token
La aserción es un JWT firmado estándar (EdDSA). Cualquier biblioteca JWT puede verificarla con nuestras claves públicas:
https://api.venapass.com/.well-known/venapass-keys
Su sub es su propia referencia de cliente, así que cobra con el método de pago que ya tiene para ese cliente.
- 1La firma se verifica con una clave vigente de VenaPass.
- 2No ha caducado (los tokens duran unos dos minutos).
- 3txn coincide con el importe y la moneda exactos que va a cobrar.
- 4terminal_id coincide con el terminal POS que envió la venta.
- 5No ha aceptado este jti anteriormente.
Modo pasarela: reciba cobros desde VenaPass
Si elige el modo pasarela, enviamos cada venta identificada a su URL, firmada con un secreto que solo usted y nosotros conocemos. Trate request_id como clave de idempotencia.
POST https://your-provider.example/venapass
X-VenaPass-Signature: sha256=<HMAC of the body>
{ "assertion": "eyJ…", "customer_ref": "CUST-1042",
"amount": 500000, "currency": "NGN",
"terminal_id": "LEKKI-POS-1", "request_id": "6f1c…" }
Reply: { "approved": true, "reference": "PSP-88213",
"message": "Approved" }
Registre clientes desde su POS
Inicie com.venapass.action.ENROLL con su customer_ref. VenaPass guía tres escaneos de la palma y confirma el registro. No se nos envía ningún nombre ni número de teléfono.
Solicitar acceso al sandbox