Local Payment Methods (LPMs)
Local Payment Methods (LPMs) Integration Guide#
Overview#
This guide provides comprehensive instructions for integrating Bank Transfer payment functionality into your merchant system.Supported Payment Methods:Mexico Bank Transfer (way_code: TAZAPAY_BANK_PUSH_MXN): Bank transfer payment for Mexican market
Brazil PIX (way_code: TAZAPAY_PIX_BRL): Instant payment system for Brazilian market
Currently, these payment methods only support OpenAPI Mode (pay_access_type=2), allowing merchants to have full control over the payment experience through direct API integration.
Mexico Bank Transfer Integration#
Overview#
Mexico Bank Transfer allows customers to complete payments through traditional bank transfer methods. After creating an order, the system returns bank account information, and customers complete the payment by transferring funds to the designated account.Payment Flow#
Request Parameters#
| Parameter | Type | Required | Description |
|---|
| target_amount | Integer | Yes | Payment amount in minor units (e.g., 10000 = 100.00 MXN) |
| target_currency | String | Yes | Must be MXN for Mexico |
| transaction_type | String | Yes | Must be PAY_IN |
| notify_url | String | Yes | Callback URL for payment notifications |
| request_id | String | Yes | Unique merchant order ID |
| fail_url | String | Yes | Redirect URL on payment failure |
| success_url | String | Yes | Redirect URL on payment success |
| product_name | String | Yes | Product/service name |
| description | String | Yes | Order description |
| expired_time | String | Optional | Order expiration time in seconds (default: 1800) |
| way_code | String | Yes | Must be TAZAPAY_BANK_PUSH_MXN |
| way_type | String | Yes | Must be BANK_TRANSFER |
| api_version | String | Yes | Must be v2 |
| pay_access_type | Integer | Yes | Must be 2 for OpenAPI Mode |
| channel_extra | Object | Yes | Mexico-specific payment data |
| channel_extra.customer_data | Object | Yes | Customer information |
| channel_extra.customer_data.customer_type | String | Yes | Customer type: individual or business |
| channel_extra.customer_data.name | String | Yes | Customer full name |
| channel_extra.customer_data.email | String | Yes | Customer email address |
| channel_extra.customer_data.country | String | Yes | Must be MX |
| channel_extra.customer_data.tax_id | String | Yes | Mexico RFC (tax ID), format: CABG771027SA8 |
| channel_extra.customer_data.identity_id | String | Yes | Mexico CURP (national ID), format: CABG771027HDFRTS00 |
Request Example#
Request Example#
Response Example#
{
"msg": "SUCCESS",
"code": 0,
"data": {
"order_data": {
"payOrderId": "P2011337513994018818",
"payOrderDetailIdEncode": "0c11add2dd42e4853755e2ea325c2e100b4aec92f6cc8f83efff27d6c5362f8f",
"mchOrderNo": "M20260115321902",
"payOrderDetailId": "PD2011337514476363778",
"payOrderDetailState": 1,
"payData": "https://checkout.doopayment.com/process/M20260115321902",
"payDataType": "payurl",
"orderState": 1,
"payinId": "payin_abc123xyz",
"paymentAttemptId": "attempt_def456uvw",
"bankDetails": {
"accountNumber": "012345678901234567",
"bankName": "BBVA Bancomer",
"referenceId": "REF123456789"
}
},
"pay_order_id": "P2011337513994018818"
}
}
Response Parameters#
| Parameter | Type | Description |
|---|
| code | Integer | Response code (0 = success) |
| msg | String | Response message |
| data.order_data.payOrderId | String | Platform order ID |
| data.order_data.mchOrderNo | String | Merchant order ID |
| data.order_data.orderState | Integer | Order state (1 = pending payment) |
| data.order_data.payData | String | Payment page URL |
| data.order_data.payDataType | String | Payment data type (payurl) |
| data.order_data.payinId | String | PayIn transaction ID |
| data.order_data.paymentAttemptId | String | Payment attempt ID |
| data.order_data.bankDetails | Object | Bank transfer information |
| data.order_data.bankDetails.accountNumber | String | Bank account number to transfer to |
| data.order_data.bankDetails.bankName | String | Bank name |
| data.order_data.bankDetails.referenceId | String | Transfer reference number (must be included in transfer) |
Response Handling#
1.
Extract Bank Details: Parse the bankDetails object from the response
2.
Display to User: Show the following information to the customer:Account number (accountNumber)
Reference number (referenceId) - Important: Customer must include this in the transfer
3.
Redirect Option: You can redirect users to payData URL which displays a pre-formatted payment page
4.
Wait for Callback: Monitor the webhook notification to confirm payment completion
Brazil PIX Payment Integration#
Overview#
PIX is Brazil's instant payment system that allows customers to complete payments by scanning a QR code or copying a payment code. The payment is processed instantly, providing a seamless user experience.Payment Flow#
Request Parameters#
| Parameter | Type | Required | Description |
|---|
| target_amount | Integer | Yes | Payment amount in minor units (e.g., 100 = 1.00 BRL) |
| target_currency | String | Yes | Must be BRL for Brazil |
| transaction_type | String | Yes | Must be PAY_IN |
| notify_url | String | Yes | Callback URL for payment notifications |
| request_id | String | Yes | Unique merchant order ID |
| fail_url | String | Yes | Redirect URL on payment failure |
| success_url | String | Yes | Redirect URL on payment success |
| product_name | String | Yes | Product/service name |
| description | String | Yes | Order description |
| expired_time | String | Optional | Order expiration time in seconds (default: 1800) |
| way_code | String | Yes | Must be TAZAPAY_PIX_BRL |
| way_type | String | Yes | Must be WALLET_TRANSFER |
| api_version | String | Yes | Must be v2 |
| pay_access_type | Integer | Yes | Must be 2 for OpenAPI Mode |
| channel_extra | Object | Yes | Brazil-specific payment data |
| channel_extra.customer_data | Object | Yes | Customer information |
| channel_extra.customer_data.name | String | Yes | Customer full name |
| channel_extra.customer_data.email | String | Yes | Customer email address |
| channel_extra.customer_data.country | String | Yes | Must be BR |
| channel_extra.customer_data.tax_id | String | Yes | Brazil CPF (tax ID), 11 digits, e.g., 07341712503 |
Request Example#
Response Example#
{
"msg": "SUCCESS",
"code": 0,
"data": {
"order_data": {
"payOrderId": "P2018272331339788290",
"targetCurrency": "BRL",
"targetAmount": "10.00",
"mchOrderNo": "M20260115321902",
"description": "Recharge_Order",
"payOrderDetailId": "PD2018272336196792322",
"payOrderDetailState": 1,
"successUrl": "https://www.doopayment.com/en/",
"failUrl": "https://www.doopayment.com/en/",
"productName": "Recharge_Order",
"orderState": 1,
"apiVersion": "v2",
"payOrderDetailIdEncode": "0717b9c683fb786fd0469053d5b92b451a93fec8869adc7ea9dbc5c2737e6de3",
"requestId": "M20260115321902",
"notifyUrl": "https://doo-remit-dev.doopayment.com/doo-remit/api/callback/teable/lesspay/payment",
"payData": "https://lesspay2-pay-dev.doopayment.com/pay-process?payOrderDetail=0717b9c683fb786fd0469053d5b92b451a93fec8869adc7ea9dbc5c2737e6de3",
"payDataType": "qrCode"
},
"pay_order_id": "P2018272331339788290"
}
}
Response Parameters#
| Parameter | Type | Description |
|---|
| code | Integer | Response code (0 = success) |
| msg | String | Response message |
| data.order_data.payOrderId | String | Platform order ID |
| data.order_data.mchOrderNo | String | Merchant order ID |
| data.order_data.orderState | Integer | Order state (1 = pending payment) |
| data.order_data.payData | String | Payment page URL |
| data.order_data.payDataType | String | Payment data type (qr_content) |
Response Handling#
1.
Display to User: You have two options:Payment Page__: Redirect users to payData URL which displays a pre-formatted PIX payment page with QR code
2.
Copy Code Option: Allow users to copy the qrCodePayData string to paste in their banking app
3.
Wait for Callback: PIX payments are instant - monitor webhook for immediate confirmation
Webhook (Payment Callback Notification)#
Overview#
After payment processing (success or failure), the system sends a callback notification to the notify_url you provided in the order request.Mexico Bank Transfer Callback:{
"api_version": "v2",
"description": "Lesspay Order",
"fail_url": "https://www.doopayment.com",
"order_status": "SUCCEED",
"order_status_int": 2,
"pay_order_id": "P2011337513994018818",
"product_name": "Lesspay Order",
"request_id": "M20260115321902",
"success_url": "https://www.doopayment.com",
"target_amount": "100.00",
"target_currency": "MXN",
"way_code": "TAZAPAY_BANK_PUSH_MXN",
"way_type": "BANK_TRANSFER"
}
{
"api_version": "v2",
"description": "Lesspay Order",
"fail_url": "https://www.doopayment.com",
"order_status": "SUCCEED",
"order_status_int": 2,
"pay_order_id": "P2011337513994018819",
"product_name": "Lesspay Order",
"request_id": "M20260115321902",
"success_url": "https://www.doopayment.com",
"target_amount": "1.00",
"target_currency": "BRL",
"way_code": "TAZAPAY_PIX_BRL",
"way_type": "WALLET_TRANSFER"
}
Callback Parameters#
| Parameter | Type | Description |
|---|
| order_status | String | Payment status: SUCCEED, FAILED, PENDING, etc. |
| order_status_int | Integer | Status code: 2 = Success, 3 = Failed, 1 = Pending |
| pay_order_id | String | Platform order ID |
| request_id | String | Your original merchant order ID |
| target_amount | String | Payment amount |
| target_currency | String | Payment currency |
| way_code | String | Payment method code |
| way_type | String | Payment type |
Callback Verification#
To verify the authenticity of callback notifications, please refer to:Your server must return HTTP 200 with body SUCCEED to acknowledge receipt
If acknowledgment is not received, the system will retry notifications
Order Status#
Status Codes#
| Status | Status Code | Description |
|---|
| PENDING | 1 | Order created, awaiting payment |
| SUCCEED | 2 | Payment successful |
| FAILED | 3 | Payment failed |
| CLOSED | 4 | Order closed/cancelled |
For detailed parameter specifications, please refer to:
Modified at 2026-02-27 03:07:47