Standing Instruction Sale
Check Mandate Status
Retrieve the current status, payment count, and details of a standing instruction mandate.
POST
/
gl
/
v1
/
payments
/
si
/
status
SI Status
curl --request POST \
--url https://api.payglocal.in/gl/v1/payments/si/status \
--header 'Content-Type: application/json' \
--header 'x-gl-token-external: <api-key>' \
--data '
{
"mandateId": "mandate_abc123"
}
'import requests
url = "https://api.payglocal.in/gl/v1/payments/si/status"
payload = { "mandateId": "mandate_abc123" }
headers = {
"x-gl-token-external": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)HttpResponse<String> response = Unirest.post("https://api.payglocal.in/gl/v1/payments/si/status")
.header("x-gl-token-external", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"mandateId\": \"mandate_abc123\"\n}")
.asString();const url = 'https://api.payglocal.in/gl/v1/payments/si/status';
const options = {
method: 'POST',
headers: {'x-gl-token-external': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({mandateId: 'mandate_abc123'})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));{
"gid": "gl_si_status_001",
"status": "SUCCESS",
"timestamp": "10/01/2026 15:00:00",
"reasonCode": "",
"data": {
"mandateId": "mandate_abc123",
"mandateStatus": "ACTIVE",
"nextDebitDate": "2026-05-01",
"completedPayments": 3,
"totalPayments": 12
}
}{
"gid": "gl_9c2645ed09edb22e",
"timestamp": "10/01/2026 15:00:00",
"reasonCode": "VALIDATION_ERROR",
"data": {},
"errors": null,
"errorDetails": [
{
"fieldName": "paymentData.totalAmount",
"message": "This field is required"
}
]
}{
"gid": "gl_9c2645ed09edb22e",
"timestamp": "10/01/2026 15:00:00",
"reasonCode": "UNAUTHORIZED",
"data": {},
"errors": null,
"errorDetails": [
{
"fieldName": "authorization",
"message": "Invalid x-gl-token-external"
}
]
}When to Use
Check the current lifecycle state of a standing-instruction mandate — e.g., whether it’s still active, how many debits have been processed, and how many remain. Applies to on-demand and auto debit mandates (PayDirect and PayCollect). See Standing Instruction Sale in the API Reference sidebar.Mandate Status Values
| Status | Description |
|---|---|
ACTIVE | Mandate is active and can be used for subsequent payments |
INACTIVE | Mandate was revoked via API or Control Center |
EXHAUSTED | All configured payments have been processed |
Example Data Payloads
Active mandate:{
"mandateData": {
"mandateStatus": "ACTIVE",
"mandateCreateDate": "20211204",
"maskedMandateId": "md_94fxxxxxx3e15",
"siId": "si_cd2f0a1c-4dec-44d5-b0f3-297aee590d32",
"numberOfPaymentsProcessed": "4",
"numberOfPaymentsRemaining": "2"
}
}
{
"mandateData": {
"mandateStatus": "EXHAUSTED",
"mandateExhaustionDate": "20211209",
"numberOfPaymentsProcessed": "6",
"numberOfPaymentsRemaining": "0"
}
}
Authorizations
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
PayGlocal-issued mandate identifier.
Example:
"mandate_abc123"
Response
Mandate status retrieved.
Standard PayGlocal response envelope (GlocalApiResponse).
PayGlocal global transaction ID.
Example:
"gl_9c2645ed09edb22e"
High-level status of this API response.
Example:
"SUCCESS"
Human-readable message.
Response timestamp (DD/MM/YYYY HH:MM:SS).
Example:
"10/01/2026 15:00:00"
Empty on success; populated on failure.
Example:
""
Operation-specific payload. Shape varies by endpoint.
Field-level validation errors (populated on 4xx).
Show child attributes
Show child attributes
SI Status
curl --request POST \
--url https://api.payglocal.in/gl/v1/payments/si/status \
--header 'Content-Type: application/json' \
--header 'x-gl-token-external: <api-key>' \
--data '
{
"mandateId": "mandate_abc123"
}
'import requests
url = "https://api.payglocal.in/gl/v1/payments/si/status"
payload = { "mandateId": "mandate_abc123" }
headers = {
"x-gl-token-external": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)HttpResponse<String> response = Unirest.post("https://api.payglocal.in/gl/v1/payments/si/status")
.header("x-gl-token-external", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"mandateId\": \"mandate_abc123\"\n}")
.asString();const url = 'https://api.payglocal.in/gl/v1/payments/si/status';
const options = {
method: 'POST',
headers: {'x-gl-token-external': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({mandateId: 'mandate_abc123'})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));{
"gid": "gl_si_status_001",
"status": "SUCCESS",
"timestamp": "10/01/2026 15:00:00",
"reasonCode": "",
"data": {
"mandateId": "mandate_abc123",
"mandateStatus": "ACTIVE",
"nextDebitDate": "2026-05-01",
"completedPayments": 3,
"totalPayments": 12
}
}{
"gid": "gl_9c2645ed09edb22e",
"timestamp": "10/01/2026 15:00:00",
"reasonCode": "VALIDATION_ERROR",
"data": {},
"errors": null,
"errorDetails": [
{
"fieldName": "paymentData.totalAmount",
"message": "This field is required"
}
]
}{
"gid": "gl_9c2645ed09edb22e",
"timestamp": "10/01/2026 15:00:00",
"reasonCode": "UNAUTHORIZED",
"data": {},
"errors": null,
"errorDetails": [
{
"fieldName": "authorization",
"message": "Invalid x-gl-token-external"
}
]
}
