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

# Fluxo completo: Cliente e Pagamento

> Exemplo de fluxo completo criando cliente, método de pagamento e pagamento via API REST

Este guia mostra o fluxo completo em sequência: criar um cliente, cadastrar um método de pagamento (cartão) e criar um pagamento. Use uma chave de API de teste e defina `UPAG_API_KEY` no ambiente (ou substitua no código). O exemplo chama a API nesta ordem: **Cliente** → **Método de pagamento** → **Pagamento**; os IDs retornados em cada passo são usados no seguinte.

```mermaid theme={null}
sequenceDiagram
  participant App
  participant API
  App->>API: POST /customers
  API-->>App: customer.id
  App->>API: POST /customers/:id/payment-methods
  API-->>App: paymentMethod.id
  App->>API: POST /payments
  API-->>App: payment
```

## Exemplo

<CodeGroup>
  ```javascript SDK theme={null}
  import { Upag } from 'upag';

  const upag = new Upag('sk_test_your_api_key');

  // 1. Criar cliente
  const customer = await upag.customers.create({
    name: 'John Doe',
    email: 'john.doe@example.com',
    phone: '+1234567890'
  });

  // 2. Cadastrar método de pagamento (cartão)
  const paymentMethod = await upag.paymentMethods.create({
    customerId: customer.id,
    type: 'credit_card',
    card: {
      number: '4242424242424242',
      expMonth: 12,
      expYear: 2032,
      cvc: '123',
      holderName: 'JOHN DOE'
    }
  });

  // 3. Criar pagamento
  const payment = await upag.payments.create({
    customerId: customer.id,
    paymentMethodId: paymentMethod.id,
    amount: 1000,
    currency: 'brl',
    installments: 1
  });

  console.log('Pagamento criado:', payment);
  ```
</CodeGroup>

Para detalhes dos parâmetros de cada endpoint, consulte: [Criar Cliente](/customers/create), [Criar Método de Pagamento](/payment-methods/create) e [Criar Pagamento](/payments/create).
