Quickstart
Get up and running with Pay2Local in under 30 minutes.
Prerequisites
Basic Flow
Install Dependencies
npm install axios cryptoEnvironment Setup
Node.js Example
// Environment configuration
const config = {
apiUrl: 'https://api.pay2local.com/v1',
merchantId: process.env.PAY2LOCAL_MERCHANT_ID,
accessKey: process.env.PAY2LOCAL_ACCESS_KEY,
callbackUrl: 'https://yourdomain.com/api/pay2local/callback'
};Make Your First API Call
Deposit Request Example
const createDeposit = async (orderData) => {
const payload = {
merchant_payment_id: orderData.orderId,
amount: orderData.amount,
currency: "BDT",
service_type: "p2c_api",
bank_type: "bkash",
redirect_url: "https://yourdomain.com/payment/return",
};
const response = await axios.post(
`${config.apiUrl}/payment/deposits`,
payload,
{
headers: {
'Authorization': `Bearer ${config.accessKey}`,
'Content-Type': 'application/json'
}
});
return response.data;
};Response Handling
{
"status": "success",
"request_id": "P2L_REQ_123456789",
"redirect_url": "https://pay2local.com/pay/P2L_REQ_123456789",
"requested_amount": 50,
"merchant_payment_id": "100058130003",
"request_type": "Deposit",
"bank_type": "Bkash",
"service_type": "p2p_agent",
"currency": "BDT",
"message": "Deposit request created"
}Handle Callbacks
Basic Callback Handler More Details
app.post('/api/pay2local/callback', async (req, res) => {
try {
// 1. Verify signature
const isValid = verifySignature(req.body);
if (!isValid) return res.status(400).send();
// 2. Process the callback
const {merchant_payment_id, request_status} = req.body;
if (request_status === "Approved") {
await creditUserAccount(merchant_payment_id);
}
res.status(200).json({status: "received"});
} catch (error) {
log.error(error);
res.status(500).send();
}
});