---
title: "SI Subsequent Payment"
method: POST
path: "/gl/v1/payments/si/sale"
tags: ["Standing Instructions"]
---

# SI Subsequent Payment

`POST /gl/v1/payments/si/sale`

Triggers a subsequent debit for an **on-demand** (`frequency: ONDEMAND`) mandate only.
**Not used for auto debit** — scheduled mandates are debited by PayGlocal.
Register via [PayDirect — SI on demand](/api-reference/payments-v2/paydirect/si-on-demand) or
[PayCollect — SI on demand](/api-reference/payments-v2/paycollect/si-on-demand).

## Request body

- object — 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.
  - `merchantUniqueId` string — Merchant's secondary unique reference.
  - `refundType` 'F' | 'P' — Full or partial refund indicator (used on refund calls).
  - `refundAction` string — Refund lifecycle action.
  - `captureType` 'F' | 'P' — Full or partial capture indicator (used on capture calls).
  - `captureTxn` boolean — If true on `/initiate`, the transaction is auto-captured post-auth.
  - `paymentData` Payment, required — Payment instrument + amount details for a transaction.
    - `totalAmount` string, required — Transaction amount as a string (preserves decimal precision).
    - `txnCurrency` string, required — ISO 4217 currency code.
    - `cardData` Card — Raw card data. Required when initiating a card transaction with `paymentType=CARD`.
      - `number` string — Primary Account Number (PAN). Digits only.
      - `expiryMonth` string — Two-digit expiry month.
      - `expiryYear` string — Four-digit expiry year.
      - `securityCode` string — CVV / CVC.
      - `type` string — Card network (derived by PayGlocal if omitted).
    - `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.
    - `authenticationData` Authentication — 3DS / payer authentication preference.
      - `type` '3DS' | 'NO_THREE_DS' — Authentication mode.
  - `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
  - `standingInstruction` StandingInstruction, required — Required on initiate when registering a mandate. Used on SI sale/status with `mandateId`.
    - `data` SIData, required — Mandate configuration in `standingInstruction.data`.
      - `maxAmount` string — Maximum debit amount for recurring transactions. Only when `type` is `VARIABLE`.
      - `amount` string — Fixed mandate debit amount. Mandatory when `type` is `FIXED`.
      - `numberOfPayments` string, required — Total recurring debits allowed. Positive integer or `"N"` for unlimited.
      - `frequency` 'ONDEMAND' | 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'QUARTERLY' | 'HALFYEARLY' | 'YEARLY', required — Frequency of mandate execution. `ONDEMAND`: merchant triggers each payment. `WEEKLY`, `BIWEEKLY`, `MONTHLY`, `QUARTERLY`, `HALFYEARLY`, `YEARLY`: system auto-initiates; first payment on `startDate`, subsequent payments at the configured gap.
      - `type` 'FIXED' | 'VARIABLE', required — `VARIABLE` (≤ `maxAmount`) or `FIXED` (exact `amount` each debit).
      - `mode` 'REGISTER' | 'PAYREGISTER', required — `REGISTER` or `PAYREGISTER`.
      - `startDate` string — Mandate start date (`yyyyMMdd`). Must be after current date. Required for auto debit.
      - `endDate` string — Mandate end date (`yyyyMMdd`). Optional.
    - `action` 'REVOKE' | 'PAUSE' | 'RESUME' — SI lifecycle action.
    - `mandateId` string — PayGlocal-issued mandate identifier.
    - `schedulerId` string
    - `scheduledId` string
  - `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 `200`

Subsequent SI debit accepted.

- ApiResponse — Standard PayGlocal response envelope (`GlocalApiResponse`).
  - `gid` string — PayGlocal global transaction ID.
  - `status` string — High-level status of this API response.
  - `message` string — Human-readable message.
  - `timestamp` string — Response timestamp (DD/MM/YYYY HH:MM:SS).
  - `reasonCode` string — Empty on success; populated on failure.
  - `data` object — Operation-specific payload. Shape varies by endpoint.
  - `errors` object — Field-level validation errors (populated on 4xx).

## 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/versions/498446abc56d/schema)
