---
title: "PayCollect on-demand SI — register mandate (request body)"
method: POST
path: "/gl/v1/payments/initiate/paycollect"
tags: ["Payment"]
---

# PayCollect on-demand SI — register mandate (request body)

`POST /gl/v1/payments/initiate/paycollect`

**Endpoint:** `POST /gl/v1/payments/initiate/paycollect` — same URL for GPI, on-demand SI, auto-debit, and authorize; only the request body differs.

For merchants with **on-demand SI** enabled on PayGlocal. **International cards only** on hosted checkout. Includes `standingInstruction.data` only.

## Request body

- TransactionRequestPayCollectSIOnDemand — 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.
  - `merchantUniqueId` string — Optional stable merchant-side ID for idempotency and reconciliation. Alphanumeric only.
  - `riskData` Risk — Risk & analytics payload forwarded to fraud engines.
    - `customerData` Customer — Payer identity for risk evaluation.
      - `merchantAssignedCustomerId` string
      - `firstName` string
      - `lastName` string
      - `emailId` string, email
      - `callingCode` string
      - `mobileNumber` string
    - `shippingData` Shipping — Shipping address for physical-goods orders.
      - `firstName` string
      - `lastName` string
      - `emailId` string, email
      - `addressStreet1` string
      - `addressStreet2` string
      - `addressCity` string
      - `addressState` string
      - `addressPostalCode` string
      - `addressCountry` string
    - `orderData` RiskItem[]
      - `itemId` string
      - `itemName` string
      - `itemQuantity` integer
      - `itemPrice` string
      - `itemCategory` string
  - `merchantCallbackURL` string, uri, required — Customers are redirected here post payment completion.
  - `paymentData` PaymentPayCollectInitiateHostedSI, required — Hosted checkout payment details for PayCollect standing instruction registration. Do **not** send `cardData`, `tokenData`, or `authenticationData` — the customer registers the mandate on `redirectUrl`.
    - `totalAmount` string, required — Transaction amount as a decimal string. Supports up to 4 decimal places.
    - `txnCurrency` string, required — ISO 4217 currency code. Must be uppercase (e.g. `INR`, `USD`, `EUR`).
    - `billingData` Billing — Billing address + contact details of the payer.
      - `firstName` string
      - `lastName` string
      - `emailId` string, email
      - `callingCode` string
      - `phoneNumber` string
      - `addressStreet1` string
      - `addressStreet2` string
      - `addressCity` string
      - `addressState` string
      - `addressStateCode` string
      - `addressPostalCode` string
      - `addressCountry` string — ISO 3166-1 alpha-3 country code.
  - `standingInstruction` StandingInstructionOnDemand, required
    - `data` SIDataOnDemand, required — Mandate fields for standing instruction registration when **on-demand SI** is enabled on your PayGlocal MID. `frequency` is not limited to `ONDEMAND` — set the schedule you need. Do **not** send `startDate` or `endDate` — those apply only to [auto debit](/api-reference/payments-v2/paycollect/si-auto-debit).
      - `maxAmount` string, required — Maximum debit amount for recurring transactions. Numeric string. Used when `type` is `VARIABLE` (debit ≤ `maxAmount` per transaction).
      - `amount` string, required — Fixed mandate debit amount. Numeric string. Used when `type` is `FIXED` (exact amount each debit).
      - `numberOfPayments` string, required — Total recurring debits allowed. Any positive integer from `1` to `N`, or `"N"` for unlimited / infinite recurring debits.
      - `frequency` 'ONDEMAND' | 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'QUARTERLY' | 'HALFYEARLY' | 'YEARLY', required — Mandate schedule label (`ONDEMAND`, `WEEKLY`, `MONTHLY`, etc.). When **on-demand SI** is enabled on your MID, PayGlocal does **not** auto-debit on this schedule — you trigger each subsequent payment manually via the [SI sale API](/api-reference/standing-instructions/si-subsequent-payment), regardless of `frequency`.
      - `type` 'FIXED' | 'VARIABLE', required — `VARIABLE` (≤ `maxAmount`) or `FIXED` (exact `amount` each debit).

## Response `200`

Returned immediately from initiate. Redirect the customer to `data.redirectUrl`, then poll `data.statusUrl` or [Get Transaction Status](/api-reference/payments-v2/common/get-transaction-status). When mandate registration succeeds, `data.mandateId` may be present in `data`.

- ApiResponsePayCollectInitiateSI — 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.
  - `status` string — High-level status. Typically `INPROGRESS` immediately after initiate.
  - `message` string — Human-readable status message.
  - `timestamp` string — Response timestamp (`DD/MM/YYYY HH:MM:SS`).
  - `reasonCode` string — Success code on initiate (e.g. `200`). See `4xx` responses for error codes.
  - `data` InitiateResponseDataPayCollectSI — Standing instruction registration may also return **`mandateId`** in `data` — store it for SI sale, status, and cancel.
    - `redirectUrl` string, uri — Hosted checkout URL — redirect the customer's browser here via **HTTP GET** to complete payment.
    - `statusUrl` string, uri — Pre-authenticated URL to poll status after the customer completes payment.
    - `merchantTxnId` string — Echo of `merchantTxnId` from the initiate request body.
    - `mandateId` string — PayGlocal mandate identifier when `standingInstruction` was sent. Not returned on later transactions.
  - `errors` object, nullable — `null` on success.

## Other responses

- `400` — Validation error — missing or invalid fields.
- `401` — Authentication failed — invalid API key or digest.

---

[API](https://skmtc.net/payglocal/apis/payglocal-api.md) · [All operations](https://skmtc.net/payglocal/apis/payglocal-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/payglocal/payglocal-api/revisions/498446abc56d/schema)
