> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ca.cryptoprocessing.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Payment requests

With payment requests, you can let your customers make one-time payments in the cryptocurrency of their choice.

* **Your customer** sees a convenient webpage that guides them through the payment process.
* **You** receive funds in the currency you requested, regardless of the customer's payment currency.
* **CryptoProcessing** takes care of conversion and issues automatic refunds for underpayments and overpayments.

![Payment request step 1](https://mintcdn.com/cr-can/cHLK0sE9xeQkIDkB/images/payment-requests/payment-request-1.png?fit=max\&auto=format\&n=cHLK0sE9xeQkIDkB\&q=85\&s=f531733f47fd604e1d88058480357b34)

![Payment request step 2](https://mintcdn.com/cr-can/cHLK0sE9xeQkIDkB/images/payment-requests/payment-request-2.png?fit=max\&auto=format\&n=cHLK0sE9xeQkIDkB\&q=85\&s=79137d32dd492e0e2176e82eafe33fea)

![Payment request step 3](https://mintcdn.com/cr-can/cHLK0sE9xeQkIDkB/images/payment-requests/payment-request-3.png?fit=max\&auto=format\&n=cHLK0sE9xeQkIDkB\&q=85\&s=8547157ed45da53a364284262b2d6fe2)

When creating a payment request, you control its behavior by choosing the [currency](#currency-selection) and the [lifespan](#lifespan-and-rate-lock).

The funds received via a payment request may be sent back via a [refund](https://docs.ca.cryptoprocessing.com/payment-requests/refunds.md), initiated either automatically or manually by you.

## Currency selection

When creating a payment request, you specify the **expected currency** — the fiat or cryptocurrency you want to receive. The **payment currency** is chosen at checkout by your customer from the allowed currencies (you can [customize the selection](https://docs.ca.cryptoprocessing.com/payment-requests/currencies.md)), or it can be set explicitly via the `payment_currency` parameter in the [API request](https://docs.ca.cryptoprocessing.com/api-reference/endpoints/payments.md).

If the customer pays in a currency that's different from the expected currency, CryptoProcessing converts the funds automatically, so you still receive the exact amount and currency you requested. The [conversion rate is locked](#lifespan-and-rate-lock) for up to 1 hour while awaiting a transaction for the customer.

The total amount to pay never changes after the rate lock. It may include the processing fee for the selected currency if you [pass the processing fee to the customer](https://docs.ca.cryptoprocessing.com/payment-requests/fees.md#passing-the-processing-fee-to-your-customer).

[Refunds](https://docs.ca.cryptoprocessing.com/payment-requests/refunds.md) are issued in the same currency the customer used to pay the request.

![Currency selection](https://mintcdn.com/cr-can/cHLK0sE9xeQkIDkB/images/payment-requests/payment-request-currency.png?fit=max\&auto=format\&n=cHLK0sE9xeQkIDkB\&q=85\&s=5a5cdd1856c0cf86301f9ee0545a4fe2)

## Lifespan and rate lock

There are two time constraints applicable to a payment request.

* The **lifespan** is set by you when you create a payment request. The customer's transaction must be both created and confirmed within this lifespan.

* The **rate lock** is applied if the customer chooses a payment currency that differs from the expected currency. CryptoProcessing locks the conversion rate for up to **1 hour** (or less, if the lifespan ends sooner). The customer's transaction must be both created and confirmed within the rate lock period, even if the lifespan is longer.

When the payment request has less than 1 hour left before expiration, the customer sees a countdown timer on the webpage.

![Countdown timer](https://mintcdn.com/cr-can/cHLK0sE9xeQkIDkB/images/payment-requests/payment-request-timer.png?fit=max\&auto=format\&n=cHLK0sE9xeQkIDkB\&q=85\&s=e836461783949f56c88ce5ad6c1e0918)

## Further reading

> [card] [Integration guide for payment requests](https://docs.ca.cryptoprocessing.com/payment-requests/integration-guide.md)
>
> Learn how to integrate the payment requests flow into your site

> [card] [Test cases for payment requests](https://docs.ca.cryptoprocessing.com/payment-requests/test-cases.md)
>
> Walk through all scenarios to make sure your integration works correctly

> [card] [/payments/v1/requests](https://docs.ca.cryptoprocessing.com/api-reference/endpoints/payments.md)
>
> API endpoint

> [card] [payment\_request](https://docs.ca.cryptoprocessing.com/api-reference/callbacks/payment-request-callbacks.md)
>
> API callback


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.