# Callback

Após a finalização do pedido, será retornado através do callback\_url (cadastrado na integração da Api dentro da Dashboard Payhow), dados referentes ao pedido finalizado. Sendo que o body pode altera se for um create (primeiro retorno de callback do pedido) ou update (quando há uma atualização no status de pagamento)

### Descrição do body JSON do Callback (Create) <a href="#descricao-do-body-json-da-requisicao" id="descricao-do-body-json-da-requisicao"></a>

| Chave                  | Tipo   | Descrição                                                                                                                |
| ---------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------ |
| order\_status          | string | create (primeiro callback referente ao pedido)                                                                           |
| order\_id              | string | É o nº do pedido enviado no parametro opcional "order\_id" do carrinho, caso não sido enviado, será retornado como null. |
| payhow\_order\_id      | int    | Número de pedido criado dentro da Payhow                                                                                 |
| payment\_method        | string | forma de pagamento podendo ser : wallet*app (qr\_code), credit*card\_checkout (cartão de crédito) ou boleto              |
| payment\_method\_title | string | descrição da forma de pagamento                                                                                          |
| status\_payment        | string | status do pagamento: (processing, paid, refunded, cancelled)                                                             |
| user\_id               | string | id do usuário, que foi enviado no endpoint do carrinho.                                                                  |

#### Billing

| Chave       | Tipo   | Descrlção                           |
| ----------- | ------ | ----------------------------------- |
| first\_name | string | Nome                                |
| last\_name  | string | Sobrenome                           |
| address     | string | Endereço                            |
| complement  | string | Complemento                         |
| city        | string | Cidade                              |
| state       | string | Estado                              |
| postcode    | string | CEP                                 |
| country     | string | País                                |
| email       | string | email recebido pela API do carrinho |
| phone       | string | Telefone                            |

<br>

#### Shipping

| Chave                   | Tipo   | Descrição                                                                                            |
| ----------------------- | ------ | ---------------------------------------------------------------------------------------------------- |
| method\_title           | string | Método de envio escolhido                                                                            |
| method\_id              | string | id do método de envio                                                                                |
| melhor\_envio\_protocol | string | caso tenha sido cotado pelo melhor envio, retornará o protocolo, se não, voltará null.               |
| melhor\_envio\_tracking | string | caso tenha sido cotado pelo melhor envio, retornará o código de monitoramento, se não, voltará null. |
| total                   | string | valor total do frete.                                                                                |
| first\_name             | string | Nome                                                                                                 |
| last\_name              | string | Sobrenome                                                                                            |
| company                 | string | empresa (apenas se for enviado para PJ, caso contrário virá null).                                   |
| address                 | string | Endereço                                                                                             |
| complement              | string | complemento                                                                                          |
| city                    | string | Cidade                                                                                               |
| state                   | string | Estado                                                                                               |
| postcode                | string | CEP                                                                                                  |
| country                 | string | País                                                                                                 |

#### Items

| Chave    | Tipo   | Descrição                                           |
| -------- | ------ | --------------------------------------------------- |
| id       | int    | id do produto fornecido na API de envio do carrinho |
| name     | string | Nome do produto                                     |
| price    | string | Preço unitário do produto.                          |
| quantity | string | Quantidade comprada.                                |
| total    | string | Valor total da compra do produto.                   |

### Exemplo de Callback (Create)

```json
{
    "order_status": "create",
    "order_id" : "1029",
    "payhow_order_id": 1649,
    "payment_method": "wallet_app",
    "payment_method_title": "Pagamento via aplicativo",
    "status_payment": "processing",
    "user_id": "1",
    "billing": {
        "first_name": "João",
        "last_name": "da Silva",
        "address": "Avenida são sebastião",
        "complement": "Piso 3 loja 7",
        "city": "Ibiúna",
        "state": "SP",
        "postcode": "18180-000",
        "country": "BR",
        "email": "comprador@sandbox.pagseguro.com.br",
        "phone": "15999999910"
    },
    "shipping": {
        "method_title": "Correios - PAC",
        "method_id": "Correios",
        "melhor_envio_protocol": null,
        "melhor_envio_tracking": null,
        "total": "24.30",
        "first_name": "João",
        "last_name": "da Silva",
        "company": "",
        "address": "Avenida são sebastião",
        "complement": "Piso 3 loja 7",
        "city": "Ibiúna",
        "state": "SP",
        "postcode": "18180-000",
        "country": "BR"
    },
    "items": [
        {
            "id": 495,
            "name": "Dying Light",
            "price": "1.50",
            "quantity": 1,
            "total": "1.50"
        },
        {
            "id": 495,
            "name": "Dying Light",
            "price": "1.50",
            "quantity": 1,
            "total": "1.50"
        }
    ]
}
```

### Descrição do body JSON do Callback (Update) <a href="#descricao-do-body-json-da-requisicao" id="descricao-do-body-json-da-requisicao"></a>

| Chave             | Tipo   | Descrição                                                                                        |
| ----------------- | ------ | ------------------------------------------------------------------------------------------------ |
| order\_status     | string | Retorna update, indicando que é uma atualização de status de pagamento de um pedido já realizado |
| order\_id         | string | retornar caso tenha sido previamente enviado na criação do carrinho                              |
| payhow\_order\_id | int    | id criado pela payhow de referência para criação e atualização de pedido                         |
| status\_payment   | string | volta o status de pagamento atualizado.                                                          |

## Exemplo de Callback (Update)

```json
{
    "order_status": "create",
    "order_id" : "1029",
    "payhow_order_id": 1649,
    "status_payment": "processing"    
}
```

## Observações

O callback é um POST, por isso é esperado que seja retornado um true, para confirmarmos que os dados foram recebidos.


---

# 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://docs.payhow.com.br/3.-callbacks/callback.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.
