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

# Resgate de produto da loja de recompensas

> O principal propósito desse webhook é fornecer uma notificação em tempo real quando um usuário resgatar um produto da loja de gamicação.

# 📈 Tipo de dados do payload:

```json typedata7.json theme={null}
Usuário:
	ID: string
	Nome: string
	Email: string
	Endereço:
		CEP: string
		UF: string
		Cidade: string
		Bairro: string
		Logradouro: string
		Número: string
		Complemento: string
		Referência: string
Resgate:
	ID: string
	Data do Resgate: string (formato: "yyyy-MM-dd HH:mm:ss")
	Quantidade: string
	Pagamento Total: string
	Instituição:
		ID: string
		Nome: string
	Escola:
		ID: string
	Nome: string
	Produto:
		ID: string
		Nome: string
		Tipo: string
		Preço: string
		Estoque Restante: string
```

### Detalhes do Evento

* Nome: Nome do evento em formato de texto.
* Slug: Identificador único do evento em formato de texto.
* Enviar em: Data e hora do evento no formato "yyyy-MM-dd HH:mm:ss"..

### Dados do Usuário:

* ID: Identificador numérico do usuário.
* Nome: Nome do usuário em formato de texto.
* Email: Endereço de email do usuário em formato de texto.
* Endereço:
  * CEP: Código de Endereçamento Postal do usuário em formato de texto.
  * UF: Unidade Federativa (estado) do usuário em formato de texto.
  * Cidade: Cidade do usuário em formato de texto.
  * Bairro: Bairro do usuário em formato de texto.
  * Logradouro: Logradouro do usuário em formato de texto.
  * Número: Número do endereço do usuário em formato de texto.
  * Complemento: Complemento do endereço do usuário em formato de texto.
  * Referência: Referência do endereço do usuário em formato de texto.

### Dados do Resgate:

* ID: Identificador do resgate em formato de texto.
* Data do Resgate: Data e hora do resgate no formato "yyyy-MM-dd HH:mm:ss".
* Quantidade: Quantidade do produto resgatado em formato de texto.
* Pagamento Total: Valor total do pagamento em formato de texto.
* Instituição:
  * ID: Identificador da instituição relacionada ao resgate em formato de texto.
  * Nome: Nome da instituição em formato de texto
* Escola
  * ID: Identificador da escola relacionada ao resgate em formato de texto.
  * Nome: Nome da escola em formato de texto.
* Produto
  * ID: Identificador do produto resgatado em formato de texto.
  * Nome: Nome do produto em formato de texto.
  * Tipo: Tipo do produto em formato de texto.
  * Preço: Preço do produto em formato de texto.
  * Estoque Restante: Quantidade restante em estoque do produto em formato de texto.

***

# 📈 Dados do evento:

Nome: Resgate do Produto\
Slug: shop.product.redemption\
Enviar em: Data do envio

***

# Ação para disparar o evento:

O evento será acionado quando o usuário resgatar um produto da loja de gamificação.

***

# Payload/Exemplo de resposta:

O sistema deve responder com um código HTTP 200 OK se a operação for bem-sucedida. Se houver algum erro, o sistema deve responder com um código HTTP 4xx ou 5xx e uma mensagem de erro.

```json payload6.json theme={null}
{
    "name": "Resgate do Produto",
    "slug": "shop.product.redemption",
    "send_at": "2023-06-20 14:53:00"
}
data    {
    "user": {
        "id": "123",
        "name": "Aluno",
        "email": "aluno@toolzz.me",
        "address": {
            "cep": "12345-123",
            "uf": "SP",
            "cidade": "Nome da cidade",
            "bairro": "Nome do bairro",
            "logradouro": "endereço",
            "numero": "01",
            "complemento": "Ao lado da casa X",
            "referencia": "Ref"
        }
    },
    "exchange": {
        "id": "321",
        "exchange_date": "2023-06-20 14:52:59",
        "quantity": "1",
        "total_payment": "39",
        "institution": {
            "id": "123456",
            "name": "Nome da instituicao"
        },
        "school": {
            "id": "654",
            "name": "Nome da escola"
        },
        "product": {
            "id": "213",
            "name": "Nome do produto",
            "type": "price",
            "price": "39",
            "stock_left": "49"
        }
    }
}
```

# 🔒 Segurança:

Certifique-se de que a URL de destino esteja correta antes de começar a enviar payloads. Verifique se os parâmetros enviados estão corretos e completos. Certifique-se de que os destinatários do webhook estejam corretos e sejam válidos. Registre e monitore todas as chamadas de webhook para fins de auditoria e rastreamento de problemas.

***

# ⚠️ Códigos de Erro:

O sistema deve responder com um código HTTP 200 OK se a operação for bem-sucedida. Se houver algum erro, o sistema deve responder com um código HTTP 4xx ou 5xx e uma mensagem de erro.

***

# 💬 Glossário:

* Payload: dados que são enviados para o webhook.
* Slug: um identificador único para o evento.
* Autenticação: processo de verificação da identidade do remetente de uma solicitação.
