Skip to main content

SINPE PIN

SINPE PIN lets you collect a payment when the buyer sends a bank transfer to an IBAN provided by ONVO and ONVO automatically associates it with a payment intent.

This payment method is available by request only and currently supports CRC payments only.

Real-time transfers

SINPE PIN only works if the buyer sends the transfer in real time. If they use a scheduled, delayed, or non-immediate transfer, ONVO will not be able to associate it automatically and the payment will not complete with this flow.

Before you start

  • Request SINPE PIN enablement from the ONVO support team.
  • Use the destination IBAN provided by ONVO so the buyer can make the transfer.
  • Configure webhooks and listen for payment-intent.succeeded.
  • Use CRC as the payment intent currency.
  • Send the real identification of the person or entity that will make the transfer in the payment method.

ONVO tries to associate the incoming transfer by identification number first. The identification sent in bankDeposit.identification must match the identification reported by the bank in the incoming transfer.

Flow

  1. Create a payment intent for the exact amount to collect.
  2. Create a payment method with type: "bank_deposit".
  3. Confirm the intent with the paymentMethodId.
  4. Show the buyer the destination IBAN provided by ONVO, the exact amount, and the instruction to send the transfer in real time.
  5. Wait for the payment-intent.succeeded webhook before marking the payment as complete.

When you confirm the intent with this payment method, the intent moves to processing. That state means ONVO is waiting to receive and associate the transfer.

Create the payment intent

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": "SINPE PIN payment #1001"
}'

Create the payment method

bankDeposit.identification must represent the person or entity that will make the bank transfer.

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": "Maria Rodriguez",
"email": "maria@example.com"
}
}'

Confirm the intent

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"
}'

After confirmation, tell the buyer to transfer the exact amount to the IBAN provided by ONVO using a real-time transfer. Do not mark the payment as successful in your system until you receive payment-intent.succeeded.

Testing

In test mode, using onvo_test_ keys, the identifications defined in SINPE PIN test payment methods simulate different deposit scenarios. You do not need to make a real transfer or send funds to ONVO's IBAN.

Use those identifications to simulate successful, delayed, failed, and partial deposits.