Nhảy tới nội dung
Phiên bản: Lastest

Cycle Object

Cycle object đề cập đến một trường hợp cụ thể về hành động của gói đăng ký định kỳ. Cycle object được tạo từ plan object trong đó các hành vi thanh toán định được xác định.

Mỗi object có cấu trúc như sau:

Tham sốKiểu dữ liệuMô tả
cycleIdStringCycle ID
cycleNumberIntegerSố thứ tự của cycle
currencyIntegerĐơn vị tiền tệ
amountIntegerSố tiền thanh toán
attemptCountIntegerSố lần attempt
attemptDetailsArrayThông tin chi tiết của attempt
attemptDetails.*.attemptNumberIntegerSố thứ tự của attempt
attemptDetails.*.createdAtStringThời gian tạo attempt. (định dạng chuẩn ISO-8601)
attemptDetails.*.attemptIdIntegerID của cycle attempt
attemptDetails.*.typeString

Loại attempt

- INITIAL: attempt đầu tiên với mỗi cycle

- RETRY: attempt có type là INITIAL không thành công, logic retry cho các attempt tiếp theo được thiết lập

- PAYMENT_LINK: nếu bạn sử dụng paymentLinkForFailedAttempt trong khi tạo plan, attempt sử dụng payment link sẽ có type này

- FORCED: nếu bạn thực hiện force cycle thông qua API chúng tôi cung cấp

attemptDetails.*.statusString

Trạng thái của attempt:

- PENDING: đang thực hiện thanh toán cycle

- SUCCESS: thực hiện attempt với cycle thành công

- FAILED: thực hiện attempt với cycle thất bại

attemptDetails.*.nextRetryTimeStringThời gian thử lại lần tiếp theo. (định dạng chuẩn ISO-8601)
scheduledAtStringThời gian dự kiến thanh toán (định dạng chuẩn ISO-8601)
statusString

Trạng thái của cycle:

- SCHEDULED: cycle đã được khởi tạo và chờ đến thời gian thực hiện

- PENDING: quá trình thanh toán định kỳ đang diễn ra (cycle không thể cập nhật

- RETRYING: cycle cần thực hiện thanh toán lại

- FAILED: tất cả các attempt/retry được cấu hình thực hiện cho cycle đều thất bại

- SUCCEEDED: cycle thực hiện thanh toán thành công

- CANCELLED: cycle bị huỷ do yêu cầu từ merchant

createdAtStringThời gian tạo cycle (ISO 8601)
updatedAtStringThời gian cập nhật (ISO 8601)

Ví dụ

{
"cycleId": "01HRVK2NEYCHVZYJG3CK3HEQMQ",
"cycleNumber": 3,
"currency": "VND",
"amount": 405100,
"attemptCount": 5,
"attemptDetails": [
{
"attemptNumber": 4,
"createdAt": "2024-01-22T18:03:42+07:00",
"attemptId": "01HRVK5AFCB5EJASJVEK48VD96",
"type": "FORCED",
"status": "FAILED",
"nextRetryTime": null
},
{
"attemptNumber": 2,
"createdAt": "2024-01-22T18:03:20+07:00",
"attemptId": "01HRVK5K8V0D7ZGNA6PSQGD1DF",
"type": "FORCED",
"status": "FAILED",
"nextRetryTime": null
}
],
"scheduledAt": "2024-02-14T16:23:28+07:00",
"status": "SCHEDULED",
"createdAt": "2024-01-22T18:01:28+07:00",
"updatedAt": "2024-01-22T18:03:58+07:00"
}