> For the complete documentation index, see [llms.txt](https://apidoc.tokenpay.me/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://apidoc.tokenpay.me/pt-br/pagamento/notificacao-de-callback.md).

# Notificação de callback

{% hint style="info" %}
DICA (TIP)

Após a conclusão do pagamento, o sistema enviará os resultados e informações relevantes do pagamento ao comerciante, e o comerciante precisa receber e retornar a resposta. Ao interagir com notificações em segundo plano, se o sistema receber uma resposta do comerciante que não for bem-sucedida ou atingir o tempo limite, o sistema considerará que a notificação falhou. A notificação será reiniciada periodicamente de acordo com uma determinada política para maximizar a taxa de sucesso da notificação, mas não há garantia de que a notificação será bem-sucedida. (A frequência da notificação é 0s/15s/30s/3m/10m/20m/30m/60m/3h/6h)
{% endhint %}

{% hint style="warning" %}
AVISO (WARNING)

Nota: A mesma notificação pode ser enviada várias vezes ao comerciante. E o comerciante deve ser capaz de lidar corretamente com a notificação duplicada. As práticas recomendadas são as seguintes: Ao processar uma notificação, primeiramente verifique o status do pagamento para determinar se a notificação foi processada. Se não, processe-a novamente. Se sim, retorne diretamente um resultado de sucesso. Antes da verificação de estado e do processamento de dados comerciais, o controle de simultaneidade é executado usando bloqueios de dados para evitar o caos de dados causado pela reentrada de função.
{% endhint %}

{% hint style="danger" %}
PERIGO (DANGER)

Os comerciantes devem fazer a verificação da assinatura no conteúdo do retorno de chamada de pagamento e verificar se o valor do pagamento retornado está correto, para evitar vazamento de dados e o surgimento de "notificações falsas", resultando em perda de fundos.
{% endhint %}

### **POST**

{% code fullWidth="false" %}

```
O parâmetro notify_url enviado por 'Criar Pagamento' (Create Payout). Se o link não puder ser acessado, 
seu comerciante não poderá receber a notificação do sistema.
```

{% endcode %}

#### Request Body

| Nome             | Tipo   | Descrição                                                                                                                                                                                                                                                      | Descrição |
| ---------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- |
| app\_id          | string | Aplicativo                                                                                                                                                                                                                                                     |           |
| mch\_id          | string | Comerciante                                                                                                                                                                                                                                                    |           |
| create\_time     | time   | Hora da notificação                                                                                                                                                                                                                                            |           |
| resource\_type   | string | O tipo de dados do recurso da notificação. A notificação de sucesso do pagamento é encrypt-resource                                                                                                                                                            |           |
| event\_type      | string | Tipo de notificação. O tipo de notificação de sucesso do pagamento é PAYPAYOUT.SUCCESS.                                                                                                                                                                        |           |
| resource         | object | Dados de recursos de notificação                                                                                                                                                                                                                               |           |
| » original\_type | string | O tipo de retorno de chamada original é payout                                                                                                                                                                                                                 |           |
| » algorithm      | string | Atualmente, apenas AES-256-ECB é suportado para o algoritmo de criptografia que criptografa os dados do resultado                                                                                                                                              |           |
| » ciphertext     | string | Texto cifrado de dados de resultado liga/desliga codificado em Base64. Se ativado, o conteúdo criptografado é retornado. Após a descriptografia, é uma string json de [PayoutTransactionDetail](/pt-br/descricao/estrutura-de-dados.md#detalhes-do-pagamento). |           |
| » nonce          | string | Criptografar usando strings aleatórias                                                                                                                                                                                                                         |           |

### **Exemplo de requisição (Request example)**

```json
{
	"app_id": "xxxxx",
	"mch_id": "zzzzzz",
	"create_time": "2023-06-26T17:21:17.754429+08:00",
	"resource_type": "encrypt-resource",
	"event_type": "PAYPAYOUT.SUCCESS",
	"resource": {
		"original_type": "payout",
		"algorithm": "AEAD_AES_256_GCM",
		"ciphertext": "I/psKgdkVwxbkEIWtwRxfxLzViuRS+gJTQSdLf+lmK7awoqUcIJisTAJx0Qbv4K6wV8WgyMRFYHD5CCLKmFNU2OnmEm2f2vGhaoS2h28A9BEGx1CWEUw3tfldf/+VWlBAnIBylFjHzbSo7fgn7S3fFEAZHTxoy+9jNIoynqHZbn4Y6eucj1YCw0ZmuKHPpPPrvclbhHmaZHfau+SKyag3C0/cj7zu4mBkRZ39zuk9B7DAADzaRENOZ/ZyibU+zs3gibnCbI2NWEnQWIiCi7vK0jq/FCBWytHihQM364zlVrPPCBDbv2MSqk4fyAM7IDeT6h/z/2kmDOQ6aFPYlLojIkgCCOIevQITS9E+BS1rgmmH+DRKsJNiD257aLhX2/F53VEnjfqqKdDs2lqfX0dCMLqselGUT981fFKceXg+r6hQqcUzLlF28XL5NrfVPreRDo6jI2K0tCy9cOx+cxH3yoDzOFBzM0RlxWqvUhRsMv9ZGfpgCZ0o9HxNObqLjVCQzE5SWPXvmkw+QpWk0oNUvpCEDhj9Vfq6XCV8j3tT3tZTYCa5UQy9VCdmval/2vb50QaAgDYXU6PH/9Xv7AXg6kg29iK+Ec0euxZxosRoVczzRg+0Arl/zvBcphWNIUTdx5IcA12WtP+krk9NNGtj7igk21DhcseJrKBpG7ll9O/Wmq1L8BwW+ypuJS+kHV61jRNYMFJY48Pt11Zoukgqu94kzrhz+KET8q463zlyu/Kp2z5yWI8xwvOtuyjosszfm6/YFQTFdhcmHY3X1yz44NaVG9FPev1QPoPmI7K3Jqa0Q8Q5kQTbe/KrB0eyRpXtyAaShOEeiS2ypmFAC81/m4mjuTd24yAjBcTIfBYzjxwjPbKfv+OYKahDwJP1b7EhsM+Sgu48wQ+pp6wc8TYCOkiRR1pKeb3kaxpQGzlq7VNbWHFPw9TDiyCIEnr8T5eiJtzJJ0U0iIfqN5WHk7iHiNK4Y4TvmdF4f6UyeMTHvaprvzUZI8il5wvoCgIiRUY7qvv5V/KL4ZWHN6Y3EEvQmP4WDo3Wx5IFW8C1gkyFv8lQ1COSNYMPog6RLAI0rNvKZjvc4baWwcHmk/fM92X19F2Y0DArqLFFUTJVE5bUQXQexiUO1e8IL07wqY=",
		"nonce": "d8816e8d6dca4409b790a4bcaa25c621"
	}
}
```

### **Exemplo de retorno (Return example)**

```
success
```

Retorne `success` para notificar o servidor de notificação após receber com êxito a solicitação de retorno de chamada. Após o servidor de notificação receber `success`, a notificação é interrompida. Caso contrário, a notificação será enviada 10 vezes na frequência de 0s/15s/30s/3m/10m/20m/30m/60m/3h/6h.
