Skip to content

Retrieve a payment session

Request

Returns the current state of a payment session: its status, failure reason, scheme, amount and the records it has produced so far (KYC, folio, order, payments, folio transaction and refunds). The body is the same snapshot sent as data in the payment_session webhook, plus failure_reason.

Who can read it: the fund that owns the session, or the distributor the session is credited to. Any other business gets 404, as if the session did not exist.

status is read live, so a session past expires_at with no money moved reads expired here before the expired webhook is sent.

Security
JWT
Path
idstringrequired

The ID of the payment session, prefixed with psess_.

Example:psess_6819d8046mpKt
curl -i -X GET \
  https://api.glomopay.com/api/v1/payment-sessions/psess_6819d8046mpKt \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Payment session retrieved successfully.

Bodyapplication/json
idstring

Unique identifier for the payment session, prefixed with psess_.

Example:"psess_6819d8046mpKt"
session_typestring

The workflow type of the session. See session_type on Create a payment session.

Enum:"kyc_lrs""kyc_lrs_folio""kyc_nri_individual_verification""kyc_nri_joint_verification""kyc_inbound_folio"
Example:"kyc_lrs_folio"
statusstring

Where the investor is in the session. This is a finer status than the active returned when the session is created.

  • created — the session exists; the investor has not started KYC.
  • kyc_in_progress — the investor is going through KYC.
  • kyc_done — KYC is complete; no money has moved yet.
  • payment_pending — a payment has started but has not succeeded.
  • remittance_claimed — the investor's bank is not supported for LRS on Glomo, so they paid the fund directly and gave the transfer reference (UTR). It is the investor's claim until units are allotted.
  • paid — a payment on the session's order succeeded.
  • completed — the investor finished every step. Final.
  • failed — the session ended without finishing. failure says why. Final.
  • expired — the session passed expires_at before any money moved. Final.

Once money has moved (payment_pending, remittance_claimed or paid), the session keeps that status after expires_at, because units can still be allotted.

Enum:"created""kyc_in_progress""kyc_done""payment_pending""remittance_claimed""paid""completed""failed""expired"
Example:"paid"
failureobject or null

Why the session failed. null unless status is failed.

created_atstring, (date-time)

ISO 8601 timestamp when the session was created.

Example:"2026-11-03T05:12:40Z"
expires_atstring, (date-time)

ISO 8601 timestamp when the session expires if no money has moved.

Example:"2026-11-10T05:12:40Z"
updated_atstring, (date-time)

ISO 8601 timestamp of the last change to the session record.

Example:"2026-11-03T06:02:11Z"
customer_idstring or null

The customer (cust_ prefix) the investor's KYC belongs to. null until KYC starts.

Example:"cust_6819d7d0lrLvP"
schemeobject or null

The AMC scheme the session is for. null for session types without a scheme. Before the investor chooses, this is the scheme of the prefilled plan.

amountobject or null

The investment amount: the investor's confirmed amount, or the prefilled amount until they confirm. null when neither is set.

expected_entitiesArray of strings

The keys of entities this session will produce, from its session_type. A key listed here and still null (or an empty array) means "not created yet"; a key not listed will never appear, except refunds.

  • kyc_lrs — kyc, order, payments
  • kyc_lrs_folio, kyc_inbound_folio — kyc, folio, order, payments, folio_transaction
  • kyc_nri_individual_verification — kyc
  • kyc_nri_joint_verification — kyc, folio

For kyc_lrs_folio, once KYC completes with a bank that is not supported for LRS on Glomo, the list becomes kyc, folio, folio_transaction: the investor pays the fund directly, so no order or payment is created.

Items Enum:"kyc""folio""order""payments""folio_transaction"
Example:
[ "kyc", "folio", "order", "payments", "folio_transaction" ]
entitiesobject

The records the session has produced. Every key in expected_entities is present: null (or [] for payments) until its record exists. refunds is added only when a refund exists.

failure_reasonstring or null

Same as failure.message. null unless status is failed.

Example:null
Response
{ "id": "psess_6819d8046mpKt", "session_type": "kyc_lrs_folio", "status": "paid", "failure": null, "created_at": "2026-11-03T05:12:40Z", "expires_at": "2026-11-10T05:12:40Z", "updated_at": "2026-11-03T06:02:11Z", "customer_id": "cust_6819d7d0lrLvP", "scheme": { "scheme_code": "SCH001", "name": "Example Global Equity Fund - Regular Plan", "plan": "regular", "distributor_arn": "ARN12345" }, "amount": { "value": 500000, "currency": "USD" }, "expected_entities": [ "kyc", "folio", "order", "payments", "folio_transaction" ], "entities": { "kyc": { … }, "folio": null, "order": { … }, "payments": [ … ], "folio_transaction": null }, "failure_reason": null }