> ## 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 request and refund statuses

This section describes the statuses displayed in the portal for payment requests and refunds.

[Payment request callbacks](https://docs.ca.cryptoprocessing.com/api-reference/callbacks/payment-request-callbacks.md) send the same payment request statuses, except **Created**, in lowercase in the `status` field. Some of them also have a `status_reason`, described below.

## Payment request statuses

<table>
  <thead>
    <tr>
      <th>Status</th>
      <th>Description</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        Created
      </td>

      <td>
        The payment request was created, but the crypto address is not yet generated for it. Depending on the payment request's parameters, at this point the customer can [select the currency](https://docs.ca.cryptoprocessing.com/payment-requests.md#currency-selection) in which they are going to pay.\


        When the customer agrees to the terms and clicks **Proceed to payment**, the address will be generated, and the status will change to Processing. If the customer doesn't click **Proceed to payment** before the payment request's [lifespan](https://docs.ca.cryptoprocessing.com/payment-requests.md#lifespan-and-rate-lock) ends, the status will change to Expired.
      </td>
    </tr>

    <tr>
      <td>
        Processing
      </td>

      <td>
        The crypto address was generated, but incoming transactions aren't created, aren't confirmed or don't cover the expected amount yet.\


        As soon as incoming transactions for the expected amount get the required [number of confirmations](https://docs.ca.cryptoprocessing.com/confirmations-and-limits.md), the status will change to Paid.\


        If the payment request is only partially paid by the end of its [lifespan or rate lock period](https://docs.ca.cryptoprocessing.com/payment-requests.md#lifespan-and-rate-lock), the status will change to either Paid or Failed, according to the [underpayment handling rules](https://docs.ca.cryptoprocessing.com/payment-requests/underpayments.md).\


        If no transactions are created during the [lifespan or rate lock period](https://docs.ca.cryptoprocessing.com/payment-requests.md#lifespan-and-rate-lock), the status will change to Expired.
      </td>
    </tr>

    <tr>
      <td>
        Paid
      </td>

      <td>
        Incoming transactions for the expected amount were confirmed, and the funds are credited to the merchant's balance. This includes:

        * **Overpayments**: the extra amount is [refunded automatically](https://docs.ca.cryptoprocessing.com/payment-requests/refunds.md#automatic-refunds), unless it's smaller than the [minimum withdrawal limit](https://docs.ca.cryptoprocessing.com/confirmations-and-limits.md) + [refund fee](https://docs.ca.cryptoprocessing.com/payment-requests/fees.md). Late payments are refunded the same way.
        * **Underpayments**, if your [underpayment handling rules](https://docs.ca.cryptoprocessing.com/payment-requests/underpayments.md) accept them.
      </td>
    </tr>

    <tr id="failed">
      <td>
        Failed
      </td>

      <td>
        The payment request wasn't fully paid during the [lifespan or rate lock period](https://docs.ca.cryptoprocessing.com/payment-requests.md#lifespan-and-rate-lock), or the payment couldn't be processed. Possible reasons:

        * **Underpayment**: the total amount of the transactions didn't reach the expected amount, and the underpayment wasn't accepted according to your [underpayment handling rules](https://docs.ca.cryptoprocessing.com/payment-requests/underpayments.md). The `status_reason` is `The customer paid less than the requested amount. Based on your payment handling rules, the payment was not accepted`.
        * **Unconfirmed transaction**: one or more transactions didn't get the required [number of confirmations](https://docs.ca.cryptoprocessing.com/confirmations-and-limits.md) in time.
        * **Invalid transaction**: the transactions were cancelled in the blockchain or were smaller than the [minimum deposit amount](https://docs.ca.cryptoprocessing.com/confirmations-and-limits.md). Invalid transactions aren't listed in the callback, and no callback is sent when one arrives: the `failed` callback is sent when the lifespan or rate lock period ends. The `status_reason` is `The payment couldn't be processed because the transaction was invalid or couldn't be accepted`.
        * **Payment restricted**: the payment can't be processed due to internal restrictions. The `status_reason` is `Service is restricted for the payer. Payments from this payer cannot be processed`.

        CryptoProcessing will initiate an [automatic refund](https://docs.ca.cryptoprocessing.com/payment-requests/refunds.md#automatic-refunds), unless the total received amount is smaller than the [minimum withdrawal limit](https://docs.ca.cryptoprocessing.com/confirmations-and-limits.md) + [refund fee](https://docs.ca.cryptoprocessing.com/payment-requests/fees.md).
      </td>
    </tr>

    <tr>
      <td>
        Expired
      </td>

      <td>
        The customer hasn't created any transactions during the [lifespan or rate lock period](https://docs.ca.cryptoprocessing.com/payment-requests.md#lifespan-and-rate-lock).
      </td>
    </tr>
  </tbody>
</table>

## Refund statuses

<table>
  <thead>
    <tr>
      <th>Status</th>
      <th>Description</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        Creating
      </td>

      <td>
        The automatic or manual refund is being created, and the funds are being subtracted from the merchant's balance.

        If this step is successful, the status will change to Waiting for customer. If the merchant does not have enough funds, the status will change to Not created.
      </td>
    </tr>

    <tr>
      <td>
        Waiting for customer
      </td>

      <td>
        CryptoProcessing sent the customer an email with a link to claim their refund.
      </td>
    </tr>

    <tr>
      <td>
        In progress
      </td>

      <td>
        The customer opened the email, clicked the link and entered their details. The refund is being processed.
      </td>
    </tr>

    <tr>
      <td>
        Completed
      </td>

      <td>
        The refund has been successfully completed.
      </td>
    </tr>

    <tr>
      <td>
        Not created
      </td>

      <td>
        The refund request couldn't be created. Double-check the details and make sure you have enough funds on your balance to issue the refund.
      </td>
    </tr>

    <tr>
      <td>
        Failed
      </td>

      <td>
        The refund couldn't be completed. If you encounter this error, contact CryptoProcessing support.
      </td>
    </tr>
  </tbody>
</table>


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