> For the complete documentation index, see [llms.txt](https://developers.coindirect.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.coindirect.com/guides/payments-how-to.md).

# Payments How-To

### What Are Payments?

You can think of a Payment as a one-time invoice which is a request for cryptocurrency payment that is connected to its unique cryptocurrency address as well as the amount that must be paid during the payment window.

Once the payment is created, we start monitoring the payment's cryptocurrency address in order to detect the incoming transaction.

{% content-ref url="/pages/-MhY-mQ8zk-ww5nmpvBH" %}
[Creating Payments](/guides/payments-how-to/creating-payments.md)
{% endcontent-ref %}

### Payment Workflow

Payments have four final statuses: `COMPLETE`, `UNDERPAID`, `EXPIRED`, and `CANCELLED`. Check the link below to understand the payment workflow.

{% content-ref url="/pages/-MgjJDNTpeB5qOhYaCK4" %}
[Payment Workflow](/guides/payments-how-to/payment-statuses.md)
{% endcontent-ref %}

### Payment Webhooks

Coindirect sends webhooks to your Webhook URL whenever we detect a transaction at the payment cryptocurrency address or the payment status changes.&#x20;

{% content-ref url="/pages/-MgjOrWI4tKOXZTK8zGK" %}
[Payment Webhooks](/guides/payments-how-to/payment-webhooks.md)
{% endcontent-ref %}

You can set up your Webhook URL on the [Merchant Details](/guides/account-setup/merchant-ids.md) page in your business account.

{% content-ref url="/pages/-MguEWemye76PBjHXDTS" %}
[Merchant IDs](/guides/account-setup/merchant-ids.md)
{% endcontent-ref %}

### IMPORTANT

There are a few things to make sure of to avoid issues while accepting payments:

{% hint style="warning" %}
Please deem the payment finalized on the Coindirect side once it updates the status to **`"complete"`** or **`"underpaid"`**
{% endhint %}

{% hint style="warning" %}
Please do make another `GET /api/v1/pay/:uuid/summary` call to check the payment status via the API
{% endhint %}

{% hint style="warning" %}
Once you receive eithe&#x72;**`"status": "COMPLETE"`** or **`"status": "UNDERPAID"`**&#x66;rom `GET /api/v1/pay/:uuid/summary,`please finalize the payment on your side and update the payment amount based on the **`displayCurrency.actual`** value in the payload
{% endhint %}

{% hint style="warning" %}
Once you finalize the payment on your side, please ensure that no more transactions will appear on the customer's balance in case you receive further webhooks with the same payment UUID from us - this is to avoid potential issues with duplicate transactions on the customer’s balance
{% endhint %}

{% content-ref url="/pages/-MhY-m1kFKDjvskmWX4Q" %}
[Payment Hosted Page](/guides/payments-how-to/payment-web-page.md)
{% endcontent-ref %}

To get familiarized with the payment API, please visit the below link:

{% content-ref url="/pages/-MgfQQLpEc-cod3VA2ZI" %}
[Payments](/api/payments.md)
{% endcontent-ref %}

If you have any questions, do not hesitate to contact your Account Manager or Technical Implementation Manager at Coindirect.
