Authentication

The BloomPay API uses API keys to authenticate requests. You can view and manage your API keys in the BloomPay Dashboard.

Authentication to the API is performed via HTTP Headers. Pass your API key in the Authorization header.

Keep your API keys secure. Do not share them in publicly accessible areas.
Header Format
Authorization: <YOUR_API_KEY>
Content-Type: application/json

Create PayIn Intent

POST fintech/api/payin/create_intent

Initialize a new payment intent to generate a dynamic UPI intent string and a hosted payment link.

ParameterDescription
name
string, required
The name of the customer initiating the transaction.
amount
string, required
The transaction amount (e.g., "100").
mid
string, required
Your unique identifier for this order. Must be unique per transaction.
email
string, required
Email address of the customer.
mobile
string, required
10-digit mobile number of the customer.
Request Sample (cURL)
curl --location 'https://app.bloompay.in/fintech/api/payin/create_intent' \ --header 'Authorization: API-KEY' \ --header 'Content-Type: application/json' \ --data-raw '{ "name": "Demo", "amount": "100", "mid": "TXN_9988", "email": "demo@gmail.com", "mobile": "XXXXXX0989" }'
Success Response (JSON)
{ "status": "true", "msg": "Transaction Successful", "order_details": { "tid": "BMP326020...", "upi_deeplink": "upi://pay?pa=bloompaypay@nsdlpbma&pn=...", } }

PayIn Status Check

POST /fintech/api/payin/check_status

Retrieve the real-time status of a previously initiated PayIn transaction.

ParameterDescription
mid
string, required
The unique order identifier passed during payment initiation.
Request Sample (cURL)
curl --location 'https://app.bloompay.in/fintech/api/payin/check_status' \ --header 'Authorization: API-KEY' \ --header 'Content-Type: application/json' \ --data-raw '{ "mid": "TXN_9988" }'
Success Response (JSON)
{ "status": "true", "msg": "Successfully Found", "order_details": { "amount": "100", "bank_utr": "123456", "status": "success", "tid": "123456", "mid": "udf1", "payer_vpa": "text@ypbiz" } }

Create Payout

POST /v1/api/payout/create_payout

Initiate an automated disbursement to a beneficiary bank account via IMPS/NEFT.

ParameterDescription
mid
string, required
Your unique merchant transaction ID.
name
string, required
Name of the beneficiary account holder.
account_number
string, required
The destination bank account number.
ifsc_code
string, required
The valid 11-character IFSC code of the destination bank.
amount
string, required
Amount to transfer (Limits: 100 to 25000 per request).
bank
string, required
Name of the beneficiary's bank.
Request Sample (cURL)
curl --location 'https://app.bloompay.in/fintech/api/payout/create_payout' \ --header 'Authorization: API-KEY' \ --header 'Content-Type: application/json' \ --data-raw '{ "mid": "Unique_TXN_Id", "name": "hello", "account_number": "ACCOUNT_NUMBER", "ifsc_code": "IFSC_CODE", "amount": "100", "bank": "BANK_NAME" }'
Success Response (JSON)
{ "status": "true", "msg": "Transaction Successfull", "order_details": { "bank_utr": 1, "tid": 1, "status": "pending" } }

Payout Status Check

POST /v1/api/payout/check_status

Verify the settlement status of a previously triggered payout transaction.

ParameterDescription
mid
string, required
The unique merchant transaction ID (mid) passed during payout creation.
Request Sample (cURL)
curl --location 'https://app.bloompay.in/fintech/api/payout/check_status' \ --header 'Authorization: API-KEY' \ --header 'Content-Type: application/json' \ --data-raw '{ "mid": "Unique_TXN_Id" }'
Success Response (JSON)
{ "status": "true", "msg": "Status Found", "order_details": { "amount": "100", "bank_utr": "123456", "status": "success", "tid": "123456", "mid": "m1234" } }

PayIn Webhook

CALLBACK Your Server Endpoint

This payload is sent via a POST request to your configured Webhook URL immediately after a user successfully completes a QR or UPI Intent payment.

Ensure your server responds with a 200 OK status to acknowledge receipt of the webhook.

Received Payload (JSON)
{ "status": "true", "msg": "Payin Webhook", "order_details": { "amount": "100.00", "bank_utr": "386034893990", "status": "success", "tid": "EXP326020111911674484", "mid": "11005308437", "payee_vpa": "Upi" } }

Payout Webhook

CALLBACK Your Server Endpoint

BloomPay pushes this payload to your server once the destination bank confirms the transfer. This includes the final bank_utr for reconciliation.

Use the mid parameter to match this callback with the original payout request in your database.

Received Payload (JSON)
{ "status": "true", "msg": "Payout Webhook", "order_details": { "status": "success", "bank_utr": "12345678", "tid": "12345678", "amount": "300", "mid": "m1234" } }