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

# Flows

> The complete payment journey — what happens at every step, for successful, expired, and non-compliant payments.

## Transaction states

| State         | What it means                                                             |
| ------------- | ------------------------------------------------------------------------- |
| `Created`     | Quote generated, customer has not yet submitted their identity            |
| `Pending`     | Identity verification in progress                                         |
| `Processing`  | PIX confirmed, conversion in progress                                     |
| `Success`     | Crypto credited to your balance                                           |
| `Expired`     | Customer did not pay within the quote window                              |
| `Failed`      | A system error occurred                                                   |
| `Cancelled`   | Identity verification failed or document was invalid                      |
| `UNCOMPLIANT` | PIX sender does not match the verified identity — payment held for review |

***

## Successful payment

<Steps>
  <Step title="Customer opens the link">
    The customer opens your checkout link. A quote is generated immediately, locking in the BRL amount, the crypto amount, the rate, and the fees. The rate is valid for 10 minutes.
  </Step>

  <Step title="Customer provides their tax ID">
    The customer enters their CPF (individual) or CNPJ (business). The document is validated for format, then checked against a Brazilian identity database. If the document is invalid or fails verification, the session moves to `Cancelled` and the customer sees an error.
  </Step>

  <Step title="Customer pays via PIX">
    A PIX QR code is shown. The customer scans it in their banking app and confirms. The payment takes seconds from their side.
  </Step>

  <Step title="Titularity check">
    When the PIX arrives, Noxpay verifies that the CPF of the PIX sender matches the CPF collected in the previous step. If they match, the session moves to `Processing`.
  </Step>

  <Step title="Conversion and credit">
    Noxpay converts the BRL amount to the target crypto at the locked quote rate. The crypto is credited to your available balance. The session moves to `Success` and a webhook is sent to your configured URL.
  </Step>
</Steps>

***

## Quote expires before the customer pays

The quote window is 10 minutes. If the customer does not pay in time:

* The PIX QR code is deactivated
* The session moves to `Expired`
* No money moves

When the customer refreshes the page, a new quote is generated automatically with a fresh rate. They can continue from there without starting over.

***

## Customer does not complete identity verification

If the customer's document fails verification — for example because the CPF is invalid or not registered — the session moves to `Cancelled`. The customer sees an error page explaining that the payment could not be processed.

If you created the session via API and pre-filled the customer's document, you can catch this case via webhook and handle it in your own flow.

***

## Titularity mismatch — UNCOMPLIANT

If the PIX sender's CPF does not match the CPF verified during checkout, the session moves to `UNCOMPLIANT` and the payment is held. This happens when someone pays from a third party's bank account.

Contact Noxpay support with the `NOX...` transaction ID to resolve. Depending on the circumstances, the payment may be returned to the sender.

<Warning>
  Do not credit your user or deliver services based solely on a PIX being sent. Always wait for the `Success` status. A payment that triggers a titularity mismatch will not convert and will not credit your balance.
</Warning>
