Devengo
Introduction
Devengo is a payment service that works through bank transfers.
It only works with orders where the indicated operative is PAYOUT.
In order to use this service, it is necessary to register a bank account.
Once we have our bank account created:
- Create new order.
- Call the
/payment/payoutendpoint. The source_uuid field is required, while the apm field should not be sent, as it has no effect on this service. PAYOUT
Testing successful transfers in sandbox
In sandbox environment, it is recommended to use a maximum amount of 1€ (amount = 100)
The iban codes that can be used for testing are as follows:
Bank account for successful transfers
| IBAN |
|---|
| ES9067130002000000458102 |
Bank accounts for refused transfers
| IBAN | Error description | Error code |
|---|---|---|
| ES3930350000020000000201 | blocked_account | ERR-0001 |
| ES3930350000020000000104 | closed_account | ERR-0002 |
| ES9030350000070000000202 | integration_error | ERR-0003 |
| ES2530350000030000000501 | invalid_bank | ERR-0004 |
| ES2330350000000000000005 | recoverable | ERR-0005 |
| ES9530350000050000000210 | suspended_bank | ERR-0006 |
| ES7430350000090000000101 | wrong_account_number | ERR-0007 |
| ES5530350000000000000302 | wrong_amount | ERR-0008 |
| ES1730350000040000000305 | wrong_operation_code | ERR-0009 |
| ES1730350000040000000402 | other | ERR-0010 |
Verification of Payee (VoP)
Devengo optionally allows adding a Verification of Payee (VoP) step to payouts. When enabled, Devengo performs an account ownership verification just before executing the payout.
VoP is configured through extra_data.payment.vop:
"extra_data": {
"payment": {
"vop": {
"enabled": true,
"accepted_verification_results": ["MATCH", "NO_MATCH"],
"skip_on_error": true
}
}
}
VoP Fields
| Field | Type | Description |
|---|---|---|
enabled required | boolean | Activates VoP. When true, Devengo performs the verification before executing the payout. |
accepted_verification_results | string[] (enum) | List of VoP outcomes considered valid to proceed. If the verification result is not included in this list, the payout will not be executed. If omitted or empty, the payout always continues regardless of the VoP result. Each element must be one of: MATCH, NO_MATCH, CLOSE_MATCH, VERIFICATION_CHECK_NOT_POSSIBLE. |
skip_on_error | boolean | When true, transient VoP errors (timeouts, service unavailable…) do not block the payout. If omitted or false, such errors may block it. |
VoP Testing in Sandbox
The following IBANs allow simulating different VoP outcomes:
| IBAN | Expected Response | Description |
|---|---|---|
| ES8569400001160529041877 | rejected | Always returns a rejected verification. |
| ES6769400001110836662135 | failed (NO_MATCH) | Always returns a failed verification. |
| ES3369400001190536473836 | confirmed (CLOSE_MATCH) | Always returns a close match. |
| Any other IBAN | confirmed (MATCH) | Always returns a full match. |