# API specification for Glomo

The Glomo API follows REST architecture, utilizing resource-oriented URLs for clarity. It handles form-encoded request bodies, delivers responses in JSON format, and operates with standard HTTP methods, authentication, and response codes.

You can download the complete API collection by using the download options on the right.

The machine-readable description is also published at a stable URL, bundled into a single self-contained document with every `$ref` resolved:

- [https://docs.glomopay.com/openapi.yaml](https://docs.glomopay.com/openapi.yaml)
- [https://docs.glomopay.com/openapi.json](https://docs.glomopay.com/openapi.json)

Point an API client or an AI coding agent at either URL to generate calls directly from the contract.


Version: 1.0.0
License: Apache 2.0

## Servers

Production server
```
https://api.glomopay.com/api/v1
```

## Security

### JWT

Your secret token to access the API. If you don't have one, please contact support.

Type: http
Scheme: bearer
Bearer Format: JWT

## Download OpenAPI description

 - [API specification for Glomo](https://docs.glomo.one/_bundle/api-reference/openapi.yaml)

## API Key

 - [POST /api-keys/rotate](https://docs.glomo.one/api-reference/openapi/api_key/rotateapikey.md): Rotates the secret API key for your account, generating a new key immediately. The previous key remains valid until `expire_after_in_seconds` has elapsed, giving you time to update your integrations.
## Balance

 - [Balance](https://docs.glomo.one/api-reference/openapi/balance/balance.md): Schema: #/components/schemas/Balance
 - [AllBalances](https://docs.glomo.one/api-reference/openapi/balance/allbalances.md): Schema: #/components/schemas/AllBalances
 - [GET /balances](https://docs.glomo.one/api-reference/openapi/balance/getbalance.md): Retrieves available balances for all currencies.
## Balance Conversions

 - [BalanceConversion](https://docs.glomo.one/api-reference/openapi/balance_conversions/balanceconversion.md): Schema: #/components/schemas/BalanceConversion
 - [POST /balance_conversions](https://docs.glomo.one/api-reference/openapi/balance_conversions/createbalanceconversion.md): Converts balance from one currency to another. In the API you can either send `target_amount` or `source_amount` and the API will calculate the other amount for you.
 - [GET /balance_conversions](https://docs.glomo.one/api-reference/openapi/balance_conversions/getbalanceconversions.md): Returns a list of your balance conversions. The balance conversions are returned sorted by creation date, with the most recent beneficiary appearing first.
## FX

 - [GET /fx-rate](https://docs.glomo.one/api-reference/openapi/fx_rate/getmidmarketrate.md): Returns the current mid-market exchange rate for a given currency pair. This is the base rate before any FX fees — FX fees will be charged on top of this rate. **Notes:** - This returns the mid-market
## Payment Link

 - [PaymentLink](https://docs.glomo.one/api-reference/openapi/payment_link/paymentlink.md): Schema: #/components/schemas/PaymentLink
 - [POST /payin](https://docs.glomo.one/api-reference/openapi/payment_link/createpayin.md): Create a shareable URL for a hosted payment page in one of two ways: - **Payment link without quote** — specify the amount, currency, expiry and payment methods inline (`PaymentLink`). - **Payment lin
 - [GET /payin](https://docs.glomo.one/api-reference/openapi/payment_link/getpayins.md): Returns a list of your payment links. The payment links are returned sorted by creation date, with the most recent payment link appearing first.
 - [GET /payin/{id}](https://docs.glomo.one/api-reference/openapi/payment_link/getpayinbyid.md): Retrieve details of a payment link.
 - [PATCH /payin/{id}](https://docs.glomo.one/api-reference/openapi/payment_link/updatepayin.md): Extends or reschedules a payment link that is still live. Only `expires_at` and `reminder_frequency` can be changed — no other field on a payment link is editable, and the amount, currency and custome
 - [PATCH /payin/{id}/cancel](https://docs.glomo.one/api-reference/openapi/payment_link/cancelpayin.md): Invalidate payment link and prevent further transactions
 - [PATCH /payin/{id}/update_rfi](https://docs.glomo.one/api-reference/openapi/payment_link/updatepayinrfi.md): Updates the RFI (Request for Information) document status for a payment link. This endpoint is used to submit required documents when a payment link is in 'action_required' status due to sanction scre
 - [PATCH /payin/{id}/mock_mark_reviewed](https://docs.glomo.one/api-reference/openapi/payment_link/mockreviewpaymentlink.md): Mark an under_review payment link reviewed
## Orders

 - [Orders](https://docs.glomo.one/api-reference/openapi/orders/orders.md): Schema: #/components/schemas/Orders
 - [POST /orders](https://docs.glomo.one/api-reference/openapi/orders/createorder.md): Create an order for checkout in one of two ways: - **Order without quote** — specify the amount, currency and payment methods inline (`Orders`). - **Order with quote** — pass a `quote_id` from `POST /
 - [GET /orders](https://docs.glomo.one/api-reference/openapi/orders/getorders.md): Returns a list of your orders. The orders are returned sorted by creation date, with the most recent order appearing first.
 - [GET /orders/{id}](https://docs.glomo.one/api-reference/openapi/orders/getorderbyid.md): Retrieve details of an order.
 - [PATCH /orders/{id}/update-rfi](https://docs.glomo.one/api-reference/openapi/orders/updateorderrfi.md): Updates the RFI (Request for Information) document status for an order. This endpoint is used to submit required documents when an order is in 'action_required' status due to sanction screening.
## Customer

 - [Customer](https://docs.glomo.one/api-reference/openapi/customer/customer.md): Schema: #/components/schemas/Customer
 - [POST /customer](https://docs.glomo.one/api-reference/openapi/customer/createcustomer.md): Creates a customer with basic information such as name, contact information, and address. To check complete list of API validations, click [here](/platform/validations#validations-for-creating-custome
 - [GET /customer](https://docs.glomo.one/api-reference/openapi/customer/getcustomers.md): Returns a list of your customers. The customers are returned sorted by creation date, with the most recent customers appearing first.
 - [GET /customer/{id}](https://docs.glomo.one/api-reference/openapi/customer/getcustomerbyid.md): Retrieves details of a Customer.
 - [PATCH /customer/{id}](https://docs.glomo.one/api-reference/openapi/customer/updatecustomer.md): Updates the contact details of an existing customer. Only the customer's `email` and `phone` can be updated. This is a partial update — send only the fields you want to change; any field you omit is l
 - [POST /customer/{id}/bank-accounts](https://docs.glomo.one/api-reference/openapi/customer/createcustomerbankaccount.md): Registers the bank account a customer sends money from. A customer holds one bank account at a time. Registering another one replaces the existing account, so use this endpoint to correct an account
 - [GET /customer/{id}/bank-accounts](https://docs.glomo.one/api-reference/openapi/customer/getcustomerbankaccounts.md): Returns the bank accounts registered against a customer.
## Payment

 - [Payment](https://docs.glomo.one/api-reference/openapi/payment/payment.md): Schema: #/components/schemas/Payment
 - [POST /payment](https://docs.glomo.one/api-reference/openapi/payment/createpayment.md): Creates a payment for an order or subscription. For initial payments, card details and a callback URL are required. For subsequent payments on `as_presented` subscriptions, the card from the last succ
 - [GET /payment](https://docs.glomo.one/api-reference/openapi/payment/getpayments.md): Returns a list of your payments, sorted by creation date with the most recent first. Filters combine with AND, with one exception: `payin_id` and `subscription_id` are mutually exclusive and sending b
 - [POST /payment/mock](https://docs.glomo.one/api-reference/openapi/payment/createmockpayment.md): This API is only available in sandbox mode. Creates a mock payment of specified amount for any given Payment link.
 - [GET /payment/{id}](https://docs.glomo.one/api-reference/openapi/payment/getpaymentbyid.md): Retrieves a single payment by ID. The payment must belong to the merchant the API key authenticates as — an ID that exists but belongs to another merchant returns `404`, not `403`. An ID that is not a
 - [GET /payment/{id}/eligible-payins](https://docs.glomo.one/api-reference/openapi/payment/geteligiblepayins.md): Lists the open payment links and orders that an unmatched bank transfer can connect to. For the full flow, see [Resolving Action Required Payments](/payin/action-required).
 - [POST /payment/{id}/connect-payin](https://docs.glomo.one/api-reference/openapi/payment/connectpayin.md): Connects an unmatched bank transfer to one of your open payment links or orders. Find the payin first with [List eligible payins](/api-reference/openapi/payment/geteligiblepayins). For the full flow,
 - [PATCH /payment/{id}/mock-funds-available](https://docs.glomo.one/api-reference/openapi/payment/mockupdatepaymentfundsavailable.md): This API is only available in sandbox mode. Updates the funds_available status of a payment to simulate the availability of funds for testing purposes.
## Refund

 - [Refund](https://docs.glomo.one/api-reference/openapi/refund/refund.md): Schema: #/components/schemas/Refund
 - [POST /refunds](https://docs.glomo.one/api-reference/openapi/refund/createrefund.md): Creates refund for a payment entity if the payment is in success state and no other refund exists.
 - [GET /refunds](https://docs.glomo.one/api-reference/openapi/refund/getrefunds.md): Returns a list of refunds in response. The refunds are returned sorted by creation date, with the most recent refund appearing first.
 - [GET /refunds/{id}](https://docs.glomo.one/api-reference/openapi/refund/getrefundbyid.md): Retrieves a single refund by ID, including its current status. A failed refund carries `error_code` and `error_message`, but these are not yet the specific reason recorded against the refund — every f
 - [PATCH /refunds/{id}/mock_update_status](https://docs.glomo.one/api-reference/openapi/refund/mockupdaterefund.md): Mark an in_progress refund as successful
## Price

 - [Price](https://docs.glomo.one/api-reference/openapi/price/price.md): Schema: #/components/schemas/Price
 - [POST /prices](https://docs.glomo.one/api-reference/openapi/price/createprice.md): Creates a price governing the referral fee applied to payins, which you then attach to a payin or an order by passing its ID as `price_id`. The fee it produces is returned as `referral_fee` on the pay
 - [GET /prices](https://docs.glomo.one/api-reference/openapi/price/getprices.md): Returns the referral-fee prices configured for your business, sorted by creation date with the most recent first. Only referral fees are returned. Glomo's other pricing — transaction fees, FX fees — i
 - [GET /prices/{id}](https://docs.glomo.one/api-reference/openapi/price/getpricebyid.md): Retrieves a single price by ID. Note that the response does not indicate whether this price is your current default — that flag is accepted on create but is not returned on read. The same access rule
## Dynamic Fee Split

 - [DynamicPrice](https://docs.glomo.one/api-reference/openapi/pricing_split/dynamicprice.md): Schema: #/components/schemas/DynamicPrice
 - [PricingSplit](https://docs.glomo.one/api-reference/openapi/pricing_split/pricingsplit.md): Schema: #/components/schemas/PricingSplit
 - [GET /prices/dynamic](https://docs.glomo.one/api-reference/openapi/pricing_split/getdynamicprices.md): Returns the payin pricing rules configured for your business whose fee bearer is dynamic. These are the rules you may declare a share of, with [Create a pricing split](#tag/pricing_split). Use the rul
 - [POST /prices/dynamic-splits](https://docs.glomo.one/api-reference/openapi/pricing_split/createpricingsplit.md): Declare your share of a dynamic pricing rule's fee. The customer bears the remainder. List the rules you may declare against with [List dynamic pricing rules](#tag/pricing_split). Provide `price_id` a
 - [GET /prices/dynamic-splits](https://docs.glomo.one/api-reference/openapi/pricing_split/getpricingsplits.md): Returns the pricing splits your business has declared, sorted by creation date with the most recent split first. Pass `price_id` to return only the splits declared against one dynamic pricing rule.
## Payment Session

 - [POST /payment-sessions](https://docs.glomo.one/api-reference/openapi/payment_session/createpaymentsession.md): Creates a payment session — a configurable workflow that wraps a payment journey with pre-steps and/or post-steps such as identity verification, compliance checks, or data collection. The exact step s
## Subscription

 - [Subscription](https://docs.glomo.one/api-reference/openapi/subscription/subscription.md): Schema: #/components/schemas/Subscription
 - [CreateSubscriptionResponse](https://docs.glomo.one/api-reference/openapi/subscription/createsubscriptionresponse.md): Schema: #/components/schemas/CreateSubscriptionResponse
 - [GET /subscriptions](https://docs.glomo.one/api-reference/openapi/subscription/getsubscriptions.md): Returns a list of subscriptions matching some criteria. The subscriptions are returned sorted by creation date, with the most recent subscriptions appearing first.
 - [POST /subscriptions](https://docs.glomo.one/api-reference/openapi/subscription/createsubscription.md): Creates a new subscription for a customer with specified billing plan and schedule. The subscription will be created in 'created' status and will be activated when the customer completes the first pay
 - [GET /subscriptions/{id}](https://docs.glomo.one/api-reference/openapi/subscription/getsubscriptionbyid.md): Retrieves the details of a specific subscription by its unique identifier.
 - [PATCH /subscriptions/{id}/pause](https://docs.glomo.one/api-reference/openapi/subscription/pausesubscription.md): Pauses an active subscription. While paused, the subscription will not process any payments. A paused subscription can be resumed later using the resume endpoint.
 - [PATCH /subscriptions/{id}/resume](https://docs.glomo.one/api-reference/openapi/subscription/resumesubscription.md): Resumes a paused subscription. Once resumed, the subscription will continue processing payments according to its original schedule. Only subscriptions in 'paused' status can be resumed.
 - [PATCH /subscriptions/{id}/cancel](https://docs.glomo.one/api-reference/openapi/subscription/cancelsubscription.md): Cancels a subscription. Once cancelled, the subscription will stop processing future payments. This action cannot be undone, but you can create a new subscription if needed.
 - [PATCH /subscriptions/{id}/next-payment-date](https://docs.glomo.one/api-reference/openapi/subscription/updatenextpaymentdate.md): Updates the next payment date of a subscription.
## Quote

 - [POST /quotes](https://docs.glomo.one/api-reference/openapi/quote/createquote.md): Create one or more pricing quotes for a `payout` or `payin`. Each quote locks an exchange rate and fee breakdown for fixed period. Provide exactly one of `source_amount` or `destination_amount`. On a
## Payout

 - [Payout](https://docs.glomo.one/api-reference/openapi/payout/payout.md): Schema: #/components/schemas/Payout
 - [POST /payouts](https://docs.glomo.one/api-reference/openapi/payout/createpayout.md): Create a payout in one of two ways: - **Payout without quote** — specify the beneficiary, currencies and amount inline. Fees and the FX rate are determined at creation time (`CreatePayoutWithoutQuoteR
 - [GET /payouts](https://docs.glomo.one/api-reference/openapi/payout/getpayouts.md): Returns a list of your payouts, sorted by creation date with the most recent first. Filters combine with AND, so a `status` and a `beneficiary_id` together return only payouts matching both. Payouts i
 - [GET /payouts/{id}](https://docs.glomo.one/api-reference/openapi/payout/getpayoutbyid.md): Retrieves a single payout by ID. Unlike `GET /payouts`, this returns a payout in any state, including one still in draft that the list endpoint hides. The payout must belong to the merchant the API ke
 - [PATCH /payouts/{id}/cancel](https://docs.glomo.one/api-reference/openapi/payout/cancelpayout.md): Cancel a payout that has not yet reached a stage where it can no longer be stopped. A payout with `status: queued` can be cancelled at any time while it waits for the balance to cover it. Nothing is r
 - [PATCH /payouts/{id}/update_rfi](https://docs.glomo.one/api-reference/openapi/payout/updaterfipayout.md)
 - [PATCH /payouts/mock](https://docs.glomo.one/api-reference/openapi/payout/mockupdatepayoutstatus.md): Drives one of your payouts to a chosen status without any real money moving, so you can exercise your webhook handling and reconciliation against statuses that are otherwise hard to reach on demand. T
## Beneficiary V2

 - [BeneficiaryV2](https://docs.glomo.one/api-reference/openapi/beneficiary_v2/beneficiaryv2.md): Schema: #/components/schemas/BeneficiaryV2
 - [POST /v2/beneficiaries](https://docs.glomo.one/api-reference/openapi/beneficiary_v2/createbeneficiaryv2.md): Creates a beneficiary with structured nested objects for beneficiary details, address, and bank account or UPI information.
 - [GET /v2/beneficiaries](https://docs.glomo.one/api-reference/openapi/beneficiary_v2/listbeneficiariesv2.md): Returns a paginated list of beneficiaries. Optionally filter by status.
 - [GET /v2/beneficiaries/{id}](https://docs.glomo.one/api-reference/openapi/beneficiary_v2/getbeneficiarybyidv2.md): Retrieves the details of an existing beneficiary by ID.
 - [PATCH /v2/beneficiaries/{id}/mock-review](https://docs.glomo.one/api-reference/openapi/beneficiary_v2/mockreviewbeneficiaryv2.md): Simulates a review action (approve or reject) on a beneficiary. This endpoint is only available in sandbox/non-production environments.
## Bank Account Validation

 - [BankAccountValidation](https://docs.glomo.one/api-reference/openapi/bank_account_validation/bankaccountvalidation.md): Schema: #/components/schemas/BankAccountValidation
 - [POST /bank_account_validation](https://docs.glomo.one/api-reference/openapi/bank_account_validation/validatebankaccount.md): Checks with the destination bank that an account exists and that the holder name matches, so you can catch a bad account before you pay out to it rather than after a failed transfer. Identify the acco
 - [GET /bank_account_validation](https://docs.glomo.one/api-reference/openapi/bank_account_validation/getbankaccountvalidations.md): Returns the bank account validations your business has run, sorted by creation date with the most recent first. Because `POST /bank_account_validation` is chargeable, use this to check whether an acco
## Document

 - [Document](https://docs.glomo.one/api-reference/openapi/document/document.md): Schema: #/components/schemas/Document
 - [POST /document](https://docs.glomo.one/api-reference/openapi/document/createdocument.md): Uploads a file and returns a document record you can reference from other resources — as the invoice or supporting paperwork on a payin or payout, or as evidence when responding to a request for infor
 - [GET /document](https://docs.glomo.one/api-reference/openapi/document/getdocuments.md): Returns a list of your documents. The documents are returned sorted by creation date, with the most recent documents appearing first.
 - [GET /document/{document_id}](https://docs.glomo.one/api-reference/openapi/document/getdocumentbyid.md): Retrieve a single document by its unique identifier.
## Internal Transfer

 - [InternalTransfer](https://docs.glomo.one/api-reference/openapi/internal_transfer/internaltransfer.md): Schema: #/components/schemas/InternalTransfer
 - [POST /internal-transfer](https://docs.glomo.one/api-reference/openapi/internal_transfer/createinternaltransfer.md): Creates an internal transfer between two merchant accounts.
## Settlement

 - [Settlement](https://docs.glomo.one/api-reference/openapi/settlement/settlement.md): Schema: #/components/schemas/Settlement
 - [POST /settlements](https://docs.glomo.one/api-reference/openapi/settlement/createsettlement.md): Withdraws an amount from one of your currency balances to the withdrawal account registered for that currency, and returns the resulting settlement in `pending`. Only available to businesses on manual
 - [GET /settlements](https://docs.glomo.one/api-reference/openapi/settlement/getsettlements.md): Returns a list of your settlements. The settlements are returned sorted by creation date, with the most recent settlement appearing first.
 - [POST /settlements/mock-trigger](https://docs.glomo.one/api-reference/openapi/settlement/triggermocksettlement.md): This API is only available in sandbox mode. Queues a settlement run for your account so you can exercise settlements without a wait for the daily settlement schedule.
 - [GET /settlements/{id}](https://docs.glomo.one/api-reference/openapi/settlement/getsettlementbyid.md): Returns a specific settlement by its unique identifier.
 - [GET /settlements/{id}/transactions](https://docs.glomo.one/api-reference/openapi/settlement/gettransactionslinkedtosettlement.md): Returns a list of transactions that are linked to a specific settlement by its unique identifier.
## Virtual Account

 - [VirtualAccount](https://docs.glomo.one/api-reference/openapi/virtual_account/virtualaccount.md): Schema: #/components/schemas/VirtualAccount
 - [GET /virtual-accounts](https://docs.glomo.one/api-reference/openapi/virtual_account/getvirtualaccounts.md): Returns the customer's virtual accounts, sorted by creation date (newest first), using the customer's JWT token for access.
 - [DELETE /virtual-accounts](https://docs.glomo.one/api-reference/openapi/virtual_account/closevirtualaccount.md): Closing active virtual accounts will be based on the specified payment type and currency. The endpoint closes all virtual accounts for a given payment type and currency. Once closed, the virtual accou
 - [POST /v2/virtual-accounts](https://docs.glomo.one/api-reference/openapi/virtual_account/createvirtualaccountv2.md): Creates a new virtual account with the specified payment type and currency. Virtual accounts provide unique account numbers that can be used to receive payments for customers. This endpoint returns HT
## Platform

 - [Merchant](https://docs.glomo.one/api-reference/openapi/platform/merchant.md): Schema: #/components/schemas/Merchant
 - [POST /platform/merchants](https://docs.glomo.one/api-reference/openapi/platform/onboardmerchant.md): Allows platforms to onboard a new merchant onto Glomo.
 - [GET /platform/merchants/{merchant_id}](https://docs.glomo.one/api-reference/openapi/platform/getmerchant.md): Retrieves details of a specific merchant by their merchant ID.
 - [PATCH /platform/merchants/{merchant_id}](https://docs.glomo.one/api-reference/openapi/platform/updatemerchant.md): Updates an existing merchant. Currently supports attaching a `passport` object for individual merchants and a `registration_date` for business merchants; more fields may be supported in future. The ap
 - [PATCH /platform/merchants/status-update](https://docs.glomo.one/api-reference/openapi/platform/updatemerchantstatus.md): Allows platforms to update the status of a merchant. This endpoint is available in non-production environments only.
## KYC Link

 - [KycLinkDetail](https://docs.glomo.one/api-reference/openapi/kyclink/kyclinkdetail.md): Schema: #/components/schemas/KycLinkDetail
 - [GET /kyc-links](https://docs.glomo.one/api-reference/openapi/kyclink/listkyclinks.md): Returns a list of KYC links. The links are returned sorted by creation date, with the most recent links appearing first. Optionally filter by status.
 - [POST /kyc-links](https://docs.glomo.one/api-reference/openapi/kyclink/createkyclink.md): Creates a KYC link that can be shared with a customer to complete identity verification. Optionally associate with an existing customer via `customer_id`, or with a new customer via `email`. Both fiel
 - [GET /kyc-links/{id}](https://docs.glomo.one/api-reference/openapi/kyclink/getkyclinkbyid.md): Retrieves the details of a KYC link by its unique identifier, including the verification status, customer ID and the list of KYC documents submitted. Each document in the `documents` array includes a
## Investor Journey

 - [POST /investor-journey](https://docs.glomo.one/api-reference/openapi/investor_journey/createinvestorjourney.md): Creates an investor portal URL for the given email, PAN, and scheme. Requires a platform merchant JWT.
## RFI

 - [GET /rfis](https://docs.glomo.one/api-reference/openapi/rfi/getrfis.md): Returns your business's RFIs across every entity type — payments, payins, payouts, refunds, orders and subscriptions — not just a single resource. Use `status` and `search` to filter the list, and the
 - [GET /rfis/{id}](https://docs.glomo.one/api-reference/openapi/rfi/getrfi.md): Returns the full detail of a single RFI, including its status, the documents required to resolve it, the instructions to follow, and any reviewer or uploader comments. The RFI is looked up by its `id`
 - [PATCH /rfis/{id}/respond](https://docs.glomo.one/api-reference/openapi/rfi/respondrfi.md): Submits the documents requested by a Request for Information (RFI). An RFI is raised when Glomo's compliance checks need additional information — for example, a sanctions-screening hold — before a tra
