> 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/ko-kr/undefined-4/undefined-3.md).

# 콜백 알림

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

지급이 완료된 후 시스템은 관련 지급 결과 및 정보를 가맹점에게 전송하며, 가맹점은 이를 수신하여 응답을 반환해야 합니다. 백그라운드 알림과 상호 작용할 때 시스템이 가맹점의 응답이 실패하거나 시간이 초과되었다는 것을 수신하면 시스템은 알림이 실패한 것으로 간주합니다. 알림은 알림의 성공률을 극대화하기 위해 특정 정책에 따라 주기적으로 다시 시작되지만 알림이 성공한다는 보장은 없습니다. (알림 빈도는 0초/15초/30초/3분/10분/20분/30분/60분/3시간/6시간입니다)
{% endhint %}

{% hint style="warning" %}
경고 (WARNING)

참고: 동일한 알림이 가맹점 시스템으로 여러 번 전송될 수 있습니다. 가맹점 시스템은 중복 알림을 올바르게 처리할 수 있어야 합니다. 권장되는 방법은 다음과 같습니다. 알림을 처리할 때 먼저 지급 상태를 확인하여 알림이 처리되었는지 확인합니다. 아니오인 경우 다시 처리합니다. 예인 경우 바로 성공 결과를 반환합니다. 상태 확인 및 비즈니스 데이터 처리 전에 함수 재진입으로 인한 데이터 혼란을 피하기 위해 데이터 잠금을 사용하여 동시성 제어를 수행합니다.
{% endhint %}

{% hint style="danger" %}
위험 (DANGER)

가맹점은 데이터 유출 및 자금 손실을 초래하는 "허위 알림"의 출현을 방지하기 위해 지급 콜백 내용에 대해 서명 검증을 수행하고 반환된 결제 금액이 올바른지 확인해야 합니다.
{% endhint %}

### **POST**

{% code fullWidth="false" %}

```
'지급 생성(Create Payout)'에서 제출한 notify_url 매개변수입니다. 해당 링크에 접근할 수 없는 경우, 
귀하의 가맹점은 시스템에서 알림을 수신할 수 없습니다.
```

{% endcode %}

#### Request Body

| 이름               | 유형     | 설명                                                                                                                                                       | 설명 |
| ---------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -- |
| app\_id          | string | 애플리케이션                                                                                                                                                   |    |
| mch\_id          | string | 가맹점                                                                                                                                                      |    |
| create\_time     | time   | 알림 시간                                                                                                                                                    |    |
| resource\_type   | string | 알림의 리소스 데이터 유형입니다. 결제 성공 알림은 encrypt-resource입니다.                                                                                                        |    |
| event\_type      | string | 알림 유형입니다. 결제 성공 알림의 유형은 PAYPAYOUT.SUCCESS입니다.                                                                                                            |    |
| resource         | object | 알림 리소스 데이터                                                                                                                                               |    |
| » original\_type | string | 원래 콜백 유형은 payout입니다.                                                                                                                                     |    |
| » algorithm      | string | 결과 데이터를 암호화하는 암호화 알고리즘에 대해 현재 AES-256-ECB만 지원됩니다.                                                                                                        |    |
| » ciphertext     | string | Base64로 인코딩된 온/오프 결과 데이터 암호문입니다. 활성화된 경우 암호화된 콘텐츠가 반환됩니다. 복호화 후에는 [PayoutTransactionDetail](/ko-kr/undefined-1/undefined-6.md#undefined-3)의 json 문자열입니다. |    |
| » nonce          | string | 무작위 문자열을 사용하여 암호화                                                                                                                                        |    |

### **요청 예시 (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"
	}
}
```

### **반환 예시 (Return example)**

```
success
```

콜백 요청을 성공적으로 수신한 후 알림 서버에 알리려면 `success`를 반환하십시오. 알림 서버가 `success`를 수신하면 알림이 중지됩니다. 그렇지 않으면 알림은 0초/15초/30초/3분/10분/20분/30분/60분/3시간/6시간의 빈도로 10회 전송됩니다.
