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

# Início rápido

> Da credencial ao checkout pago: obtenha um token, crie um produto e uma oferta, abra um checkout e envie o comprador para pagar.

Este guia percorre o caminho completo: obter um token de acesso, modelar o que você vende, abrir um checkout e receber um pagamento Pix na página hospedada.

<Tip>
  Todas as chamadas vão para `https://api.moneydev.com.br`. Antes, defina `MONEYDEV_CLIENT_ID` e `MONEYDEV_CLIENT_SECRET` a partir do cliente de API criado no [Dashboard](https://dashboard.moneydev.com.br).
</Tip>

<Steps>
  <Step title="Obtenha um token de acesso">
    ```bash theme={null}
    curl --request POST https://api.moneydev.com.br/oauth/token \
      --user "$MONEYDEV_CLIENT_ID:$MONEYDEV_CLIENT_SECRET" \
      --header "Content-Type: application/x-www-form-urlencoded" \
      --data grant_type=client_credentials
    ```

    Copie o `access_token` da resposta para `ACCESS_TOKEN`. Ele dura 15 minutos. Veja [Autenticação](/authentication) para detalhes.
  </Step>

  <Step title="Crie um produto e sua oferta">
    Um **produto** é o que você vende; uma **oferta** é um preço dele. Crie os dois de uma vez. Valores são em centavos — `49900` é R\$ 499,00.

    ```bash theme={null}
    curl --request POST https://api.moneydev.com.br/v1/products \
      --header "Authorization: Bearer $ACCESS_TOKEN" \
      --header "Content-Type: application/json" \
      --data '{
        "name": "Plano Pro",
        "default_offer": { "name": "Anual", "amount_minor": 49900, "currency": "BRL" }
      }'
    ```

    A resposta inclui `default_offer.id` (um `offer_…`). Guarde-o para o próximo passo.
  </Step>

  <Step title="(Opcional) Crie um cliente">
    Vincule um cliente para não reenviar os dados do comprador depois.

    ```bash theme={null}
    curl --request POST https://api.moneydev.com.br/v1/customers \
      --header "Authorization: Bearer $ACCESS_TOKEN" \
      --header "Content-Type: application/json" \
      --data '{ "name": "João da Silva", "email": "joao.silva@example.com" }'
    ```
  </Step>

  <Step title="Abra um checkout">
    ```bash theme={null}
    curl --request POST https://api.moneydev.com.br/v1/checkouts \
      --header "Authorization: Bearer $ACCESS_TOKEN" \
      --header "Content-Type: application/json" \
      --data '{
        "offer_id": "offer_a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
        "external_id": "order_1042",
        "success_url": "https://loja.example.com/pedido/1042/ok"
      }'
    ```

    A resposta traz uma `checkout_url` em `pay.moneydev.com.br` e `status: "open"`.
  </Step>

  <Step title="Envie o comprador para pagar">
    Redirecione o comprador para a `checkout_url`. Ele paga com Pix na página hospedada e volta para a sua `success_url`.
  </Step>

  <Step title="Confirme o pagamento">
    Consulte o checkout até o `status` ser `completed`:

    ```bash theme={null}
    curl https://api.moneydev.com.br/v1/checkouts/checkout_7f8a9b0c-1d2e-4f3a-8b4c-5d6e7f8a9b0c \
      --header "Authorization: Bearer $ACCESS_TOKEN"
    ```

    | `status` | Significado |
    | - | - |
    | `open` | Aguardando pagamento |
    | `completed` | Pago — libere o pedido |
    | `expired` | Passaram 24 h sem pagamento |
    | `canceled` | Cancelado antes do pagamento |

    <Note>
      Para não consultar em loop, assine o webhook [`payment.succeeded`](/webhooks/overview). Como ele não repete em caso de falha, mantenha esta consulta como reconciliação.
    </Note>
  </Step>
</Steps>

## Próximos passos

<CardGroup cols={2}>
  <Card title="Checkouts" icon="cart-shopping" href="/api-reference/checkouts/create">
    Abra um checkout e receba o pagamento.
  </Card>

  <Card title="Autenticação" icon="key" href="/authentication">
    Escopos, validade do token e erros de OAuth.
  </Card>
</CardGroup>


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