# Mock review a payment link

Mark an under_review payment link reviewed

Endpoint: PATCH /payin/{id}/mock_mark_reviewed
Version: 1.0.0
Security: JWT

## Security:

  - `JWT` (unknown)
    http bearer JWT

## Path parameters:

  - `id` (string, required)
    The ID of the payment link to review. Starts with `plink_` followed by letters and digits. An ID of any other shape is rejected with `400` and a message saying it must start with `plink_`; a well-formed ID that doesn't match a payment link on your account returns `404`.

## Response 200:

  - `200` (unknown)
    Payment link successfully marked reviewed

## Response 200 fields (application/json):

  - `id` (string)
    The unique identifier for the payment link.
    Example: plink_678a4c88hpAjf

  - `customer_id` (string)
    The unique identifier of customer linked to payment_link.
    Example: cust_E602dMzgjpDC

  - `document_id` (string)
    The unique identifier of document linked to payment_link. This document entity should contain the required documents to process incoming payments. Refer this [Document](#tag/Document) entity for more details.
    Example: doc_nYUqLpuYQ0M8

  - `status` (string)
    The status of the payment link.
- `active` — the payment link has been created and can be paid.
- `action_required` — Glomo needs more information before the payment link can be paid. Respond to the
open RFI to continue.
- `under_review` — the information you submitted is being reviewed. The payment link returns to `active` if
the review passes.
- `paid` — the payment link has been paid in full. Terminal.
- `failed` — the payment link could not be accepted, for example because the review did not pass. Terminal.
- `cancelled` — the payment link was cancelled before it was paid. Terminal.
- `expired` — the payment link passed its expiry time without being paid. Not always final: a payment that
was already under way when the payment link expired can still complete it, moving it to `paid`.
    Enum: "active", "action_required", "under_review", "paid", "failed", "cancelled", "expired"

  - `payment_methods` (array)
    Array of payment methods that should be available for the customer on the checkout page. This field allows you to control which payment options your customers can use to complete the payment. You can specify one or multiple payment methods in the array. A listed method that is not set up on your account is ignored rather than rejected.
    Example: ["card"]

  - `currency` (string)
    The currency the payment link is collected in, as an uppercase [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code. Must be one of the listed values; the match is case-sensitive. `INR` is not accepted.
    Enum: "USD", "EUR", "GBP", "AED", "SGD", "AUD"

  - `amount` (number)
    The amount you want to receive, a positive integer representing the smallest currency unit. For example, if the amount is $299.00, then pass 29900 in this field. In the case of three decimal currencies, such as KWD, BHD and OMR, to represent an amount of 295.991, pass the value as 295990. And in the case of zero decimal currencies such as JPY, for amount ￥295, pass the value as 295.
    Example: 1000

  - `purpose_code` (string)
    Why you are receiving this payment, as a code from a fixed set: see [Payin purpose codes](/payin/purpose-codes). This is not free text. Pass a listed code exactly, for example `P1401`; matching is exact and case-sensitive. Payins and payouts use different sets, so a payout code such as `S1401` is rejected here. An unrecognised code is rejected with `400 Bad Request`.
Required, unless Glomo has configured a default payin purpose code on your account, in which case an omitted value falls back to that default.
    Example: P1401

  - `invoice_number` (string)
    Number/Id of the invoice submitted with payment_link.
    Example: RG12FF590

  - `invoice_description` (string)
    Description about the invoice submitted with payment_link
    Example: Payment requested for services provided

  - `reference_number` (string)
    optional identifier to be sent for reconciliations
    Example: R0001

  - `expires_at` (string)
    When the payment link expires. Send an ISO 8601 date-time with a UTC offset or `Z` (`YYYY-MM-DDThh:mm:ssZ`). A value without an offset is read as UTC, and a date without a time is read as 00:00 UTC on that day. Must be later than the time of the request and at most 6 calendar months from now. A past value returns `400` with the message `Validation failed: Expires at must be in the future`, and a value more than 6 months ahead returns `400` with `Validation failed: Expires at cannot be more than 6 months from now`. Returned in UTC.
    Example: 2026-12-15T12:00:00Z

  - `last_reminder_sent_at` (string | null)
    When the customer was last reminded to complete the payment by visiting the link, as an ISO 8601 date-time in UTC. `null` if no reminder has been sent.
    Example: 2024-09-13T06:32:34Z

  - `invoice_amount` (number)
    The amount on the invoice, in the smallest unit of the payment link's `currency`, the same unit as `amount` (cents for USD). `1000` is $10.00 when `currency` is USD. Must be greater than or equal to `amount`.
    Example: 1000

  - `payment_link` (string)
    Sharable link which should be shared with customer you want to receive  money from. `This link gets generated only after the payin has been reviewed and moved to in_progress`
    Example: https://staging-api.glomopay-eng.com/v1/payin/pl/8f31597d-e085-497a-b80f-ae97ea9422a0

  - `notify_customer` (boolean)
    Whether to notify the customer via email when the payment link is created. Defaults to `true`. Set to `false` to suppress the notification email.
    Example: true

  - `reminder_frequency` (number)
    The frequency at which you want to remind customers, valid values are 1(remind everyday), 2(remind every alternate day), 7(remind every week), 14(remind every alternate week).
    Example: 7

  - `price_id` (string)
    The unique identifier of 'Price' entity linked to the payment link. This is the referral fee for this payment link. Note: price_id is only applicable for platform businesses.
    Example: price_E602dMzgjpDC

  - `split_ids` (array)
    The pricing splits to apply, each entry an `id` returned by [Create a pricing split](#tag/pricing_split). A split fixes your share of a dynamic rule's fee and the customer bears the remainder. Omit `split_ids` and no dynamic rule is applied — pricing falls back to your normal (non-dynamic) rules.
`split_ids` and `payment_methods` are independent. `payment_methods` restricts which methods the checkout offers. `split_ids` only changes how the fee for a method is priced: a split applies to its own payment method whether or not that method appears in `payment_methods`, and a split never adds a method to the checkout or removes one from it. One checkout can therefore price one method from a dynamic split and another method from your normal rules.
Every id must exist, must belong to your business, and must still point at a live dynamic rule. When two dynamic rules share a dimension — the same payment method, subtype, rail, currency and fee type — declare a split for every one of them or the request is rejected. On payment links and orders, a split whose payment method is not enabled for your business is also rejected.
A subscription only ever charges `card`, or `pay_via_bank` when SEPA-eligible, so a split declared for any other payment method is rejected at subscription creation and on an auto debit. An auto-debit override must be declared for the method the subscription actually charges.
Glomo can configure your account to require a declaration. On such an account, a payment link, an order, a payin quote or an `as_presented` subscription that omits `split_ids` is rejected.
    Example: ["psplit_7Kq2mXbTdLp9"]

  - `product` (object)
    Details of the product that the payment is related to.
    Example: {"name":"ShieldGuard Insurance","description":"Flexible insurance for belongings travel and digital assets easy to manage"}

  - `product.name` (string, required)
    Name of the product

  - `product.description` (string)
    Description of the product

  - `created_at` (string)
    When the payment link was created, as an ISO 8601 date-time in UTC.
    Example: 2021-06-01T12:00:00Z

  - `updated_at` (string)
    When the payment link was last updated, as an ISO 8601 date-time in UTC.
    Example: 2021-06-01T12:00:00Z

  - `notes` (object | null)
    Optional key-value pairs for attaching custom metadata (e.g. invoice references, project codes). Keys must be strings and cannot collide with reserved field names. Your account may require some `notes` fields: Glomo configures custom field rules per account, and for beneficiaries they are checked when the beneficiary is created. Some fields are also validated by the beneficiary's country (for example, a PAN format for Indian beneficiaries). A missing required field returns `422` with `Validation failed: Notes <field> is required`, and type and validation errors (such as enum constraints) are returned the same way. The rule is set on your account, not by currency or rail. No API lists the fields, but the `422` names each missing one: add that key to `notes` with the value your account expects, and ask your Glomo account manager if you don't know what the field should hold. See [Custom fields](/payin/custom-fields). Each key appears as a separate column in CSV report exports, with corresponding values populating the rows.
    Example: {"invoice_ref":"INV-2026-001","project":"Alpha"}

  - `bank_account_details` (object)
    Optional bank account details to associate with the customer for this payment link. When provided, the bank account will be linked to the customer and associated with this payment link. Either bic_primary or bic_secondary must be provided when including this field.
    Example: {"account_number":"1234567890","bic_primary":"HDFCINBBDEL","bank_customer_id":"7189204715"}

  - `bank_account_details.account_number` (string, required)
    The bank account number
    Example: 1234567890

  - `bank_account_details.bic_primary` (string)
    SWIFT code for the bank account. Will be null if not provided in the request.
    Example: HDFCINBBDEL

  - `bank_account_details.bic_secondary` (string)
    Local routing code for the bank account like IFSC. Will be null if not provided in the request.
    Example: HDFC0001097

  - `bank_account_details.bank_customer_id` (string)
    Optional bank customer identifier provided by the bank
    Example: 7189204715

## Response 400:

  - `400` (unknown)
    Bad request

## Response 400 fields (application/json):

  - `message` (string)
    Error message.
    Example: Payment link is not under review.

## Response 404:

  - `404` (unknown)
    Payment link not found

## Response 404 fields (application/json):

  - `error` (string)
    Enum: "Not found"

  - `message` (string)
    Entity not found
    Enum: "Entity not found"

