Issue with OVO payment method

Hi everyone,

I am having trouble making OVO payments using payment API (IDR currency). With other payment methods from Indonesia (ex: Linkaja, Dana), Rapyd will respond with a URL redirect.

However, with OVO, it is not. My initial investigation is that a phone number must be validated after creating a payment API. However, I have no idea what type of fields or a way to submit the number in order for Rapyd to redirect me to the OVO app as its instruction.

Please help

Here is my request:

{
“amount”: 10000,
“currency”: “IDR”,
“payment_method”: {
“type”: “id_ovo_ewallet”,
“fields”: {
“phone”:“+651111111111”
}

}
}

Response:

{
“status”: {
“error_code”: “”,
“status”: “SUCCESS”,
“message”: “”,
“response_code”: “”,
“operation_id”: “b420368b-c746-4ada-a280-8747a933e643”
},
“data”: {
“id”: “payment_b0423da228dc7db30a0a0f07ef314972”,
“amount”: 0,
“original_amount”: 10000,
“is_partial”: false,
“currency_code”: “IDR”,
“country_code”: “ID”,
“status”: “ACT”,
“description”: “”,
“merchant_reference_id”: “”,
“customer_token”: “cus_4eaf0e860b578c3c8ab78e91c02376c9”,
“payment_method”: “other_c95737cce299e0a2c8fa382c65792fbd”,
“payment_method_data”: {
“id”: “other_c95737cce299e0a2c8fa382c65792fbd”,
“type”: “id_ovo_ewallet”,
“category”: “ewallet”,
“metadata”: {},
“image”: “”,
“webhook_url”: “”,
“supporting_documentation”: “”,
“next_action”: “not_applicable”,
“bic_swift”: “”,
“account_last4”: “”,
“phone”: “+651111111111”
},
“auth_code”: null,
“expiration”: 1664180681,
“captured”: true,
“refunded”: false,
“refunded_amount”: 0,
“receipt_email”: “”,
“redirect_url”: “”,
“complete_payment_url”: “”,
“error_payment_url”: “”,
“receipt_number”: “”,
“flow_type”: “”,
“address”: null,
“statement_descriptor”: “FNZ GLOBAL PTE. LTD.”,
“transaction_id”: “”,
“created_at”: 1662971081,
“metadata”: {},
“failure_code”: “”,
“failure_message”: “”,
“paid”: false,
“paid_at”: 0,
“dispute”: null,
“refunds”: null,
“order”: null,
“outcome”: null,
“visual_codes”: {},
“textual_codes”: {},
“instructions”: [
{
“name”: “instructions”,
“steps”: [
{
“step1”: “Enter Phone number starting with 62.”,
“step2”: “Complete payment in the OVO App.”
}
]
}
],
“ewallet_id”: “ewallet_475e7fd4cd69c2077e3aa24dcfe31491”,
“ewallets”: [
{
“ewallet_id”: “ewallet_475e7fd4cd69c2077e3aa24dcfe31491”,
“amount”: 10000,
“percent”: 100,
“refunded_amount”: 0
}
],
“payment_method_options”: {},
“payment_method_type”: “id_ovo_ewallet”,
“payment_method_type_category”: “ewallet”,
“fx_rate”: 1,
“merchant_requested_currency”: null,
“merchant_requested_amount”: null,
“fixed_side”: “”,
“payment_fees”: null,
“invoice”: “”,
“escrow”: null,
“group_payment”: “”,
“cancel_reason”: null,
“initiation_type”: “customer_present”,
“mid”: “mid_44072914a478ec1ccd545128d377727f”,
“next_action”: “pending_confirmation”,
“error_code”: “”,
“remitter_information”: {}
}
}

The instruction shows that I must enter the phone number, and so does it mean I must submit the phone number one more time in order to be redirected?

Thank you

Hi @ttlam1234x, thanks for posting!

It looks like you have used one of our examples in Postman, so really cool to see you working this out. Our docs page eWallets helps explain a required step, Complete Payment.

The redirects simulate the login into the wallets. Some are delivered differently. It seems like OVO sends a notification or text to the phone OVO and then the user logs in to confirm the payment.

Here is the request I used for:

Complete Payment

Request URL https://sandboxapi.rapyd.net/payments/completePayment

Request Body

{
    "token": "payment_1b3183a590ba435508820e8425c2f1a3"
}

Response

{
    "status": {
        "error_code": "",
        "status": "SUCCESS",
        "message": "",
        "response_code": "",
        "operation_id": "d5cef480-6aaf-4459-8d04-3d34bde79d5a"
    },
    "data": {
        "id": "payment_1b3183a590ba435508820e8425c2f1a3",
        "amount": 1000,
        "original_amount": 1000,
        "is_partial": false,
        "currency_code": "IDR",
        "country_code": "ID",
        "status": "CLO",
        "description": "",
        "merchant_reference_id": "",
        "customer_token": "cus_99f9ff5659eabfbff13beb8ec62f6eec",
        "payment_method": "other_8af813e4d8d9f19c682309fb05b9b043",
        "payment_method_data": {
            "id": "other_8af813e4d8d9f19c682309fb05b9b043",
            "type": "id_ovo_ewallet",
            "category": "ewallet",
            "metadata": {},
            "image": "",
            "webhook_url": "",
            "supporting_documentation": "",
            "next_action": "not_applicable",
            "bic_swift": "",
            "account_last4": "",
            "phone": "+651111111111"
        },
        "auth_code": null,
        "expiration": 1664205418,
        "captured": true,
        "refunded": false,
        "refunded_amount": 0,
        "receipt_email": "",
        "redirect_url": "",
        "complete_payment_url": "",
        "error_payment_url": "",
        "receipt_number": "",
        "flow_type": "",
        "address": null,
        "statement_descriptor": "Test Business",
        "transaction_id": "",
        "created_at": 1662995818,
        "metadata": {},
        "failure_code": "",
        "failure_message": "",
        "paid": true,
        "paid_at": 1663002016,
        "dispute": null,
        "refunds": null,
        "order": null,
        "outcome": null,
        "visual_codes": {},
        "textual_codes": {},
        "instructions": [
            {
                "name": "instructions",
                "steps": [
                    {
                        "step1": "Enter Phone number starting with 62.",
                        "step2": "Complete payment in the OVO App."
                    }
                ]
            }
        ],
        "ewallet_id": "ewallet_db4ad4a76278f94c4a83dd9b28b483ed",
        "ewallets": [
            {
                "ewallet_id": "ewallet_db4ad4a76278f94c4a83dd9b28b483ed",
                "amount": 1000,
                "percent": 100,
                "refunded_amount": 0
            }
        ],
        "payment_method_options": {},
        "payment_method_type": "id_ovo_ewallet",
        "payment_method_type_category": "ewallet",
        "fx_rate": 1,
        "merchant_requested_currency": null,
        "merchant_requested_amount": null,
        "fixed_side": "",
        "payment_fees": null,
        "invoice": "",
        "escrow": null,
        "group_payment": "",
        "cancel_reason": null,
        "initiation_type": "customer_present",
        "mid": "",
        "next_action": "not_applicable",
        "error_code": "",
        "remitter_information": {}
    }
}