Skip to main content
POST
/
gl
/
v1
/
payments
/
si
/
sale
SI Subsequent Payment
curl --request POST \
  --url https://api.payglocal.in/gl/v1/payments/si/sale \
  --header 'Content-Type: application/json' \
  --header 'x-gl-token-external: <api-key>' \
  --data '
{
  "merchantTxnId": "si_sub_1712345678",
  "standingInstruction": {
    "mandateId": "mandate_abc123",
    "data": {
      "type": "FIXED"
    }
  },
  "paymentData": {
    "totalAmount": "499.00",
    "txnCurrency": "INR"
  }
}
'
{
  "gid": "gl_si_sub_abcdef",
  "status": "INPROGRESS",
  "timestamp": "10/01/2026 15:00:00",
  "reasonCode": "",
  "data": {
    "gid": "gl_si_sub_abcdef",
    "mandateId": "mandate_abc123",
    "status": "INPROGRESS"
  }
}

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.

When to Use

ONDEMAND mandates require this API for every subsequent debit. Register with frequency: ONDEMAND on initiate — you then call SI sale whenever you want to charge (including weekly or monthly billing in your product; PayGlocal does not schedule ONDEMAND mandates). AUTO DEBIT uses frequency values such as MONTHLY or WEEKLY on registration so PayGlocal runs the schedule — no SI sale API. Use the mandateId from the original initiate response (it is not returned on later transactions). Applies to PayDirect and PayCollect on-demand mandates. See Standing Instruction Sale in the API Reference sidebar.

FIXED vs VARIABLE

  • type=FIXED — the debit amount is fixed to the amount supplied at mandate creation. Do not include paymentData.totalAmount.
  • type=VARIABLE — the debit amount is variable but must be ≤ the maxAmount set when the mandate was created. paymentData.totalAmount is required.

Common Failure Responses

{ "status": "REQUEST_ERROR", "message": "Mandate is not found | Mandate is inactive | Mandate is exhausted" }
If Auto Debit is enabled at the MID level, PayGlocal initiates subsequent payments automatically — this API is not applicable.

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

Unified request body for payment initiation, capture, refund, reversal, and SI operations. Most fields are optional — which fields are required depends on the operation. See each endpoint's required: list for operation-specific rules.

Note: required: lists are best-effort and derived from current integration examples — validate against your integration spec or contact your PayGlocal implementation lead.

merchantTxnId
string
required

Merchant's unique transaction identifier. Required for /initiate and SI sale.

Example:

"order_1712345678"

paymentData
object
required

Payment instrument + amount details for a transaction.

standingInstruction
object
required

Mandatory when registering a standing instruction on initiate. Omit for GPI-only sales without a mandate.

merchantUniqueId
string

Merchant's secondary unique reference.

refundType
enum<string>

Full or partial refund indicator (used on refund calls).

Available options:
F,
P
Example:

"F"

refundAction
string

Refund lifecycle action.

captureType
enum<string>

Full or partial capture indicator (used on capture calls).

Available options:
F,
P
Example:

"F"

captureTxn
boolean

If true on /initiate, the transaction is auto-captured post-auth.

riskData
object

Risk & analytics payload forwarded to fraud engines.

merchantCallbackURL
string<uri>

URL PayGlocal redirects to after payment completion.

merchantCustomPayload
object

Opaque merchant metadata echoed back in callbacks.

dcc_indicator
boolean

Set true to enable Dynamic Currency Conversion.

dccReferenceGid
string

PayGlocal DCC quote reference (when dcc_indicator=true).

Response

Subsequent SI debit accepted.

Standard PayGlocal response envelope (GlocalApiResponse).

gid
string

PayGlocal global transaction ID.

Example:

"gl_9c2645ed09edb22e"

status
string

High-level status of this API response.

Example:

"SUCCESS"

message
string

Human-readable message.

timestamp
string

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

Example:

"10/01/2026 15:00:00"

reasonCode
string

Empty on success; populated on failure.

Example:

""

data
object

Operation-specific payload. Shape varies by endpoint.

errors
object

Field-level validation errors (populated on 4xx).