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, BCP, 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": "+51 1234567890",
"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",
"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": "+51 1234567890",
"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": "+51 1234567890",
"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 | |
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. |