Skip to main content

SINPE Movil

SINPE Movil lets you collect a payment when the buyer sends a transfer to ONVO's mobile number and ONVO automatically associates it with a payment intent.

This flow currently supports CRC payments only.

Before you start

  • 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.
  • Ask the buyer to transfer from an account whose identification matches mobileNumber.identification.

ONVO tries to associate the incoming transfer by identification number first. If the bank reports a different identification than the one you sent, automatic association can fail.

The default destination number for receiving SINPE Movil transfers is +506 70196686. If your merchant account requested a custom number, use the number provided by the ONVO support team.

Flow

  1. Create a payment intent for the exact amount to collect.
  2. Create a payment method with type: "mobile_number".
  3. Confirm the intent with the paymentMethodId.
  4. Show the buyer the destination SINPE Movil number and the exact amount.
  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 Movil payment #1001"
}'

Create the payment method

mobileNumber.number is the buyer's SINPE Movil number. The destination number the buyer should transfer to is ONVO's number shown in your payment instructions.

curl https://api.onvopay.com/v1/payment-methods \
-X POST \
-H "Authorization: Bearer $ONVO_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "mobile_number",
"mobileNumber": {
"identification": "01-1393-1919",
"identificationType": 0,
"number": "+50688888888"
},
"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 ONVO's SINPE Movil number. Do not mark the payment as successful in your system until you receive payment-intent.succeeded.

Reconciliation

The SINPE Movil payments list reflects incoming transfers received on a SINPE Movil number. It is useful for reviewing transfers that could not be associated automatically.

If paymentIntentId is null, the transfer is not yet linked to a payment intent.

Testing

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

Use those numbers to simulate successful, delayed, failed, and partial transfers.