
PIQPAY
Local payments. Global success.
Supports in this guide: Payments, Payouts
Provider website: piqpay.com
What you need to do for start processing transactions (brief summary)
- Get your credentials (from PIQPAY)
- Connect in Dashboard
- Send an API request
Prerequisites: get from PIQPAY
Contact your PIQPAY account manager to get your account verified and receive the following credentials. One Provider account connection covers both Payments and Payouts.
- Merchant ID -> Corefy field
merchant_id. - API Key -> Corefy field
api_key. - Secret Key -> Corefy field
secret_key. - Public Key -> Corefy field
public_key.
BDT (Bangladesh) and PKR (Pakistan) only.
Payments processing (connect Provider account, create payment-invoice)
Connect Provider account in Corefy Dashboard
Step 1 - Open connection form
Open PIQPAY in the provider directory and press Connect at PIQPAY Provider Overview page in the New connection section.
Step 2 - Fill in fields and select settings
- Merchant ID
- API Key
- Secret Key
- Public Key
- Test Mode -> (enable if you are using sandbox credentials)
Choose Currency / Features; check with your Corefy account manager which methods are enabled for your account.
Success
You have connected PIQPAY Provider account!
First request to Corefy API (MIN)
What it does: creates a payment-invoice. bKash and Nagad (Bangladesh, BDT) redirect the customer to a PIQPAY-hosted page. JazzCash and EasyPaisa (Pakistan, PKR) are available as two different service variants - see the important note below.
Payment - MIN
POST /api/payment-invoices
{
"data": {
"type": "payment-invoice",
"attributes": {
"reference_id": "1a2b3c4d-5e6f-4a7b-8c91-2d3e4f5a6b7c",
"service": "bkash_limited_bdt_hpp",
"currency": "BDT",
"amount": 10
}
}
}
This connector also supports nagad_wallet_bdt_hpp (BDT), and for Pakistan jazzcash_pkr_transfer/jazzcash_pkr_invoice/easypaisa_pkr_transfer/easypaisa_pkr_invoice (PKR).
Payment - MAX
POST /api/payment-invoices
{
"data": {
"type": "payment-invoice",
"attributes": {
"reference_id": "2b3c4d5e-6f7a-4b8c-8d02-3e4f5a6b7c8d",
"service": "bkash_limited_bdt_hpp",
"currency": "BDT",
"amount": 10,
"customer": {
"reference_id": "cus_123"
}
}
}
}
customer is entirely optional - only customer.reference_id is forwarded, nothing else from customer is used.
Extended request (MAX)
Why add extra fields (typical reasons): - Provide additional customer details for compliance/reconciliation - Positively influence conversion rate - Include optional fields required by your specific flow
Important
For JazzCash/EasyPaisa, PIQPAY offers two different flows per method:
*_transferservices -> a direct push to the customer's wallet, no redirect.fields.phone_number(the customer's own wallet number) is required in the initial request.*_invoiceservices -> creates the payment-invoice first; Corefy then requires a confirmation step where the customer's phone number is submitted separately to finalize the transaction, instead of collecting it upfront.
{
"data": {
"type": "payment-invoice",
"attributes": {
"reference_id": "3c4d5e6f-7a8b-4c9d-8e13-4f5a6b7c8d9e",
"service": "jazzcash_pkr_transfer",
"currency": "PKR",
"amount": 10,
"fields": {
"phone_number": "+923001234567"
}
}
}
}
Options
autofail_delay_in_hours-> optional, number (minimum 1) - once this many hours have passed since creation, an active status check additionally treats a cancelled/expired-like provider status as a final failure, instead of leaving it pending indefinitely.
Refunds
This connector does not support refunds.
Payouts processing (connect Provider account, create payout-invoice)
Connect Provider account in Corefy Dashboard
Uses the same Provider account connection as Payments above - one connection covers both directions, nothing extra to fill in for payouts specifically.
First request to Corefy API (MIN)
What it does: creates a payout-invoice and sends funds to a bKash, Nagad, JazzCash, or EasyPaisa wallet, depending on what's enabled for your account.
Payout - MIN
POST /api/payout-invoices
{
"data": {
"type": "payout-invoice",
"attributes": {
"reference_id": "4d5e6f7a-8b9c-4d0e-8f24-5a6b7c8d9e0f",
"service": "bkash_limited_bdt",
"currency": "BDT",
"amount": 10,
"fields": {
"account_number": "+8801234567890"
}
}
}
}
Important
fields.account_number (the recipient's wallet number) is required.
Payout - MAX
POST /api/payout-invoices
{
"data": {
"type": "payout-invoice",
"attributes": {
"reference_id": "5e6f7a8b-9c0d-4e1f-8a35-6b7c8d9e0f1a",
"service": "bkash_limited_bdt",
"currency": "BDT",
"amount": 10,
"customer": {
"reference_id": "cus_123"
},
"fields": {
"account_number": "+8801234567890"
}
}
}
}
customer is entirely optional.
Extended request (MAX)
Why add extra fields (typical reasons): - Provide additional customer details for compliance/reconciliation - Positively influence conversion rate - Include optional fields required by your specific flow
Additional info
- Callback routing is automatic - Corefy generates the callback/return URLs per transaction, nothing to configure in PIQPAY's own back-office.
- Active reconciliation is available - both Payments and Payouts support an active status request, in addition to the asynchronous callback.
- No refunds - this connector does not support refunds through Corefy.
FAQ / Troubleshooting
- Invalid credentials / auth error -> verify Merchant ID/API Key/Secret Key/Public Key for the selected environment
- Payment fails with a missing phone number error -> for JazzCash/EasyPaisa
*_transferservices,fields.phone_numberis required upfront; for*_invoiceservices, it's collected via a separate confirmation step instead - Refund request fails -> refunds aren't supported by this connector
- Currency or service is not supported -> confirm allowed methods in your PIQPAY account and in Corefy - only
BDT(Bangladesh) andPKR(Pakistan) are available
Question
Still looking for help connecting your PIQPAY account? Please contact our support team!