# Make

> Pagamentos em qualquer cenário do Make: gatilhos instantâneos para faturas pagas, reembolsos, assinaturas e clientes; módulos que criam e buscam faturas e links de pagamento.

O app do Perly Pay leva os seus pagamentos para o Make. Uma fatura paga pode preencher uma planilha, atualizar um CRM ou dar um cargo no Discord; um formulário pode criar uma fatura e enviar o checkout. Não há nada para hospedar nem código.

> **Nota:** Uma chave de teste e uma de produção são duas conexões. Um cenário com a conexão de teste só vê pagamentos de teste.

## Conectar

1. **Pegue uma chave** — No Perly Pay: Dashboard → Developers → API keys. `sk_test_…` para o [modo de teste](https://pay.perly.io/docs/test-mode.md), `sk_live_…` para dinheiro real.
2. **Adicione o Perly Pay a um cenário** — O app está a caminho da lista de apps do Make. Enquanto não aparece, [escreva para nós](https://pay.perly.io/pt/contact) para pedir o link de convite; abra-o uma vez e depois procure **Perly Pay** ao adicionar um módulo.
3. **Conecte** — **Add** uma conexão e cole a chave. Dê um nome que diferencie a de teste da de produção.

## Gatilhos instantâneos

| Módulo | Quando | Evento |
| --- | --- | --- |
| Watch paid invoices | Paga por inteiro, remetente verificado. É hora de liberar o acesso ou enviar o pedido. | `invoice.fulfilled` |
| Watch underpaid invoices | O comprador enviou menos do que a fatura pede. | `invoice.underpaid` |
| Watch opened refunds | Você abriu um [reembolso](https://pay.perly.io/docs/refunds.md). | `refund.requested` |
| Watch confirmed refunds | Um reembolso que você enviou foi confirmado na rede. | `refund.confirmed` |
| Watch started subscriptions | Uma [assinatura](https://pay.perly.io/docs/subscriptions.md) começou. | `subscription.created` |
| Watch renewed subscriptions | Um assinante pagou o próximo período. | `subscription.renewed` |
| Watch ended subscriptions | Uma assinatura terminou. É hora de retirar o acesso. | `subscription.ended` |
| Watch new customers | Um comprador novo. | `customer.created` |

Quando você adiciona o webhook de um gatilho no Make, aparece em Dashboard → Developers → Webhooks um webhook como **Make: Paid invoices**; quando você o apaga no Make, ele some. Antes de o cenário rodar, o Make busca cada entrega no Perly Pay com a sua chave, e o Perly Pay entrega cada uma só uma vez: uma requisição que não vem do Perly Pay, ou enviada de novo, não executa nada. Cada webhook é um dos 16 que um modo pode ter.

Cada gatilho entrega o evento e o objeto a que ele se refere (fatura, reembolso, assinatura ou cliente) do jeito que a [API](https://pay.perly.io/docs/api.md) os tem. Valores em moeda fiat vêm em centavos (`total` 4900 é 49.00): divida por 100 no mapeamento. Valores em cripto vêm na menor unidade da moeda, com os `decimals` ao lado.

## Módulos

| Módulo | O que você informa | O que você recebe |
| --- | --- | --- |
| Create an invoice | Um valor (como 49.00), uma descrição; se quiser, moeda, e-mail do cliente, endereço de retorno, metadados | Uma fatura com o checkout dela (**Payment page URL**) para o comprador |
| Create a payment link | Um preço, ou o nome e o valor de um produto novo | Uma página que o vende: compartilhe onde quiser |
| Get an invoice | O id da fatura | O status dela, o que chegou, o checkout |
| Search customers | Um e-mail, ou nada para todos | Clientes, os mais novos primeiro |
| Make an API call | Um caminho como `/invoices`, um método e um corpo JSON se precisar | A resposta da API como vem, para o que os outros módulos não fazem |

## Receitas

### Pagamento → linha no Google Sheets

1. **Gatilho** — Perly Pay → **Watch paid invoices**. Adicione um webhook; rode o cenário uma vez e pague uma fatura de teste para o Make aprender os campos.
2. **Ação** — Google Sheets → **Add a Row**, numa planilha com colunas como Data, E-mail, Valor, Moeda.
3. **Mapeie** — Data → Invoice: Paid at, E-mail → Customer email, Valor → `Total (cents) / 100`, Moeda → Payment: Coin. Ative.

### Pagamento → cargo no Discord

O Discord precisa saber quem pagou. Coloque o id do Discord do comprador na fatura ao criá-la e leia de volta quando ela for paga.

1. **Cenário 1: a fatura** — Gatilho: o seu formulário de cadastro com e-mail e id do Discord. Perly Pay → **Create an invoice**, chave de metadados `discord_user_id`, valor: a resposta do formulário. Depois envie ao comprador a **Payment page URL**.
2. **Cenário 2: o cargo** — Perly Pay → **Watch paid invoices**. Discord → **Add a Role to a Member** (ou **Make an API call** para o Discord): o seu servidor, o cargo, e o membro = Invoice: Metadata → `discord_user_id`.
3. **Retire o cargo** — Para uma assinatura, **Watch ended subscriptions** retira o cargo do mesmo jeito.

## Teste

Com a conexão de teste, crie uma fatura (com o módulo ou no painel) e pague com moedas de teste ou pela API com o id da fatura:

```bash
curl -X POST https://pay.perly.io/api/v1/invoices/inv_…/simulate \
  -H "Authorization: Bearer $PERLY_PAY_SECRET_KEY" -H "Content-Type: application/json" -d '{}'
```

Em alguns segundos o cenário roda. O History dele mostra cada execução e o que chegou.

## Pagamentos reais

- Ative a produção no Perly Pay e conecte as chaves públicas da sua carteira.
- Adicione uma conexão com uma chave `sk_live_…`. Em cada cenário, adicione nela um webhook novo para o gatilho e mude para ela os outros módulos do Perly Pay.
- Pague uma fatura real pequena e veja como ela chega.
