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

# Payments

> Choose the payment method and integration path that best fit your product.

Bob Payments offers a single integration to create, track, and reconcile payments. The method you choose changes the buyer's experience, but the transaction lifecycle stays the same: create it, wait for the result, and confirm via webhook.

## Available methods

| Method          | Availability    | Best path                                    | What you get                                    |
| --------------- | --------------- | -------------------------------------------- | ----------------------------------------------- |
| **PIX**         | Available       | Direct API, hosted checkout, or Checkout SDK | Copy-and-paste code, QR Code, and status events |
| **Credit card** | **Coming soon** | Hosted checkout or Checkout SDK              | Secure tokenization, 3DS, and status events     |
| **Crypto**      | Available       | Hosted checkout                              | Hosted crypto payment page and status events    |

<Note>
  **Credit card is not available yet.** The card pages describe how it will work once it launches. For now, use **PIX**.
</Note>

<Note>
  A method can only be used when it's enabled on the project. Don't enable a method just because it appears in an old API payload or enum.
</Note>

## Choose how to integrate

| If you want to...                                   | Use...                                          |
| --------------------------------------------------- | ----------------------------------------------- |
| Get started quickly accepting PIX                   | [Hosted checkout](/en/pages/checkout/overview)  |
| Keep the payment screen on your own site            | [Checkout SDK](/en/pages/sdk/checkout)          |
| Control the PIX experience and receive the EMV code | [Direct transactions API](/en/pages/pix/create) |
| Integrate on the backend with less code             | [Server SDKs](/en/pages/sdk/overview)           |

<Warning>
  The direct API must not receive the card number, CVV, or expiration date. For card payments, use the hosted checkout or the Checkout SDK, which tokenize the data in the browser.
</Warning>

## Common flow

<Steps>
  <Step title="Set up the environment">
    Create an `sk_test_` key and enable the methods you want to accept. Start with the [Sandbox](/en/pages/sandbox).
  </Step>

  <Step title="Create the payment">
    Use a direct transaction for PIX, or create a checkout session with `paymentMethods`, such as `['pix']` or `['crypto']`.
  </Step>

  <Step title="Show the next step to the buyer">
    For PIX, display the `pixCode` and the QR Code. For crypto, redirect the buyer to the hosted page's `checkoutUrl`. For card, use the hosted checkout or the SDK for tokenization and 3DS authentication.
  </Step>

  <Step title="Confirm on the server">
    Receive the `transaction.paid` event, verify the signature, and release the order only after confirmation. The checkout return page does not replace the webhook.
  </Step>
</Steps>

## States and confirmation

Use the transaction or session status to show the state to the buyer, but treat the webhook as the source of truth on the backend. A `201` confirms that the resource was created; it does not confirm that the payment was approved.

| State                   | General meaning                                       |
| ----------------------- | ----------------------------------------------------- |
| `waiting_payment`       | The buyer still needs to pay or complete an action    |
| `processing`            | The payment was received and is awaiting confirmation |
| `paid`                  | The payment was confirmed                             |
| `expired` / `cancelled` | The payment can no longer be completed                |
| `refunded`              | The amount was refunded                               |

Specific states may vary by method. Check the [PIX reference](/en/pages/pix/reference), the [card reference](/en/pages/credit-card/reference), and the [webhooks](/en/pages/webhooks) before implementing your order's state machine.

## Next steps

<CardGroup cols={2}>
  <Card title="Start in the Sandbox" icon="flask" href="/en/pages/sandbox">
    Test creation, payment, expiration, and webhooks without moving real money.
  </Card>

  <Card title="Go to production" icon="rocket" href="/en/pages/production">
    Run through the security, idempotency, and confirmation checklist before using `sk_live_`.
  </Card>
</CardGroup>
