---
title: "Create a payment request"
method: POST
path: "/requests"
tags: ["Payment requests"]
---

# Create a payment request

`POST /requests`

Create a payment request for the client for a specified amount and a configurable expiration time.

## Headers

- `X-Processing-Signature` string, required

## Request body

- object
  - `amount` string, required — Payment request amount that you want to receive from the customer.
  - `currency` object, required — The currency you want to receive.
    - `iso` string, required — Currency ISO code. For the list of all available currencies, see [Currency codes](/api-reference/currency-codes#currency-codes-for-payment-requests).
    - `network_name` string, nullable — Currency network name. Required for cryptocurrencies. Do not include for fiat currencies. For the list of all available networks, see [Currency codes](/api-reference/currency-codes#currency-codes-for-payment-requests).
  - `user_fee_percent` 0 | 100 — Percentage of processing fees [paid by the customer](/payment-requests/fees#passing-the-processing-fee-to-your-customer). Currently, only two values are supported: - `0` (the default) — the processing fee is paid by the merchant. - `100` — the processing fee is paid by the customer.
  - `life_time_duration` integer, nullable, required — Payment request lifetime (duration in seconds). Include **either** this parameter or life_time_datetime. **At least one** of these fields is required.
  - `life_time_datetime` integer, nullable, required — Payment request lifetime (exact expiry timestamp). Include **either** this parameter or life_time_duration. **At least one** of these fields is required.
  - `payment_currency` object — The currency your customer will pay in. You can set both the currency and network or just the currency.
    - `iso` string, required — Currency ISO code. For the list of all available currencies, see [Currency codes](/api-reference/currency-codes#currency-codes-for-payment-requests).
    - `network_name` string, nullable — Currency network name. Do not include for fiat currencies. For the list of all available networks, see [Currency codes](/api-reference/currency-codes#currency-codes-for-payment-requests).
  - `end_user_email` string — If the amount the customer pays does not match the amount that you set for the payment request, CryptoProcessing will send an email to this address instructing the customer on how they can receive a refund. If they paid less, they will receive a full refund. If they paid more, the customer will get instructions on how to be refunded the difference.
  - `end_user_reference` string — The unique ID of the customer this payment request is for. You can use it to group payment requests by customer.
  - `sender_type` 'natural' | 'legal' — Type of the merchant's customer who sends the funds. Use `natural` if the sender is an individual person and `legal` if the sender is a legal entity. The selected type determines which fields must be included in `sender_data`.
  - `sender_data` SenderData — Must contain the details of the merchant's customer who sends the funds. - If `sender_type` is `natural`, include `first_name`, `last_name`, and `date_of_birth`. Do not include `legal_name` or `country_of_registration`. - If `sender_type` is `legal`, include `legal_name` and `country_of_registration`. Do not include `first_name`, `last_name`, or `date_of_birth`.
    - `first_name` string, required — The sender's first name. This is required for a natural person. For a legal entity, do not include this parameter.
    - `last_name` string, required — The sender's last name. This is required for a natural person. For a legal entity, do not include this parameter.
    - `date_of_birth` string, required — The sender's date of birth, YYYY-MM-DD. This is required for a natural person. For a legal entity, do not include this parameter.
    - `legal_name` string, required — The company's name. This is required for a legal entity. For a natural person, do not include this parameter.
    - `country_of_registration` string, required — The company's country of registration (ISO alpha-3 format, three characters). This is required for a legal entity. For a natural person, do not include this parameter.
  - `description` string — Payment request description that the customer will see.
  - `foreign_id` string — Unique foreign ID in your system. Must not contain personal data, such as the user's name or email address.
  - `url_store` string — URL of the store page. The customer can click a button on the payment form to return to this URL (for example, if they change their mind or want to pick a different payment method). We recommend setting this to the URL of the checkout page.
  - `url_success` string — URL of the success page. The customer will be able to return to this address once the payment is completed.
  - `url_failed` string — URL of the failed payment page. The customer will be able to return to this address if the payment fails.

## Response `200`

OK

- object
  - `data` object
    - `id` string, required — Payment request ID.
    - `amount` string, required — Payment request amount.
    - `currency` object, required
      - `iso` string, required — Payment request currency.
      - `network_name` string, nullable — Network of the selected cryptocurrency. Not included for fiat currencies.
    - `user_fee_percent` 0 | 100, required — Percentage of processing fees [paid by the customer](/payment-requests/fees#passing-the-processing-fee-to-your-customer).
    - `status` string, required — For newly created payment request, this will always be created.
    - `life_time` string, required — Unix timestamp for when the payment request will expire, in seconds.
    - `payment_currency` object — The currency your customer will pay in.
      - `iso` string, required — Currency ISO code. For the list of all available currencies, see [API currency codes](/api-reference/currency-codes#currency-codes-for-payment-requests).
      - `network_name` string — Currency network name. Required for cryptocurrencies. Do not include for fiat currencies.
    - `end_user_email` string — Customer email provided in the request.
    - `description` string — Payment request description.
    - `payment_link` string, required — Payment request URL.
    - `foreign_id` string — Unique payment request ID in your system.
    - `url_store` string — URL of the store page.
    - `url_success` string — URL of the success page.
    - `url_failed` string — URL of the failed payment page.
    - `end_user_reference` string — The unique ID of the customer this payment request is for. You can use it to group payment requests by customer.

## Other responses

- `400` — Bad Request.
- `403` — Forbidden
- `404` — Invalid currency
- `422` — Failed validation

---

[API](https://skmtc.dev/cryptoprocessing/apis/merchant-backend-v2.md) · [All operations](https://skmtc.dev/cryptoprocessing/apis/merchant-backend-v2/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/cryptoprocessing/merchant-backend-v2/revisions/623a41f26c6b/schema)
