Skip to main content
POST
/
gl
/
v1
/
payments
/
initiate
/
paycollect
PayCollect on-demand SI — register mandate (request body)
curl --request POST \
  --url https://api.payglocal.in/gl/v1/payments/initiate/paycollect \
  --header 'Content-Type: application/json' \
  --header 'x-gl-token-external: <api-key>' \
  --data '
{
  "merchantTxnId": "23AEE8CB6B62EE2AF07",
  "merchantUniqueId": "IFNN939494NJFJ",
  "merchantCallbackURL": "https://api.prod.payglocal.in/gl/v1/payments/merchantCallback",
  "standingInstruction": {
    "data": {
      "maxAmount": "15000",
      "amount": "15000",
      "numberOfPayments": "N",
      "frequency": "ONDEMAND",
      "type": "VARIABLE"
    }
  },
  "paymentData": {
    "totalAmount": "10.00",
    "txnCurrency": "INR",
    "billingData": {
      "firstName": "John",
      "lastName": "Doe",
      "addressStreet1": "221B Baker Street",
      "addressCity": "Bengaluru",
      "addressCountry": "IND",
      "emailId": "[email protected]",
      "callingCode": "+91",
      "phoneNumber": "9999999999"
    }
  }
}
'
{
  "gid": "gl_o-a057c4d6b6c620741apzp0ZX2",
  "status": "INPROGRESS",
  "message": "Transaction Created Successfully",
  "timestamp": "02/06/2026 21:47:33",
  "reasonCode": "200",
  "data": {
    "redirectUrl": "https://api.uat.payglocal.in/gl/payflow-ui/?x-gl-token=example",
    "statusUrl": "https://api.uat.payglocal.in/gl/v1/payments/gl_o-a057c4d6b6c620741apzp0ZX2/status?x-gl-token=example",
    "merchantTxnId": "23AEE8CB6B62EE2AF07",
    "mandateId": "md_925996a0-9da6-42df-b968-8a14729885fd"
  },
  "errors": null
}

Documentation Index

Fetch the complete documentation index at: https://payglocal.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

On-demand standing instructions

On-demand SI is a PayGlocal MID configuration — not a restriction that standingInstruction.data.frequency must be ONDEMAND. You can set any supported frequency in the request body. Use this flow when on-demand SI is enabled for your account. Registration uses the same PayCollect initiate endpoint as GPI with a standingInstruction block. The customer completes mandate setup on the hosted checkout page.

Key points

  • Register the mandate using the Initiate API with standingInstruction.data (see Request body).
  • frequency (ONDEMAND, WEEKLY, MONTHLY, etc.) is a mandate field only — PayGlocal does not auto-debit on that schedule for on-demand SI. You trigger every subsequent debit by calling the SI sale API (billing cadence is up to you).
  • Subsequent debit amounts:
    • FIXED — same amount each time.
    • VARIABLE — up to maxAmount per debit.
  • mandateId is returned in the Initiate API response (data.mandateId) and must be stored for future mandate operations. It is not returned again in later transactions.

Supported payment methods

MethodDomesticInternational
Cards
Standing instruction registration on hosted checkout supports international cards only. UPI, net banking, and domestic-only methods are not supported for SI.

Notes

  • Do not send cardData or tokenData — the customer registers the mandate on the PayGlocal hosted page.

API

MethodPOST
Path/gl/v1/payments/initiate/paycollect
Productionhttps://api.payglocal.in/gl/v1/payments/initiate/paycollect
Sandboxhttps://api.uat.payglocal.in/gl/v1/payments/initiate/paycollect
GPI, on-demand SI, auto-debit, and authorize all call this path. Only the JSON request body differs.

Headers

HeaderMandatoryDescription
Content-TypeYesapplication/json
x-gl-token-externalYesRSA-signed JWS of the request body (see Key Management)
x-gl-merchantidYesYour PayGlocal merchant ID (MID)
x-gl-kidYesKey ID of the private key used to sign the JWS
Sign the JSON from Request body below as the JWS in x-gl-token-external, then POST to the URL above.

Next actions

Store data.mandateId from the initiate response — it is not returned on later calls.
ActionAPI
Subsequent debitSI subsequent payment
Mandate statusCheck mandate status
Cancel mandateCancel standing instruction
Registration / payment outcomeGet transaction status

Authorizations

x-gl-token-external
string
header
required

RSA-signed JWS (JSON Web Signature) token carrying the request payload.

  • Header: { "alg": "RS256", "kid": "<merchant-key-id>", "iss": "<merchant-id>", "x-gl-enc": "false", "is-digested": "true" }
  • Payload: the exact JSON body sent in the request (or its SHA-256 digest when is-digested=true).
  • Signed with the merchant's RSA private key; PayGlocal verifies with the matching public key. Used by all /gl/v1/payments/* endpoints.

Body

application/json

PayCollect standing instruction registration when on-demand SI is enabled on the MID. International cards only on hosted checkout (no UPI, net banking, or domestic-only methods). Do not send cardData or tokenData in paymentData.

merchantTxnId
string
required

Merchant's unique transaction identifier. Alphanumeric only.

Required string length: 4 - 50
Example:

"23AEE8CB6B62EE2AF07"

merchantCallbackURL
string<uri>
required

Customers are redirected here post payment completion.

Example:

"https://api.prod.payglocal.in/gl/v1/payments/merchantCallback"

paymentData
object
required

Hosted checkout payment details for PayCollect standing instruction registration. Do not send cardData, tokenData, or authenticationData — the customer registers the mandate on redirectUrl.

standingInstruction
object
required
merchantUniqueId
string

Optional stable merchant-side ID for idempotency and reconciliation. Alphanumeric only.

Required string length: 15 - 40
Example:

"IFNN939494NJFJ"

riskData
object

Recommended for fraud checks and processor compliance.

Response

Returned immediately from initiate. Redirect the customer to data.redirectUrl, then poll data.statusUrl or Get Transaction Status. When mandate registration succeeds, data.mandateId may be present in data.

Response envelope for PayCollect standing instruction initiate (200). data may include mandateId. No fields in this envelope are marked required.

gid
string

PayGlocal transaction ID. Use for status, capture, and refund APIs.

Example:

"gl_o-a057c4d6b6c620741apzp0ZX2"

status
string

High-level status. Typically INPROGRESS immediately after initiate.

Example:

"INPROGRESS"

message
string

Human-readable status message.

Example:

"Transaction Created Successfully"

timestamp
string

Response timestamp (DD/MM/YYYY HH:MM:SS).

Example:

"02/06/2026 21:47:33"

reasonCode
string

Success code on initiate (e.g. 200). See 4xx responses for error codes.

Example:

"200"

data
object

Standing instruction registration may also return mandateId in data — store it for SI sale, status, and cancel.

errors
object

null on success.