# 거부된 결제 결제 시스템에서 트랜잭션이 거부되면 엑솔라는 구성된 웹훅 URL 측의 ps_declined 유형 웹훅에 트랜잭션 세부 정보를 전송합니다. 웹훅은 승인 또는 결제 처리 단계에서 전송됩니다. 이 경우, payment\ order_paid 웹훅이 전송되지 않았습니다. 결제 시스템이 거부되는 일반적인 이유: * 카드 승인에 실패(예: 기술적 오류 또는 은행의 응답이 없어 결제 시스템이 승인 절차를 완료하지 못함)했거나 거부되었습니다(예: 은행에서 응답했지만 자금이 부족하거나 카드 정보가 유효하지 않아 트랜잭션을 거부함). * 3-D Secure 검증에 실패했거나, 완료되지 않았거나, 사용자 확인 시간이 초과되었습니다. * 계좌 폐쇄 또는 유효하지 않은 카드 번호 등 되돌릴 수 없는 오류로 인해 처리업체 또는 매입 은행이 일시적으로 접속이 불가능하거나 강제 거부 메시지를 반환합니다. 근본적인 문제를 해결하지 않고 재시도하면 트랜잭션이 성공적으로 이루어지지 않습니다. 다음과 혼동되어서는 안 됩니다. * 사기 방지 거부는 afs_reject 웹훅을 통해 보고됩니다. * 성공적인 결제 후 환불 및 부분 환불은 환불 및 partial_refund 웹훅을 통해 보고됩니다. 참고 ps_declined 웹훅을 수신하려면 고객 성공 매니저에게 문의하거나 csm@xsolla.com으로 이메일을 보내주세요. Endpoint: POST payment-declined Version: 1.0 ## Request fields (application/json): - `notification_type` (string, required) 알림 유형. - `refund_details` (object) 환불 세부 정보(개체). - `refund_details.author` (string) 환불 시작자. 필드 값이 다음 표에 따라 전달됩니다. 환불 시작자 필드 값 게임(API를 통해). API 게시자 계정 사용자(자동 환불). 사용자 이메일 게시자 계정 사용자(엑솔라 고객 지원의 도움을 받아). support@xsolla.com 엑솔라(엑솔라 고객 지원의 도움을 받아). support@xsolla.com - `refund_details.code` (integer) 코드 ID. - `refund_details.reason` (string) 환불 이유. - `settings` (object) 사용자 정의 프로젝트 설정(개체). - `settings.merchant_id` (integer) 판매자 ID입니다. - `settings.project_id` (integer) 프로젝트 ID. 이 매개 변수는 [관리자 페이지](https://publisher.xsolla.com/)의 프로젝트 이름 옆에서 확인할 수 있습니다. - `transaction` (object, required) 트랜잭션 데이터 관련 값. - `transaction.dry_run` (integer) 테스트 트랜잭션. 테스트 트랜잭션의 경우 매개 변수는 1개 값을 갖습니다. 또는, 트랜잭션이 실제로 이루어지는 경우 매개 변수가 전송되지 않습니다. - `transaction.external_id` (string) 트랜잭션 외부 ID. - `transaction.id` (integer) 트랜잭션 ID. - `transaction.payment_method` (integer) 결제 수단 ID. - `user` (object) 사용자 세부 사항(개체). - `user.country` (string) 사용자의 국가. [ISO 3166-1 alpha-2 standard](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)에 따른 2자로 된 국가 코드를 사용합니다. - `user.email` (string) 사용자 이메일. - `user.id` (string, required) 사용자 ID. - `user.ip` (string) 유저 IP 주소입니다. - `user.name` (string) 사용자 이름. ## Response 400 fields (application/json): - `error` (object) - `error.code` (string) - `error.message` (string) ## Response 204 fields ## Response 500 fields