---
title: "Request Payment"
method: POST
path: "/payment_requests"
tags: ["Payment Requests"]
---

# Request Payment

`POST /payment_requests`

<aside class="notice">We now require supplying an <code>Idempotency-Key</code> header when performing this request to ensure you can safely retry the action in case of an issue. If the header value is different to one provided previously, we will be treating a request as a new operation which may lead to a duplicate funds collection. To understand more on how to make idempotent requests, please refer to our <a href="https://docs.zeptopayments.com/v20260101/reference/idempotent-requests">Idempotent requests guide</a>.</aside>

## Headers

- `Idempotency-Key` string, required

## Request body

- MakeAPaymentRequestRequest
  - `description` string, required — Description visible to the initiator (payee). The first 9 characters supplied will be visible to the authoriser (payer)
  - `matures_at` string, date-time, required — Date & time in UTC ISO8601 that the Payment will be processed if the request is approved. (If the request is approved after this point in time, it will be processed straight away)
  - `amount` integer, required — Amount in cents to pay the initiator (Min: 1 - Max: 99999999999)
  - `authoriser_contact_id` string, required — The Contact the payment will be requested from (`Contact.data.id`)
  - `your_bank_account_id` string, uuid — Specify where we should settle the funds for this transaction. If omitted, your primary bank account will be used.
  - `metadata` object — Use for your custom data and certain Zepto customisations. Stored against generated transactions and included in associated webhook payloads.

## Response `200`

Created

- MakeAPaymentRequestResponse
  - `data` object, required
    - `ref` string, required — The Payment Request reference (PR.*) (Min: 4 - Max: 8)
    - `initiator_id` string, uuid, required — Your bank account ID where the funds will settle (Min: 36 - Max: 36)
    - `your_bank_account_id` string, uuid, required — Your bank account ID where the funds will settle (alias of `initiator_id`) (Min: 36 - Max: 36)
    - `authoriser_id` string, uuid, required — The debtor's bank account ID (Min: 36 - Max: 36)
    - `authoriser_contact_id` string, uuid, required — The contact ID representing the debtor within Zepto (Min: 36 - Max: 36)
    - `contact_initiated` boolean, required — Initiated by Contact or Merchant
    - `schedule_ref` string, nullable, required — The schedule that generated the Payment request if applicable (Min: 0 - Max: 8)
    - `status` 'approved' | 'cancelled', required — The status of the Payment Request
    - `status_reason` unknown, required
    - `matures_at` string, date-time, required — The date-time when the Payment Request is up for processing (Min: 20 - Max: 20)
    - `responded_at` string, date-time, nullable, required — The date-time when the Payment Request status changed (Min: 0 - Max: 20)
    - `created_at` string, date-time, required — The date-time when the Payment Request was created (Min: 20 - Max: 20)
    - `credit_ref` string, nullable, required — The resulting credit entry reference (available once approved) (Min: 4 - Max: 8)
    - `payout` object, required
      - `amount` integer, required — Amount in cents (Min: 1 - Max: 99999999999)
      - `description` string, required — Payment Request description (Min: 1 - Max: 280)
      - `matures_at` string, date-time, required — The date-time when the Payment Request is up for processing (Min: 20 - Max: 20)
    - `metadata` object — Your custom keyed data

## Other responses

- `422` — When a payment is requested from an Anyone Contact with no valid Agreement

---

[API](https://skmtc.net/zeptopayments/apis/zepto-api.md) · [All operations](https://skmtc.net/zeptopayments/apis/zepto-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/zeptopayments/zepto-api/revisions/6353e9b9af6f/schema)
