Skip to content

Create a mock payment

Request

This API is only available in sandbox mode. Creates a mock payment of specified amount for any given Payment link.

Security
JWT
Bodyapplication/jsonrequired
amountinteger, >= 100required

Amount in minor units (cents), minimum 100. Reserved sandbox test amount: use exactly 6623 (in any currency) to force a sanctions-screening hit. The payment still succeeds, but its compliance_status is set to action_required and a payment-screening RFI is raised against it, with settlement held until the RFI is resolved. This works for any payment method and whether or not a customer is attached. See Compliance Reviews & RFIs on Successful Payments.

Example:10000
currencystring, (iso-4217)required

The currency code in ISO 4217 format

Example:"AED"
payment_methodstring

Required if no payin_id is passed.

Value:"BankTransfer"
Example:"BankTransfer"
payin_idstring

The unique identifier for the payin. Required if no payment_method is passed.

Example:"payin_E602dMzgjpDC"
remitter_namestring

Name of the remitter. Optional, defaults to Non_Sanctioned_Entity

Enum:"Sanctioned_Entity""Non_Sanctioned_Entity"
Example:"Non_Sanctioned_Entity"
POST
/payment/mock
curl -i -X POST \
  https://api.glomopay.com/api/v1/payment/mock \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "amount": 10000,
    "currency": "AED",
    "payment_method": "BankTransfer",
    "payin_id": "payin_E602dMzgjpDC",
    "remitter_name": "Non_Sanctioned_Entity"
  }'

Responses

Payment created successfully

Bodyapplication/json
idstringread-only

The unique identifier for the payment.

Example:"payt_E602dMzgjpDC"
payin_idstring or null

The unique identifier for the payin. This is set only for payments associated to a payin.

Example:"payin_E602dMzgjpDC"
payin_typestring or null

The type of the payin. This is set only for payments associated to a payin.

Enum:"payment_link""orders""add_funds"
subscription_idstring or null

The unique identifier for the subscription. This is set only for subscription-related payments.

Example:"sub_68877570b5zeE"
statusstringread-only

The status of the payment.

Enum:"success""failed""action_required""in_progress""under_review"
compliance_statusstring or nullread-only

The compliance review status of the payment. Present only for payments that have been screened for sanctions or transaction-monitoring holds; null for payments that were not screened. This is separate from status — a payment can be status: success while compliance_status is action_required, meaning the payment itself completed but funds are held pending compliance review. See the rfi field for what's required when action_required.

Enum:"action_required""under_review""approved""rejected"
Example:"action_required"
rfiobjectread-only

Present only when a compliance-related Request For Information exists on this payment. Describes why the payment was flagged and what's required to resolve it.

payment_currencystring, (iso-4217, case-insensitive)

The currency in which the customer pays. The currency code is in ISO 4217 format. For example, AED.

Example:"AED"
payment_amountnumber, >= 1

The total amount the customer pays in cents (includes customer-borne fees if applicable). For example, 374580 cents is 3,745.80 AED. The currency is determined by the payment_currency field.

Example:374580
converted_currencystring, (iso-4217, case-insensitive)

The settlement currency after conversion. The currency code is in ISO 4217 format. For example, USD.

Example:"USD"
converted_amountnumber, >= 1

The final amount after currency conversion in cents (includes all fees). For example, 102000 cents is $1,020.00. The currency is determined by the converted_currency field.

Example:102000
requested_currencystring, (iso-4217, case-insensitive)

The currency that was originally requested by the merchant. The currency code is in ISO 4217 format. For example, USD.

Example:"USD"
requested_amountnumber, >= 1

The amount originally requested by the merchant in cents, excluding customer-borne fees. For example, 100000 cents is $1,000.00. The currency is determined by the requested_currency field.

Example:100000
purpose_codestring

The purpose code of the payment. This should match the purpose code of the payin.

Example:"S0001"
sender_namestring

The name of the sender.

Example:"John Doe"
notesobject

Custom field values for this payment. See Custom Fields.

Example:
{ "policy_number": "POL-001" }
error_codestringread-only

The error code for the respective error. Error code mappings can be found in the product guide.

Example:"PAYMENT_DECLINED"
error_descriptionstringread-only

The merchant-facing error description corresponding to the error code. Operational copy for the merchant. See customer_error_description for the copy meant for the end-customer.

Example:"The payment attempt was declined. This could be due to issuer rejection, risk assessment, or restrictions on the card or account. The customer should
customer_error_descriptionstring or nullread-only

Customer-facing error copy, written for the merchant to relay to their end-customer. Derives from the same error_code as error_description but targets a different audience. null when there is no error_code, or when the error code has no customer-facing variant (some codes are merchant-only, e.g. ACCOUNT_LOCKED, LOGGED_IN_ELSEWHERE, FUNCTIONALITY_RESTRICTED).

Example:"Your payment could not be completed. Please try a different payment method or contact your bank."
paid_atstring or null, (date-time)read-only

The timestamp at which the payment was completed. null if the payment has not been paid.

Example:"2024-12-06T11:38:37.130Z"
fee_bearerstring

The party bearing the fees for the payment.

Enum:"customer""merchant""split"
Example:"customer"
fee_collection_modestring or null

When merchant-borne fees are collected. immediate deducts fees up front; deferred invoices them later. null when not applicable.

Enum:"immediate""deferred"
Example:"immediate"
created_atstring, (date-time)read-only

The creation timestamp of the payment.

Example:"2024-12-06T11:38:37.130Z"
updated_atstring, (date-time)read-only

The last update timestamp of the payment.

Example:"2024-12-06T11:38:37.130Z"
customer_idstring

The unique identifier for the customer.

Example:"cust_E602sMzgjpDC"
merchant_idstring

The unique identifier for the merchant (business) that owns the payment.

Example:"merch_68c777fcOOMpl"
product_namestring or nullread-only

The name of the product associated with the payment.

Example:"ShieldGuard Insurance"
product_descriptionstring or nullread-only

The description of the product associated with the payment.

Example:"Simple, monthly insurance plan that covers your basic belongings and key digital assets"
countrystring, (iso-3166-1-alpha-3, case-insensitive)

The country of the sender. Country should be sent as a ISO 3166-1 alpha-3 code.

Example:"Ind"
fee_breakdownobject

A detailed breakdown of the fees charged for the payment, grouped by fee type. Each fee type holds one entry per fee bearer, with any applicable taxes (for example, GST) nested under the entry's taxes array.

documentsArray of objects(AttachedDocument)

The attached documents for the payment.

settlement_idstring

A unique identifier generated by Glomo for the settlement batch in which this payment is included. This ID can be used to track and reconcile payments against corresponding settlements.

funds_availableboolean

Indicates whether the funds for this payment are currently available with Glomo.

Values:

  • true - Funds are available with Glomo and can be included in a payout or settlement
  • false - Funds are still in transit with Glomo's payment partners and are not yet available for use
payment_methodobject

Specifies the method used by the customer to complete the payment.

auto_debit?boolean or nullread-only

Indicates whether the payment was made via auto-debit. Present only for subscription payments; true for an auto-debit payment, false for a manual subscription payment.

Example:true
feesobjectdeprecated

Deprecated. Use fee_breakdown instead. The fees charged for the payment, aggregated per fee type. fee_breakdown provides a per-bearer breakdown including any applicable taxes.

Response
{ "id": "payt_E602dMzgjpDC", "payin_id": "payin_E602dMzgjpDC", "payin_type": "payment_link", "subscription_id": "sub_68877570b5zeE", "status": "success", "compliance_status": "action_required", "rfi": { "id": "rfi_6a72a39b38jDD", "reason_code_description": "The payment has been flagged for a compliance review and requires additional information before it can credited to your account.", "reason_code": "COMPLIANCE_REVIEW", "response_deadline": "2026-08-21T10:29:00Z", "documents_required": [] }, "payment_currency": "AED", "payment_amount": 374580, "converted_currency": "USD", "converted_amount": 102000, "requested_currency": "USD", "requested_amount": 100000, "purpose_code": "S0001", "sender_name": "John Doe", "notes": { "policy_number": "POL-001" }, "error_code": "PAYMENT_DECLINED", "error_description": "The payment attempt was declined. This could be due to issuer rejection, risk assessment, or restrictions on the card or account. The customer should contact their bank or try a different payment method.", "customer_error_description": "Your payment could not be completed. Please try a different payment method or contact your bank.", "paid_at": "2024-12-06T11:38:37.130Z", "fee_bearer": "customer", "fee_collection_mode": "immediate", "created_at": "2024-12-06T11:38:37.130Z", "updated_at": "2024-12-06T11:38:37.130Z", "customer_id": "cust_E602sMzgjpDC", "merchant_id": "merch_68c777fcOOMpl", "product_name": "ShieldGuard Insurance", "product_description": "Simple, monthly insurance plan that covers your basic belongings and key digital assets", "country": "Ind", "fees": { "txn_fee": {}, "fx_fee": {}, "referral_fee": {} }, "fee_breakdown": { "fx_fee": [], "txn_fee": [], "referral_fee": [] }, "documents": [ {} ], "settlement_id": "string", "funds_available": true, "payment_method": { "summary": "Bank Transfer Payment Method (SWIFT, sender bank identified by BIC)", "value": {} }, "auto_debit?": true }