# Webhook

## Visão geral

A integração via **Webhook** da Wiapy permite que você receba notificações em tempo real sempre que uma compra é realizada. Ao configurar a URL de destino, nossa plataforma fará uma requisição **HTTP POST** enviando um payload em formato JSON contendo informações da transação.

### Autenticação

O token que você cadastrar será enviado como um header `Authorization` em cada requisição.

```javascript
authorization: seu_token_aqui
```

### Exemplo de Payload Enviado (Pagamento)

<pre><code>
<strong>{
</strong>    "payment": {
        "id": "680bb49dcc58d1620569cb2e",
        "status": "paid",
        "amount": 1770,
        "payment_method": "pix",
        "type": "payment"
        "installments": 0,
        "installment_interest_rate": 0,
        "credit_card_interest_fee": 0,
        "pix_boleto": {
            "code": "copia-cola-pix-ou-codigo-barra-boleto",
            "url": "https://wiapy.com/url-do-pix-ou-boleto"
        },
        "fee": 190,
        "dt_create": "2025-04-25T16:13:17.284Z",
        "dt_update": "2025-04-25T16:13:17.284Z"
    },
    "subscription": {},
    "customer": {
        "id": "680bb49bcc58d1620569cb24",
        "name": "Thay",
        "email": "thay@wiapy.com",
        "mobile_phone": "(11) 99999-9999",
        "document": "123.456.678.90"
    },
    "checkout": {
        "id": "66e0799f17f298ff3c60f345",
        "title": "Produto teste",
        "amount": 990,
        "orderbump": [
            {
                "id": "67b9f0f5f777cbea4ba9cbfa",
                "title": "Orderbump teste",
                "amount": 780
            }
        ]
    },
    "products": [
        {
            "id": "66df9e14dbebe565ee587fc3",
            "title": "Nome do meu produto 1",
            "type": "Curso Online",
            "itens": [
                {
                    "title": "Acesso via Área de Membros",
                    "url": "https://wiapy.com/login"
                }
            ]
        },
        {
            "id": "67ddba018866dea35e314915",
            "title": "Nome do meu Produto 2",
            "type": "E-book",
            "itens": [
                {
                    "title": "Arquivo 01",
                    "url": "URL DO ARQUIVO"
                },
                {
                    "title": "Arquivo 02",
                    "url": "URL DO ARQUIVO"
                }
            ]
        },
        {
            "id": "67ddba018866dea35e314915",
            "title": "Nome do meu Produto 3",
            "type": "Mentoria",
            "itens": [
                {
                    "title": "Acesso via Área de Membros",
                    "url": "https://wiapy.com/login"
                }
            ]
        },
        {
            "id": "67ddba018866dea35e314915",
            "title": "Nome do meu Produto 4",
            "type": "Externo",
            "itens": []
        }
    ],
    "tracking": {
        "ip": null,
        "useragent": null,
        "fbc": null,
        "fbp": null,
        "utm_source": null,
        "utm_medium": null,
        "utm_campaign": null,
        "utm_content": null,
        "utm_term": null
    }
}
</code></pre>

### Exemplo de Payload Enviado (Carrinho abandonado)

<pre><code>
<strong>{
</strong>    "payment": null,
    "subscription": null,
    "customer": {
        "id": null,
        "name": "Thay",
        "email": "thay@wiapy.com",
        "mobile_phone": "(11) 99999-9999",
        "document": null
    },
    "checkout": {
        "id": "66e0799f17f298ff3c60f345",
        "title": "Produto teste",
        "amount": 990,
        "orderbump": null
    },
    "products": null,
    "tracking": null
}
</code></pre>

> **Observação:** Todos os valores financeiros estão representados em **centavos**.

### Detalhamento dos Campos

#### `payment.status`

| Valor                  | Descrição                                                                                  |
| ---------------------- | ------------------------------------------------------------------------------------------ |
| paid                   | Pagamento aprovado                                                                         |
| unpaid                 | Não pago / Aguardando Pagamento (o pix / boleto ao ser criado ele é gerado com esse status |
| credit\_card\_declined | Cartão de crédito recusado                                                                 |
| refunded               | Pagamento estornado                                                                        |
| chargedback            | Pagamento sofreu chargeback                                                                |

#### `payment.payment_method`

| Valor        | Descrição                                             |
| ------------ | ----------------------------------------------------- |
| pix          | Método de pagamento escolhido foi o pix               |
| credit\_card | Método de pagamento escolhido foi o cartão de crédito |
| boleto       | Método de pagamento escolhido foi o boleto            |

#### `payment.type`

| Valor        | Descrição                                                |
| ------------ | -------------------------------------------------------- |
| payment      | Pagamento avulso (objeto `subscription` vazio `{}`)      |
| subscription | Assinatura recorrente (objeto `subscription` preenchido) |

### Estrutura de `subscription` (se aplicável)

Quando o pagamento for uma **assinatura**, o campo `subscription` será preenchido com:

```
{
    "id": "16e0799f17f298ff3c60f3e7",
    "status": "paid",
    "interval": "month",
    "dt_start": "2025-04-25T16:13:17.284Z",
    "dt_end": "2025-05-25T16:13:17.284Z",
    "active": true,
    "next_billing": "2025-05-25T16:13:17.284Z",
}
```

### Estrutura de `products`

O array `products` lista todos os produtos liberados no checkout, inclusive orderbumps adquiridos.

#### `products.type`

| Valor        | Descrição                                                                                    |
| ------------ | -------------------------------------------------------------------------------------------- |
| E-book       | É quando o produto cadastrado é do tipo ebook, em itens enviamos os arquivos com nome e url. |
| Curso Online | É quando o acesso é um curso com vídeos para assistir pela área de membros.                  |
| Mentoria     | É quando a entrega é uma mentoria e pode haver arquivos na área de membros.                  |
| Externo      | É quando o acesso é liberado externo e não exige nenhuma intereção da Wiapy.                 |

### Estrutura do `tracking`

O objecto `tracking` contem todos os parametros de trackemento.

| Campo         | Descrição                                                                                                                                                   |
| ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ip            | Endereço IP do usuário que acessou, usado para identificar a origem da requisição (localização aproximada, rede etc.).                                      |
| useragent     | String que identifica o navegador, sistema operacional e dispositivo que o usuário usou para acessar.                                                       |
| fbc           | Parâmetro do **Facebook Click ID**. É um identificador que o Facebook gera quando o usuário clica em um anúncio, usado para rastrear a origem da conversão. |
| fbp           | Parâmetro do **Facebook Browser ID**. Identificador único armazenado no navegador do usuário pelo Pixel do Facebook para rastreamento de sessões.           |
| utm\_source   | Origem da campanha (ex: google, facebook, newsletter).                                                                                                      |
| utm\_medium   | Meio da campanha (ex: cpc, email, social, banner).                                                                                                          |
| utm\_campaign | Nome da campanha de marketing (ex: promocao\_black\_friday, lancamento\_curso).                                                                             |
| utm\_content  | Usado para diferenciar conteúdos ou links dentro da mesma campanha (ex: botao\_azul vs botao\_vermelho).                                                    |
| utm\_term     | Usado para registrar a **palavra-chave** em campanhas pagas (Google Ads e Facebook, por exemplo).                                                           |

## Considerações Técnicas

* **Requisições** são enviadas via **POST**.
* **Formato dos dados**: `application/json`.
* **Header de Autenticação**: `Authorization: seu_token`.
* **Valores monetários** sempre em centavos (ex: R$ 17,70 → `1770`).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ajuda.wiapy.com/wiapy/produtor/integracoes/webhook.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
