Amwal Tech logoDocs

Installment Link Listings

Query historical payment links, filter by payment status (Paid, Unpaid, Expired), filter by date range or retail branch, and retrieve associated customer details.


Endpoint

POST /payment_links/{store_id}/list

Path Parameters

ParameterTypeRequiredDescription
store_idString (UUID)YesYour unique Store ID retrieved from the Merchant Portal (e.g. f24267bd-79f4-433f-a9f2-485c171301e4).

Request Headers

Authorization: YOUR_SECRET_KEY
X-Amwal-Key: sandbox-amwal-xxx
Content-Type: application/json
HeaderTypeRequiredDescription
AuthorizationStringYesYour Amwal Secret Key (e.g. d9ccf8bc-ed63-44ad-a54c-9d8fee63df6b).
X-Amwal-KeyStringNoMerchant publishable API Key or sandbox identifier.
Content-TypeStringYesMust be set to application/json.

Request Body

{
  "page": 1,
  "limit": 20,
  "status": "Paid",
  "from_date": "2026-01-01T00:00:00Z",
  "to_date": "2026-06-30T23:59:59Z",
  "branch": "RIYADH-001",
  "sort_by": "created_at",
  "sort_order": "desc"
}

Request Parameters

FieldTypeRequiredDescription
pageIntegerNoPage number for pagination. Default: 1.
limitIntegerNoNumber of records to return per page (max 100). Default: 20.
statusStringNoFilter by link status. Allowed values: Paid, Unpaid, Expired.
from_dateString (ISO 8601)NoFilter records created on or after this UTC timestamp (e.g. 2026-01-01T00:00:00Z).
to_dateString (ISO 8601)NoFilter records created on or before this UTC timestamp (e.g. 2026-06-30T23:59:59Z).
branchStringNoFilter records by physical retail branch code or cashier location (e.g. RIYADH-001).
sort_byStringNoField to sort results by. Allowed values: created_at, amount. Default: created_at.
sort_orderStringNoSorting order. Allowed values: asc (ascending), desc (descending). Default: desc.

Response (200 OK)

{
  "total": 142,
  "page": 1,
  "limit": 20,
  "data": [
    {
      "payment_link_id": "550e8400-e29b-41d4-a716-446655440000",
      "amount": 1200.00,
      "currency": "SAR",
      "status": "Paid",
      "title": "Order #8921",
      "description": "Electronics purchase - 6 Month Installment",
      "single_use": true,
      "branch_name": "RIYADH-001",
      "created_at": "2026-05-14T11:18:49Z",
      "customer": {
        "first_name": "Ahmed",
        "last_name": "Al-Rashid",
        "email": "ahmed@example.com",
        "phone": "+966501234567"
      },
      "url": "https://pay.sa.amwal.tech/payment-link/550e8400-e29b-41d4-a716-446655440000"
    }
  ]
}

Response Parameters

Pagination Metadata

FieldTypeDescription
totalIntegerTotal number of payment links matching the query filters.
pageIntegerCurrent page index returned.
limitIntegerNumber of items per page.
dataArray of ObjectsList of payment link records matching the search criteria.
FieldTypeDescription
payment_link_idString (UUID)Unique payment link identifier.
amountNumberTotal authorized amount in SAR.
currencyStringISO currency code (e.g. SAR).
statusStringCurrent link state: Paid, Unpaid, or Expired.
titleStringTitle displayed on the checkout page.
descriptionString / NullOrder or invoice description.
single_useBooleanWhether the payment link expires upon first successful checkout.
branch_nameString / NullAssociated retail store branch or POS terminal identifier.
created_atString (ISO 8601)Timestamp when the payment link was created in UTC.
customerObjectCustomer contact details associated with the link.
customer.first_nameString / NullCustomer first name.
customer.last_nameString / NullCustomer last name.
customer.emailString / NullCustomer email address.
customer.phoneString / NullCustomer mobile phone in international format.
urlString (URI)Direct checkout URL for the payment link.

Error Responses

Status CodeError CodeDescription
400 Bad Requestinvalid_parametersInvalid date range (from_date after to_date) or invalid page/limit values.
401 Unauthorizedauthentication_failedMissing or invalid Secret Key in the Authorization header.
404 Not Foundstore_not_foundThe specified store_id does not exist or does not belong to the authenticated account.

On this page