Tra cứu hoàn tiền¶
Merchant Server gửi Payment ID và Refund ID để truy vấn thông tin giao dịch hoàn tiền
Đặc tả API¶
Tham số | Giá trị |
---|---|
Method | POST |
Endpoint | {base_url}/v2/retrieve-refund |
Content-Type | application/json |
Request¶
Tham số | Kiểu dữ liệu | Ràng buộc | Bắt buộc | Mô tả | Ví dụ |
---|---|---|---|---|---|
payment_id | String | • Min length: 1 • Max length: 50 | ✔ | ID duy nhất để phân biệt các thanh toán | PAY_0001 |
refund_id | String | • Min length: 1 • Max length: 50 | ✔ | ID duy nhất để phân biệt các giao dịch hoàn tiền | RF_0001 |
Ví dụ Request:
Response¶
Tham số | Kiểu dữ liệu | Ràng buộc | Bắt buộc | Mô tả | Ví dụ |
---|---|---|---|---|---|
response_at | Datetime | Format ISO 8601 | ✔ | Thời điểm response được trả về | 2024-01-20T00:00:00.000001Z |
result | String | Một trong các giá trị sau: • SUCCESS: Xử lý yêu cầu thành công • FAILURE: Xử lý yêu cầu thất bại, dựa vào gateway_code để biết rõ nguyên nhân thất bại • PENDING: Giao dịch đang được xử lý. Khi có kết quả thành công hoặc thất bại, merchant sẽ được thông báo qua IPN • ERROR: Có lỗi từ yêu cầu, lỗi trong quá trình xử lý, hoặc không rõ nguyên nhân thất bại của yêu cầu • UNKNOWN: Không xác định kết quả của yêu cầu | ✔ | Kết quả tổng thể sau khi xử lý yêu cầu | SUCCESS |
gateway_code | String | Một trong các giá trị sau: • APPROVED: Thành công • PAYMENT_NOT_FOUND: Thanh toán không tồn tại • REFUND_NOT_FOUND: Giao dịch hoàn tiền không tồn tại Bắt buộc khi result khác ERROR | Tóm tắt thành công hoặc nguyên nhân thất bại | APPROVED | |
error | Json | Bắt buộc khi result là ERROR | Các thông tin cụ thể hơn về lỗi Gồm các tham số bên dưới | ||
error.cause | String | Một trong các giá trị: • INVALID_REQUEST: Các tham số của yêu cầu được gửi không hợp lệ • REQUEST_REJECTED: Yêu cầu bị từ chối • SERVER_BUSY: Server hiện đang bận, không thể xử lý yêu cầu • SERVER_FAILED: Lỗi server | ✔ | Loại nguyên nhân gây ra lỗi | INVALID_REQUEST |
error.explanation | String | Bắt buộc khi error.cause là SERVER_BUSY hoặc REQUEST_REJECTED | Nội dung mô tả lỗi | The request was rejected because we detected unusual behavior | |
error.field | Json | Bắt buộc khi error.cause là INVALID_REQUEST | Keys là tên các tham số không hợp lệ Values là danh sách các nội dung xác thực không hợp lệ, có kiểu là Json(khi các keys lồng nhau) hoặc List[String] | {"payment_id": ["This field may not be blank."] } | |
error.support_code | String | Bắt buộc khi error.cause là SERVER_FAILED | Mã lỗi nội bộ giúp Paykit dễ dàng hơn trong việc hỗ trợ Merchant khi gặp lỗi Server | 6f4c81832a6d45b1be2ab19edd267414 | |
payment | Json | Gồm các tham số bên dưới | Bắt buộc khi result là SUCCESS | Dữ liệu thanh toán | |
payment.id | String | • Min length: 1 • Max length: 50 | ✔ | ID duy nhất để phân biệt các thanh toán | PAY_0001 |
payment.payment_method | String | Một trong các giá trị: DOMESTIC_CARD, INTERNATIONAL_CARD | ✔ | Phương thức thanh toán | INTERNATIONAL_CARD |
payment.total_amount | Decimal | • Min value: 0.000001 • Max digits: 30 • Decimal places: 6 | ✔ | Tổng giá trị thanh toán | 100000 |
payment.captured_amount | Decimal | • Min value: 0 • Max digits: 30 • Decimal places: 6 | ✔ | Số tiền ghi nhận đã thanh toán | 0 |
payment.refunded_amount | Decimal | • Min value: 0 • Max digits: 30 • Decimal places: 6 | ✔ | Số tiền đã hoàn trả | 0 |
payment.refunding_amount | Decimal | • Min value: 0 • Max digits: 30 • Decimal places: 6 | ✔ | Số tiền đang hoàn trả | 0 |
payment.currency | String | Một trong các giá trị: VND | ✔ | Đơn vị tiền tệ thanh toán | VND |
payment.status | String | Một trong các giá trị: OPEN, PROCESSING, CLOSED | ✔ | Trạng thái thanh toán | CLOSED |
payment.result | String | Một trong các giá trị: CANCELED, APPROVED, DENIED, EXPIRED | Kết quả thanh toán | APPROVED | |
payment.due_time | Datetime | Format ISO 8601 | ✔ | Thời điểm hết hạn thanh toán | 2024-01-20T00:00:00.000000Z |
payment.start_at | Datetime | Format ISO 8601 | ✔ | Thời điểm khởi tạo thanh toán | 2024-01-16T00:00:00.000000Z |
payment.completed_at | Datetime | Format ISO 8601 | Thời điểm hoàn thành thanh toán | 2024-01-17T00:00:00.000000Z | |
refund | Json | Gồm các tham số bên dưới | Bắt buộc khi result là SUCCESS | Dữ liệu giao dịch hoàn tiền của thanh toán | |
refund.id | String | • Min length: 1 • Max length: 50 | ✔ | ID duy nhất để phân biệt các giao dịch hoàn tiền | RF_0001 |
refund.payment_id | String | • Min length: 1 • Max length: 50 | ✔ | ID của giao dịch thanh toán được hoàn tiền | PAY_0001 |
refund.amount | Decimal | • Min value: 0.000001 • Max digits: 30 • Decimal places: 6 | ✔ | Số tiền hoàn trả | 20000 |
refund.currency | String | Một trong các giá trị: VND | ✔ | Đơn vị tiền tệ | VND |
refund.status | String | Một trong các giá trị: PROCESSING, CLOSED | ✔ | Trạng thái của giao dịch hoàn tiền | CLOSED |
refund.result | String | Một trong các giá trị: APPROVED, DENIED | Kết quả hoàn tiền | APPROVED | |
refund.start_at | Datetime | Format ISO 8601 | ✔ | Thời điểm khởi tạo giao dịch hoàn tiền | 2024-01-18T00:00:00.000001Z |
refund.completed_at | Datetime | Format ISO 8601 | Thời điểm hoàn thành giao dịch hoàn tiền | 2024-01-18T00:00:03.000001Z |
Ví dụ Response: