Bank Transfer
Integration Guide¶
When receiving the 'referenceNumber' and 'serviceProvider' fields are retrieved from the response, follow the process below to complete the payment.
-
Log in to your bank's website or app on your phone;
-
Select the 'pago de servicios' option and enter the serviceProvider name Tupay;
-
Then enter the referenceNumber and the amount to complete the payment.
We support the following banks: Interbank, BBVA, Scotiabank, Banbif, Yape.
HTTP Request¶
POST /v1/payments/charges/bank_transfer
Request Headers
{
"Content-Type": "application/json",
"Authorization": "Bearer {{access_token}}",
"x-api-key": "{{api_key}}"
}
Request Body
{
"idempotencyKey": "d7f4fc20-13c3-48ef-8cab-9a572396ad35",
"amount": 500,
"currency": "PEN",
"country": "PE",
"paymentMethod": "BANK_TRANSFER",
"paymentFlow": "DIRECT",
"payer": {
"name": "username",
"email": "username@liquido.com",
"phone": "+511234567890",
"document": {
"documentId": "700123456",
"type": "DNI"
},
"billingAddress": {
"street": "street name",
"number": "building number",
"complement": "unit, apt, etc.",
"district": "district, neighborhood, etc.",
"city": "city name",
"state": "state, state code",
"zipCode": "zip code, postal code",
"country": "PE"
}
},
"orderInfo": {
"orderId": "test-order-id",
"orderReferenceNumber": "test-order-reference-number",
"shippingInfo": {
"name": "shipping test name",
"phone": "shipping phone",
"email": "shipping@example.com",
"address": {
"street": "street name",
"number": "building number",
"complement": "unit, apt, etc.",
"district": "district, neighborhood, etc.",
"city": "city name",
"state": "state, state code",
"zipCode": "zip code, postal code",
"country": "PE"
}
}
},
"description": "this is a test payment",
"callbackUrl": "https://api.client.com/callback/",
"subMerchantId": "UUID"
}
Content-Type: application/json
{
"transferStatusCode": 200,
"transferErrorMsg": null,
"idempotencyKey": "d7f4fc20-13c3-48ef-8cab-9a572396ad35",
"referenceId": "d7f4fc20-13c3-48ef-8cab-9a572396ad35",
"paymentMethod": "BANK_TRANSFER",
"amount": 500,
"currency": "PEN",
"country": "PE",
"finalAmount": 500,
"finalCurrency": "PEN",
"createTime": "2025-02-01 22:29:40 GMT-07:00",
"scheduledTime": "2025-02-01 22:29:40 GMT-07:00",
"payer": {
"name": "username",
"email": "username@example.com",
"phone": "+511234567890",
"document": {
"documentId": "700123456",
"type": "DNI"
},
"billingAddress": {
"street": "street name",
"number": "building number",
"complement": "unit, apt, etc.",
"district": "district, neighborhood, etc.",
"city": "city name",
"state": "state, state code",
"zipCode": "zip code, postal code",
"country": "PE"
}
},
"transferStatus": "IN_PROGRESS",
"description": "this is a test payment",
"callbackUrl": "https://api.client.com/callback/",
"transferDetails": {
"bankTransfer": {
"bankTransfer": {
"expirationTime": "2025-02-03 22:37:45 GMT-07:00",
"referenceNumber": "57180403",
"serviceProvider": "Tupay"
}
}
},
"subMerchantId": "UUID"
}
Notification / Callback¶
Content-Type: application/json
{
"eventType": "CHARGE_SUCCEEDED",
"data": {
"chargeDetails": {
"transferStatusCode": 200,
"transferErrorMsg": null,
"idempotencyKey": "d7f4fc20-13c3-48ef-8cab-9a572396ad35",
"referenceId": "d7f4fc20-13c3-48ef-8cab-9a572396ad35",
"paymentMethod": "BANK_TRANSFER",
"amount": 500,
"currency": "PEN",
"country": "PE",
"finalAmount": 500,
"finalCurrency": "PEN",
"createTime": "2025-02-01 22:29:40 GMT-07:00",
"scheduledTime": "2025-02-01 22:29:40 GMT-07:00",
"finalStatusTime": "2025-02-01 23:00:34 GMT-07:00",
"payer": {
"name": "username",
"email": "username@example.com",
"phone": "+511234567890",
"document": {
"documentId": "700123456",
"type": "DNI"
},
"billingAddress": {
"street": "street name",
"number": "building number",
"complement": "unit, apt, etc.",
"district": "district, neighborhood, etc.",
"city": "city name",
"state": "state, state code",
"zipCode": "zip code, postal code",
"country": "PE"
}
},
"transferStatus": "SETTLED",
"description": "this is a test payment",
"callbackUrl": "https://api.client.com/callback/",
"transferDetails": {
"bankTransfer": {
"expirationTime": "2025-02-03 22:37:45 GMT-07:00",
"referenceNumber": "57180403",
"serviceProvider": "Tupay"
}
},
"subMerchantId": "UUID"
}
}
}
Request Headers Parameters¶
| Key | Value |
|---|---|
| Authorization | "Bearer" + " " + {{access_token}} |
| x-api-key | {{api_key}} |
Request Body Parameters¶
| Parameter | Required | Type | Description |
|---|---|---|---|
| idempotencyKey | String | Unique key to ensure idempotent requests. given by the merchant in their system. | |
| amount | Long | The transfer amount, The minimum settlement granularity of the current currency, such as 100=1PEN | |
| country | String | country code | |
| currency | String | The currency code of the transferred fund | |
| paymentMethod | String | payment method, enum value as BANK_TRANSFER | |
| paymentFlow | String | payment flow, DIRECT | |
| payer | JSON | payer info | |
| orderInfo | JSON | order info | |
| description | String | description of payment | |
| callbackUrl | String | URL where Liquido will send notifications associated to changes to this payment. will receive a post request. | |
| subMerchantId | String | The sub merchant ID. Required for PSPs. | |
| riskData | JSON | The risk data of the payment. MERCHANT_APP_NAME or MERCHANT_WEBSITE must be provided in risk Data. Please see here for further details. |
Create A Payment With Risk Data¶
Please see here for further details.
Payer Object Parameters¶
| Parameter | Required | Type | Description |
|---|---|---|---|
| name | String | fullname(Input specification: Only a combination of uppercase and lowercase letters, numbers and spaces is allowed. Spanish and Portuguese letters, and other special characters are not allowed). | |
| String | email. | ||
| document | JSON | document info | |
| phone | String | Mobile phone number. Should include “+51” as a prefix. | |
| billingAddress | JSON | Billing address info. |
Document Object Parameters¶
| Parameter | Required | Type | Description |
|---|---|---|---|
| documentId | String | document number. | |
| type | String | document type, enum value as DNI, RUC, PERU_CE, PERU_PASSPORT_ID |
BillingAddress Object Parameters¶
| Parameter | Required | Type | Description |
|---|---|---|---|
| zipCode | String | zip code. | |
| state | String | state. | |
| city | String | city name. | |
| street | String | street name. | |
| number | String | street number. |
OrderInfo Object Parameters¶
| Parameter | Required | Type | Description |
|---|---|---|---|
| orderId | String | order identity number | |
| orderReferenceNumber | String | order reference number | |
| shippingInfo | JSON | shipping info |
ShippingInfo Object Parameters¶
| Parameter | Required | Type | Description |
|---|---|---|---|
| name | String | shipping name | |
| phone | String | Mobile phone number. Should include “+51” as a prefix. | |
| String | email address | ||
| address | JSON | the same as billingAddress |
Response Body Parameters¶
| Parameter | Type | Description |
|---|---|---|
| transferStatus | String | Transfer status, SETTLED, IN_PROGRESS, FAILED |
| transferStatusCode | Integer | Transfer status code, 200 transaction SETTLED or IN_PROGRESS, other FAILED |
| transferErrorMsg | String | Transfer error message if failed |
| referenceId | String | Unique key to payment ticket, generated by Liquido. |
| idempotencyKey | String | Unique key to ensure idempotent requests. given by the merchant in their system |
| amount | Long | The transfer amount |
| country | String | country code |
| currency | String | The currency code of the transferred fund |
| finalAmount | Long | The final amount that is used for creating the charge order. EX: for charge orders with FX conversion, this field represents the converted amount from the original requested amount. |
| finalCurrency | String | The currency code of the finalAmount. |
| paymentMethod | String | payment method, enum value as BANK_TRANSFER |
| payer | JSON | payer info |
| transferDetails | JSON | transaction details info |
| description | String | description of payment |
| callbackUrl | String | URL where Liquido will send notifications associated to changes to this payment. will receive a post request. |
| createTime | String | Payment ticket created time |
| scheduledTime | String | Payment ticket scheduled time |
| finalStatusTime | String | Transfer final status update time, final status include SETTLED, FAILED |
| subMerchantId | String | The sub merchant ID. |
TransferDetails Object Parameters¶
| Parameter | Type | Description |
|---|---|---|
| bankTransfer | JSON | The bank transfer details |
BankTransfer Object Parameters¶
| Parameter | Type | Description |
|---|---|---|
| expirationTime | String | The expiration time of the payment |
| referenceNumber | String | The reference number of the payment |
| serviceProvider | String | The name of payment service |
Transfer Status¶
| Parameter | Description |
|---|---|
| IN_PROGRESS | The transaction of this method has started, but no transactions have been processed yet. |
| SETTLED | The funds of the transaction of this payment have been transferred to the store. |
| REFUNDING | The transaction of this payment is refunding. |
| REFUNDED | The transaction of this payment method has been refunded. |
| CHARGED_BACK | The transaction of this payment has been reported as chargeback. |
| FAILED | There was an error while processing the transaction of this payment. This status is followed by a message with more details about the error. |