# オブジェクトの状態遷移を知りたいです。

CheckoutSession、ChargePermission、Charge、Refundの４つのオブジェクトが存在しており、各オブジェクトの状態遷移は以下の通りです。(オブジェクトはOneTime, Recurringと共通です。)

## 状態遷移図
Amazonログインページが表示されたタイミングでCheckoutSessionオブジェクトがOpenステータスで生成されます。その後、UpdateCheckoutSession  APIで PaymentIntent:Confirmの場合は ChargePermissionのみが、PaymentIntent:Authrize, AuthorizeWithCaptureの場合は ChargePermissionとCharge オブジェクトが生成されます。ChargeオブジェクトがCapturedステータスの場合、Refundオブジェクトの生成が可能となります。

![image](https://d2squ3eekfa1zc.cloudfront.net/image/QA-18.png)

## 参考
 **状態と理由コード**  
各オブジェクトの状態遷移図に加えて、状態・実行可能なAPI・理由コードを解説

* [CheckoutSession](https://developer.amazon.com/ja/docs/amazon-pay-api-v2/checkout-session.html)
* [ChargePermission](https://developer.amazon.com/ja/docs/amazon-pay-api-v2/charge-permission.html)
* [Charge](https://developer.amazon.com/ja/docs/amazon-pay-api-v2/charge.html)
* [Refund](https://developer.amazon.com/ja/docs/amazon-pay-api-v2/refund.html)
