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

# Quickstart

> Do zero ao depósito pago, em modo test

<Note>**Beta** — o contrato da 1.0 em evolução, ainda não em produção. Os campos podem mudar até o lançamento.</Note>

Em **modo test** você integra o fluxo completo — inclusive recebendo o webhook assinado — sem mover um
centavo. Troque `pk_test_`/`sk_test_` por `pk_live_`/`sk_live_` para produção.

<Steps>
  <Step title="Crie um depósito">
    ```bash theme={null}
    curl -X POST https://api.swytchpay.app/v1/deposits \
      -H "x-api-key: pk_test_xxx" \
      -H "x-api-secret: sk_test_xxx" \
      -H "Content-Type: application/json" \
      -d '{
        "amount": 50000,
        "currency": "MXN",
        "payment_method": "SPEI",
        "external_id": "orden-42",
        "payer": { "name": "Juan Pérez", "email": "juan@ok.mx", "document": "PEGJ850315HDFRRN01" }
      }'
    ```

    Resposta `201`: `{ "id": "dep_…", "status": "PENDING", "flow": "REDIRECT", "charge": { "type": "spei", "redirect_url": "https://checkout…" } }`.

    O `charge` traz o que o pagador usa, e ele muda com o trilho: o `emv` no PIX, uma `redirect_url` nos
    trilhos LATAM. Sem `currency`, o default é `BRL` (PIX).
  </Step>

  <Step title="Registre seu webhook">
    ```bash theme={null}
    curl -X POST https://api.swytchpay.app/v1/webhooks \
      -H "x-api-key: pk_test_xxx" -H "x-api-secret: sk_test_xxx" \
      -H "Content-Type: application/json" \
      -d '{ "name": "minha corretora", "url": "https://suacorretora.com/webhooks/swytch" }'
    ```

    A resposta traz o `secret` (`whsec_…`) **uma única vez** — guarde para validar a assinatura.
  </Step>

  <Step title="Simule o pagamento (test)">
    ```bash theme={null}
    curl -X POST https://api.swytchpay.app/v1/test/deposits/dep_xxx/pay \
      -H "x-api-key: pk_test_xxx" -H "x-api-secret: sk_test_xxx"
    ```

    Isso roda o fluxo **real** (status → `PAID`, crédito no saldo **na moeda do depósito**) e dispara o
    webhook `deposit.paid` assinado para a sua URL.
  </Step>

  <Step title="Confira o saldo">
    ```bash theme={null}
    curl https://api.swytchpay.app/v1/balance \
      -H "x-api-key: pk_test_xxx" -H "x-api-secret: sk_test_xxx"
    # { "mxn": { "available": 48500, ... }, "brl": { ... } }
    ```
  </Step>
</Steps>

Pronto: você criou, pagou e recebeu a confirmação assinada. O saldo em peso fica acumulado até você
[converter para USDT](/v1.0/conversions).
