Saltar al contenido principal

SINPE PIN

SINPE PIN permite cobrar un pago cuando el comprador realiza una transferencia bancaria a un IBAN provisto por ONVO y ONVO la asocia automáticamente con una intención de pago.

Este método de pago está disponible solo bajo solicitud y actualmente solo soporta pagos en CRC.

Transferencias en tiempo real

SINPE PIN solo funciona si el comprador envía la transferencia en tiempo real. Si usa una transferencia programada, diferida o no inmediata, ONVO no podrá asociarla automáticamente y el pago no se completará con este flujo.

Referencia API relacionada

Antes de empezar

  • Solicitá la habilitación de SINPE PIN al equipo de soporte de ONVO.
  • Usá el IBAN destino provisto por ONVO para que el comprador realice la transferencia.
  • Configurá webhooks y escuchá payment-intent.succeeded.
  • Usá CRC como moneda de la intención de pago.
  • Indicá en el método de pago la identificación real de la persona o entidad que hará la transferencia.

ONVO intenta asociar la transferencia entrante primero por número de identificación. La identificación enviada en bankDeposit.identification debe coincidir con la identificación reportada por el banco en la transferencia entrante.

Flujo

  1. Creá una intención de pago por el monto exacto a cobrar.
  2. Creá un método de pago con type: "bank_deposit".
  3. Confirmá la intención con el paymentMethodId.
  4. Mostrá al comprador el IBAN destino provisto por ONVO, el monto exacto y la indicación de enviar la transferencia en tiempo real.
  5. Esperá el webhook payment-intent.succeeded antes de marcar el pago como completado.

Cuando confirmás la intención con este método de pago, la intención pasa a processing. Ese estado significa que ONVO está esperando recibir y asociar la transferencia.

Crear la intención de pago

curl https://api.onvopay.com/v1/payment-intents \
-X POST \
-H "Authorization: Bearer $ONVO_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"amount": 500000,
"currency": "CRC",
"description": "Pago SINPE PIN #1001"
}'

Crear el método de pago

bankDeposit.identification debe representar a la persona o entidad que hará la transferencia bancaria.

curl https://api.onvopay.com/v1/payment-methods \
-X POST \
-H "Authorization: Bearer $ONVO_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "bank_deposit",
"bankDeposit": {
"identification": "01-1393-1919",
"identificationType": 1
},
"billing": {
"name": "María Rodríguez",
"email": "maria@example.com"
}
}'

Confirmar la intención

curl https://api.onvopay.com/v1/payment-intents/$PAYMENT_INTENT_ID/confirm \
-X POST \
-H "Authorization: Bearer $ONVO_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"paymentMethodId": "cl502zv0d0127ebdp3zt27651"
}'

Después de confirmar, indicá al comprador que transfiera el monto exacto al IBAN provisto por ONVO usando una transferencia en tiempo real. No marques el pago como exitoso en tu sistema hasta recibir payment-intent.succeeded.

Pruebas

En modo de prueba, usando llaves onvo_test_, las identificaciones definidas en métodos de pago de prueba para SINPE PIN simulan distintos escenarios de depósito. No necesitás hacer una transferencia real ni enviar fondos al IBAN de ONVO.

Usá esas identificaciones para simular depósitos exitosos, retrasados, fallidos y parciales.