# Models

## The CheckoutResponse object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"CheckoutResponse":{"type":"object","properties":{"context_list":{"type":"array","items":{"$ref":"#/components/schemas/PageContext"}},"pre_order":{"$ref":"#/components/schemas/PreOrder"},"errors":{"oneOf":[{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}},{"type":"null"},{"type":"array","items":{"type":"string"}}]},"template_name":{"type":"string"}}},"PageContext":{"type":"object","properties":{"page_name":{"type":"string","description":"Class name of the page (e.g., \"IndexPage\", \"AddressSelectionPage\")"},"page_slug":{"type":"string","description":"URL-friendly slug for the page"},"page_context":{"type":"object","description":"Page-specific context data","additionalProperties":true}}},"PreOrder":{"type":"object","description":"Pre-order state containing basket, addresses, shipping, payment information","properties":{"basket":{"$ref":"#/components/schemas/Basket"},"shipping_address":{"oneOf":[{"$ref":"#/components/schemas/Address"},{"type":"null"}]},"billing_address":{"oneOf":[{"$ref":"#/components/schemas/Address"},{"type":"null"}]},"shipping_option":{"oneOf":[{"$ref":"#/components/schemas/ShippingOptionDetail"},{"type":"null"}]},"billing_and_shipping_same":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"payment_option":{"oneOf":[{"$ref":"#/components/schemas/PaymentOptionDetail"},{"type":"null"}]},"notifications":{"type":"array","items":{"type":"object"}},"shipping_amount":{"oneOf":[{"type":"string"},{"type":"null"}],"pattern":"^\\d+\\.\\d{2}$"},"total_amount":{"oneOf":[{"type":"string"},{"type":"null"}],"pattern":"^\\d+\\.\\d{2}$"},"unpaid_amount":{"oneOf":[{"type":"string"},{"type":"null"}],"pattern":"^\\d+\\.\\d{2}$"},"loyalty_money":{"oneOf":[{"type":"string"},{"type":"null"}],"pattern":"^\\d+\\.\\d{2}$"},"currency_type_label":{"type":"string"},"installment":{"oneOf":[{"$ref":"#/components/schemas/Installment"},{"type":"null"}]},"card_info":{"oneOf":[{"type":"object","description":"Card information from BIN lookup","properties":{"bin_number":{"type":"string","description":"Card BIN (first 6-8 digits)"},"card":{"type":"object","description":"Card details from BIN database","properties":{"pk":{"type":"integer"},"name":{"type":"string","description":"Card type name (e.g., \"Visa\", \"Mastercard\")"}}}}},{"type":"null"}]},"redirect_to_three_d":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"delivery_option":{"oneOf":[{"$ref":"#/components/schemas/DeliveryOption"},{"type":"null"}]},"retail_store":{"oneOf":[{"$ref":"#/components/schemas/RetailStore"},{"type":"null"}]},"funds_transfer_bank":{"oneOf":[{"$ref":"#/components/schemas/BankAccount"},{"type":"null"}]},"number":{"oneOf":[{"type":"string","description":"Pre-order/order number"},{"type":"null"}]},"order":{"oneOf":[{"type":"object","description":"Created order (after checkout completion)","properties":{"pk":{"type":"integer"},"number":{"type":"string"},"status":{"type":"string"}}},{"type":"null"}]},"payment_choice":{"oneOf":[{"$ref":"#/components/schemas/PaymentChoice"},{"type":"null"}]},"user_email":{"oneOf":[{"type":"string"},{"type":"null"}]},"phone_number":{"oneOf":[{"type":"string"},{"type":"null"}]},"user_phone_number":{"oneOf":[{"type":"string"},{"type":"null"}]},"gift_box":{"oneOf":[{"type":"object","properties":{"note":{"type":"string"},"gift_video":{"type":"boolean"},"gift_video_notification_sent":{"type":"boolean"},"price":{"type":"string"}}},{"type":"null"}]},"delivery_range":{"oneOf":[{"type":"object","properties":{"lower":{"type":"string","format":"date-time"},"upper":{"type":"string","format":"date-time"}}},{"type":"null"}]},"total_amount_with_interest":{"oneOf":[{"type":"string"},{"type":"null"}],"pattern":"^\\d+\\.\\d{2}$"},"is_guest":{"type":"boolean"},"is_post_order":{"type":"boolean"},"data_source_shipping_options":{"oneOf":[{"type":"array","items":{"$ref":"#/components/schemas/DataSourceShippingOptionDetail"}},{"type":"null"}]},"attribute_based_shipping_options":{"oneOf":[{"type":"array","items":{"$ref":"#/components/schemas/PreOrderAttributeBasedShippingOption"}},{"type":"null"}]}}},"Basket":{"type":"object","properties":{"pk":{"type":"integer"},"total_amount":{"type":"string","pattern":"^\\d+\\.\\d{2}$"}}},"Address":{"type":"object","properties":{"pk":{"type":"integer"},"email":{"type":"string"},"phone_number":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"},"country":{"$ref":"#/components/schemas/Country"},"city":{"$ref":"#/components/schemas/City"},"line":{"type":"string"},"title":{"type":"string"},"township":{"$ref":"#/components/schemas/Township"},"district":{"oneOf":[{"$ref":"#/components/schemas/District"},{"type":"null"}]},"postcode":{"type":"string"},"notes":{"type":"string"},"company_name":{"type":"string"},"tax_office":{"type":"string"},"tax_no":{"type":"string"},"e_bill_taxpayer":{"type":"boolean"},"is_corporate":{"type":"boolean"},"primary":{"type":"boolean"},"identity_number":{"type":"string"}}},"Country":{"type":"object","properties":{"pk":{"type":"integer"},"code":{"type":"string"},"name":{"type":"string"}}},"City":{"type":"object","properties":{"pk":{"type":"integer"},"name":{"type":"string"}}},"Township":{"type":"object","properties":{"pk":{"type":"integer"},"name":{"type":"string"}}},"District":{"type":"object","properties":{"pk":{"type":"integer"},"name":{"type":"string"}}},"ShippingOptionDetail":{"type":"object","description":"Detailed shipping option with calculated amount","properties":{"pk":{"type":"integer"},"name":{"type":"string"},"slug":{"type":"string"},"logo":{"oneOf":[{"type":"string","format":"uri"},{"type":"null"}]},"shipping_amount":{"type":"string","pattern":"^\\d+\\.\\d{2}$"},"description":{"oneOf":[{"type":"string"},{"type":"null"}]},"kwargs":{"type":"object","additionalProperties":true}}},"PaymentOptionDetail":{"type":"object","description":"Detailed payment option with type information","properties":{"pk":{"type":"integer"},"name":{"type":"string"},"slug":{"type":"string"},"payment_type":{"type":"string","enum":["credit_card","funds_transfer","bkm_express","loyalty_money","cash_register","gpay","redirection","stored_card","masterpass","masterpass_rest","credit_payment","pay_later","saved_card","confirmation","b2b","wallet","pay_on_delivery"]},"payment_type_label":{"type":"string"}}},"Installment":{"type":"object","properties":{"pk":{"type":"integer"},"installment_count":{"type":"integer"},"label":{"type":"string"},"price_with_accrued_interest":{"type":"string","pattern":"^\\d+\\.\\d{2}$"},"monthly_price_with_accrued_interest":{"type":"string","pattern":"^\\d+\\.\\d{2}$"}}},"DeliveryOption":{"type":"object","properties":{"pk":{"type":"integer"},"name":{"type":"string"},"delivery_option_type":{"type":"string","enum":["customer","retail_store","pickup_location"]},"is_active":{"type":"boolean"}}},"RetailStore":{"type":"object","properties":{"pk":{"type":"integer"},"name":{"type":"string"},"erp_code":{"type":"string"},"township":{"$ref":"#/components/schemas/Township"},"click_and_collect":{"type":"boolean"},"is_active":{"type":"boolean"}}},"BankAccount":{"type":"object","description":"Bank account for funds transfer payments","properties":{"pk":{"type":"integer"},"bank_name":{"type":"string","description":"Name of the bank"},"account_holder":{"type":"string","description":"Account holder name"},"iban":{"type":"string","description":"International Bank Account Number"},"currency":{"type":"string","description":"Currency code (e.g., \"USD\", \"EUR\", \"TRY\")"},"is_active":{"type":"boolean"}}},"PaymentChoice":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"},"price":{"type":"string","pattern":"^\\d+\\.\\d{2}$"}}},"DataSourceShippingOptionDetail":{"type":"object","description":"Data source shipping option for multi-vendor shipping","properties":{"pk":{"type":"integer"},"shipping_amount":{"type":"string","pattern":"^\\d+\\.\\d{2}$"},"shipping_option_name":{"type":"string"},"shipping_option_logo":{"oneOf":[{"type":"string","format":"uri"},{"type":"null"}]},"data_source":{"type":"object","properties":{"pk":{"type":"integer"},"title":{"type":"string"}}},"description":{"oneOf":[{"type":"string"},{"type":"null"}]}}},"PreOrderAttributeBasedShippingOption":{"type":"object","description":"Attribute-based shipping option selected for a product group","properties":{"pk":{"type":"integer"},"shipping_option_name":{"type":"string"},"shipping_option_logo":{"oneOf":[{"type":"string","format":"uri"},{"type":"null"}]},"shipping_amount":{"type":"string","pattern":"^\\d+\\.\\d{2}$"},"product_ids":{"type":"array","items":{"type":"integer"}},"attribute_value":{"type":"string"},"attribute_key":{"oneOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]}}}}}}
```

## The PageContext object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"PageContext":{"type":"object","properties":{"page_name":{"type":"string","description":"Class name of the page (e.g., \"IndexPage\", \"AddressSelectionPage\")"},"page_slug":{"type":"string","description":"URL-friendly slug for the page"},"page_context":{"type":"object","description":"Page-specific context data","additionalProperties":true}}}}}}
```

## The PreOrder object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"PreOrder":{"type":"object","description":"Pre-order state containing basket, addresses, shipping, payment information","properties":{"basket":{"$ref":"#/components/schemas/Basket"},"shipping_address":{"oneOf":[{"$ref":"#/components/schemas/Address"},{"type":"null"}]},"billing_address":{"oneOf":[{"$ref":"#/components/schemas/Address"},{"type":"null"}]},"shipping_option":{"oneOf":[{"$ref":"#/components/schemas/ShippingOptionDetail"},{"type":"null"}]},"billing_and_shipping_same":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"payment_option":{"oneOf":[{"$ref":"#/components/schemas/PaymentOptionDetail"},{"type":"null"}]},"notifications":{"type":"array","items":{"type":"object"}},"shipping_amount":{"oneOf":[{"type":"string"},{"type":"null"}],"pattern":"^\\d+\\.\\d{2}$"},"total_amount":{"oneOf":[{"type":"string"},{"type":"null"}],"pattern":"^\\d+\\.\\d{2}$"},"unpaid_amount":{"oneOf":[{"type":"string"},{"type":"null"}],"pattern":"^\\d+\\.\\d{2}$"},"loyalty_money":{"oneOf":[{"type":"string"},{"type":"null"}],"pattern":"^\\d+\\.\\d{2}$"},"currency_type_label":{"type":"string"},"installment":{"oneOf":[{"$ref":"#/components/schemas/Installment"},{"type":"null"}]},"card_info":{"oneOf":[{"type":"object","description":"Card information from BIN lookup","properties":{"bin_number":{"type":"string","description":"Card BIN (first 6-8 digits)"},"card":{"type":"object","description":"Card details from BIN database","properties":{"pk":{"type":"integer"},"name":{"type":"string","description":"Card type name (e.g., \"Visa\", \"Mastercard\")"}}}}},{"type":"null"}]},"redirect_to_three_d":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"delivery_option":{"oneOf":[{"$ref":"#/components/schemas/DeliveryOption"},{"type":"null"}]},"retail_store":{"oneOf":[{"$ref":"#/components/schemas/RetailStore"},{"type":"null"}]},"funds_transfer_bank":{"oneOf":[{"$ref":"#/components/schemas/BankAccount"},{"type":"null"}]},"number":{"oneOf":[{"type":"string","description":"Pre-order/order number"},{"type":"null"}]},"order":{"oneOf":[{"type":"object","description":"Created order (after checkout completion)","properties":{"pk":{"type":"integer"},"number":{"type":"string"},"status":{"type":"string"}}},{"type":"null"}]},"payment_choice":{"oneOf":[{"$ref":"#/components/schemas/PaymentChoice"},{"type":"null"}]},"user_email":{"oneOf":[{"type":"string"},{"type":"null"}]},"phone_number":{"oneOf":[{"type":"string"},{"type":"null"}]},"user_phone_number":{"oneOf":[{"type":"string"},{"type":"null"}]},"gift_box":{"oneOf":[{"type":"object","properties":{"note":{"type":"string"},"gift_video":{"type":"boolean"},"gift_video_notification_sent":{"type":"boolean"},"price":{"type":"string"}}},{"type":"null"}]},"delivery_range":{"oneOf":[{"type":"object","properties":{"lower":{"type":"string","format":"date-time"},"upper":{"type":"string","format":"date-time"}}},{"type":"null"}]},"total_amount_with_interest":{"oneOf":[{"type":"string"},{"type":"null"}],"pattern":"^\\d+\\.\\d{2}$"},"is_guest":{"type":"boolean"},"is_post_order":{"type":"boolean"},"data_source_shipping_options":{"oneOf":[{"type":"array","items":{"$ref":"#/components/schemas/DataSourceShippingOptionDetail"}},{"type":"null"}]},"attribute_based_shipping_options":{"oneOf":[{"type":"array","items":{"$ref":"#/components/schemas/PreOrderAttributeBasedShippingOption"}},{"type":"null"}]}}},"Basket":{"type":"object","properties":{"pk":{"type":"integer"},"total_amount":{"type":"string","pattern":"^\\d+\\.\\d{2}$"}}},"Address":{"type":"object","properties":{"pk":{"type":"integer"},"email":{"type":"string"},"phone_number":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"},"country":{"$ref":"#/components/schemas/Country"},"city":{"$ref":"#/components/schemas/City"},"line":{"type":"string"},"title":{"type":"string"},"township":{"$ref":"#/components/schemas/Township"},"district":{"oneOf":[{"$ref":"#/components/schemas/District"},{"type":"null"}]},"postcode":{"type":"string"},"notes":{"type":"string"},"company_name":{"type":"string"},"tax_office":{"type":"string"},"tax_no":{"type":"string"},"e_bill_taxpayer":{"type":"boolean"},"is_corporate":{"type":"boolean"},"primary":{"type":"boolean"},"identity_number":{"type":"string"}}},"Country":{"type":"object","properties":{"pk":{"type":"integer"},"code":{"type":"string"},"name":{"type":"string"}}},"City":{"type":"object","properties":{"pk":{"type":"integer"},"name":{"type":"string"}}},"Township":{"type":"object","properties":{"pk":{"type":"integer"},"name":{"type":"string"}}},"District":{"type":"object","properties":{"pk":{"type":"integer"},"name":{"type":"string"}}},"ShippingOptionDetail":{"type":"object","description":"Detailed shipping option with calculated amount","properties":{"pk":{"type":"integer"},"name":{"type":"string"},"slug":{"type":"string"},"logo":{"oneOf":[{"type":"string","format":"uri"},{"type":"null"}]},"shipping_amount":{"type":"string","pattern":"^\\d+\\.\\d{2}$"},"description":{"oneOf":[{"type":"string"},{"type":"null"}]},"kwargs":{"type":"object","additionalProperties":true}}},"PaymentOptionDetail":{"type":"object","description":"Detailed payment option with type information","properties":{"pk":{"type":"integer"},"name":{"type":"string"},"slug":{"type":"string"},"payment_type":{"type":"string","enum":["credit_card","funds_transfer","bkm_express","loyalty_money","cash_register","gpay","redirection","stored_card","masterpass","masterpass_rest","credit_payment","pay_later","saved_card","confirmation","b2b","wallet","pay_on_delivery"]},"payment_type_label":{"type":"string"}}},"Installment":{"type":"object","properties":{"pk":{"type":"integer"},"installment_count":{"type":"integer"},"label":{"type":"string"},"price_with_accrued_interest":{"type":"string","pattern":"^\\d+\\.\\d{2}$"},"monthly_price_with_accrued_interest":{"type":"string","pattern":"^\\d+\\.\\d{2}$"}}},"DeliveryOption":{"type":"object","properties":{"pk":{"type":"integer"},"name":{"type":"string"},"delivery_option_type":{"type":"string","enum":["customer","retail_store","pickup_location"]},"is_active":{"type":"boolean"}}},"RetailStore":{"type":"object","properties":{"pk":{"type":"integer"},"name":{"type":"string"},"erp_code":{"type":"string"},"township":{"$ref":"#/components/schemas/Township"},"click_and_collect":{"type":"boolean"},"is_active":{"type":"boolean"}}},"BankAccount":{"type":"object","description":"Bank account for funds transfer payments","properties":{"pk":{"type":"integer"},"bank_name":{"type":"string","description":"Name of the bank"},"account_holder":{"type":"string","description":"Account holder name"},"iban":{"type":"string","description":"International Bank Account Number"},"currency":{"type":"string","description":"Currency code (e.g., \"USD\", \"EUR\", \"TRY\")"},"is_active":{"type":"boolean"}}},"PaymentChoice":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"},"price":{"type":"string","pattern":"^\\d+\\.\\d{2}$"}}},"DataSourceShippingOptionDetail":{"type":"object","description":"Data source shipping option for multi-vendor shipping","properties":{"pk":{"type":"integer"},"shipping_amount":{"type":"string","pattern":"^\\d+\\.\\d{2}$"},"shipping_option_name":{"type":"string"},"shipping_option_logo":{"oneOf":[{"type":"string","format":"uri"},{"type":"null"}]},"data_source":{"type":"object","properties":{"pk":{"type":"integer"},"title":{"type":"string"}}},"description":{"oneOf":[{"type":"string"},{"type":"null"}]}}},"PreOrderAttributeBasedShippingOption":{"type":"object","description":"Attribute-based shipping option selected for a product group","properties":{"pk":{"type":"integer"},"shipping_option_name":{"type":"string"},"shipping_option_logo":{"oneOf":[{"type":"string","format":"uri"},{"type":"null"}]},"shipping_amount":{"type":"string","pattern":"^\\d+\\.\\d{2}$"},"product_ids":{"type":"array","items":{"type":"integer"}},"attribute_value":{"type":"string"},"attribute_key":{"oneOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]}}}}}}
```

## The Basket object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"Basket":{"type":"object","properties":{"pk":{"type":"integer"},"total_amount":{"type":"string","pattern":"^\\d+\\.\\d{2}$"}}}}}}
```

## The Address object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"Address":{"type":"object","properties":{"pk":{"type":"integer"},"email":{"type":"string"},"phone_number":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"},"country":{"$ref":"#/components/schemas/Country"},"city":{"$ref":"#/components/schemas/City"},"line":{"type":"string"},"title":{"type":"string"},"township":{"$ref":"#/components/schemas/Township"},"district":{"oneOf":[{"$ref":"#/components/schemas/District"},{"type":"null"}]},"postcode":{"type":"string"},"notes":{"type":"string"},"company_name":{"type":"string"},"tax_office":{"type":"string"},"tax_no":{"type":"string"},"e_bill_taxpayer":{"type":"boolean"},"is_corporate":{"type":"boolean"},"primary":{"type":"boolean"},"identity_number":{"type":"string"}}},"Country":{"type":"object","properties":{"pk":{"type":"integer"},"code":{"type":"string"},"name":{"type":"string"}}},"City":{"type":"object","properties":{"pk":{"type":"integer"},"name":{"type":"string"}}},"Township":{"type":"object","properties":{"pk":{"type":"integer"},"name":{"type":"string"}}},"District":{"type":"object","properties":{"pk":{"type":"integer"},"name":{"type":"string"}}}}}}
```

## The Country object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"Country":{"type":"object","properties":{"pk":{"type":"integer"},"code":{"type":"string"},"name":{"type":"string"}}}}}}
```

## The City object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"City":{"type":"object","properties":{"pk":{"type":"integer"},"name":{"type":"string"}}}}}}
```

## The Township object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"Township":{"type":"object","properties":{"pk":{"type":"integer"},"name":{"type":"string"}}}}}}
```

## The District object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"District":{"type":"object","properties":{"pk":{"type":"integer"},"name":{"type":"string"}}}}}}
```

## The DeliveryOption object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"DeliveryOption":{"type":"object","properties":{"pk":{"type":"integer"},"name":{"type":"string"},"delivery_option_type":{"type":"string","enum":["customer","retail_store","pickup_location"]},"is_active":{"type":"boolean"}}}}}}
```

## The RetailStore object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"RetailStore":{"type":"object","properties":{"pk":{"type":"integer"},"name":{"type":"string"},"erp_code":{"type":"string"},"township":{"$ref":"#/components/schemas/Township"},"click_and_collect":{"type":"boolean"},"is_active":{"type":"boolean"}}},"Township":{"type":"object","properties":{"pk":{"type":"integer"},"name":{"type":"string"}}}}}}
```

## The BankAccount object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"BankAccount":{"type":"object","description":"Bank account for funds transfer payments","properties":{"pk":{"type":"integer"},"bank_name":{"type":"string","description":"Name of the bank"},"account_holder":{"type":"string","description":"Account holder name"},"iban":{"type":"string","description":"International Bank Account Number"},"currency":{"type":"string","description":"Currency code (e.g., \"USD\", \"EUR\", \"TRY\")"},"is_active":{"type":"boolean"}}}}}}
```

## The ShippingOption object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"ShippingOption":{"type":"object","properties":{"pk":{"type":"integer"},"name":{"type":"string"}}}}}}
```

## The ShippingOptionDetail object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"ShippingOptionDetail":{"type":"object","description":"Detailed shipping option with calculated amount","properties":{"pk":{"type":"integer"},"name":{"type":"string"},"slug":{"type":"string"},"logo":{"oneOf":[{"type":"string","format":"uri"},{"type":"null"}]},"shipping_amount":{"type":"string","pattern":"^\\d+\\.\\d{2}$"},"description":{"oneOf":[{"type":"string"},{"type":"null"}]},"kwargs":{"type":"object","additionalProperties":true}}}}}}
```

## The PaymentOption object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"PaymentOption":{"type":"object","properties":{"pk":{"type":"integer"},"name":{"type":"string"}}}}}}
```

## The PaymentOptionDetail object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"PaymentOptionDetail":{"type":"object","description":"Detailed payment option with type information","properties":{"pk":{"type":"integer"},"name":{"type":"string"},"slug":{"type":"string"},"payment_type":{"type":"string","enum":["credit_card","funds_transfer","bkm_express","loyalty_money","cash_register","gpay","redirection","stored_card","masterpass","masterpass_rest","credit_payment","pay_later","saved_card","confirmation","b2b","wallet","pay_on_delivery"]},"payment_type_label":{"type":"string"}}}}}}
```

## The CardType object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"CardType":{"type":"object","description":"Credit card type (Visa, Mastercard, etc.)","properties":{"pk":{"type":"integer"},"name":{"type":"string","description":"Card type name (e.g., \"Visa\", \"Mastercard\", \"American Express\")"},"slug":{"type":"string","description":"URL-friendly slug"},"logo":{"oneOf":[{"type":"string","format":"uri"},{"type":"null"}],"description":"Card type logo image URL"}}}}}}
```

## The Installment object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"Installment":{"type":"object","properties":{"pk":{"type":"integer"},"installment_count":{"type":"integer"},"label":{"type":"string"},"price_with_accrued_interest":{"type":"string","pattern":"^\\d+\\.\\d{2}$"},"monthly_price_with_accrued_interest":{"type":"string","pattern":"^\\d+\\.\\d{2}$"}}}}}}
```

## The PaymentChoice object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"PaymentChoice":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"},"price":{"type":"string","pattern":"^\\d+\\.\\d{2}$"}}}}}}
```

## The DataSourceShippingOptionDetail object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"DataSourceShippingOptionDetail":{"type":"object","description":"Data source shipping option for multi-vendor shipping","properties":{"pk":{"type":"integer"},"shipping_amount":{"type":"string","pattern":"^\\d+\\.\\d{2}$"},"shipping_option_name":{"type":"string"},"shipping_option_logo":{"oneOf":[{"type":"string","format":"uri"},{"type":"null"}]},"data_source":{"type":"object","properties":{"pk":{"type":"integer"},"title":{"type":"string"}}},"description":{"oneOf":[{"type":"string"},{"type":"null"}]}}}}}}
```

## The PreOrderAttributeBasedShippingOption object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"PreOrderAttributeBasedShippingOption":{"type":"object","description":"Attribute-based shipping option selected for a product group","properties":{"pk":{"type":"integer"},"shipping_option_name":{"type":"string"},"shipping_option_logo":{"oneOf":[{"type":"string","format":"uri"},{"type":"null"}]},"shipping_amount":{"type":"string","pattern":"^\\d+\\.\\d{2}$"},"product_ids":{"type":"array","items":{"type":"integer"}},"attribute_value":{"type":"string"},"attribute_key":{"oneOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]}}}}}}
```

## The IndexPageInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"IndexPageInput":{"type":"object","required":["user_email"],"properties":{"user_email":{"type":"string","format":"email","description":"User email address. Required for guest checkout."},"phone_number":{"type":"string","description":"Optional phone number. Must match phone regex pattern if provided."}}}}}}
```

## The DeliveryOptionSelectionInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"DeliveryOptionSelectionInput":{"type":"object","required":["delivery_option"],"properties":{"delivery_option":{"type":"integer","description":"Primary key of the selected delivery option"},"clear":{"type":"boolean","default":false,"description":"If true, clears shipping and billing addresses when changing delivery option"}}}}}}
```

## The AddressSelectionInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"AddressSelectionInput":{"type":"object","required":["billing_address","shipping_address"],"properties":{"billing_address":{"type":"integer","description":"Primary key of the billing address"},"shipping_address":{"type":"integer","description":"Primary key of the shipping address"}}}}}}
```

## The RetailStoreSelectionInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"RetailStoreSelectionInput":{"type":"object","required":["billing_address","retail_store"],"properties":{"billing_address":{"type":"integer","description":"Primary key of the billing address"},"retail_store":{"type":"integer","description":"Primary key of the selected retail store"}}}}}}
```

## The PickupLocationSelectionInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"PickupLocationSelectionInput":{"type":"object","required":["remote_id","billing_address"],"properties":{"remote_id":{"type":"string","description":"Remote identifier for the pickup location"},"billing_address":{"type":"integer","description":"Primary key of the billing address"}}}}}}
```

## The ShippingOptionSelectionInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"ShippingOptionSelectionInput":{"type":"object","required":["shipping_option"],"properties":{"shipping_option":{"type":"integer","description":"Primary key of the selected shipping option"}},"additionalProperties":{"type":"string","description":"Additional required fields defined in the shipping option's `kwargs.required_fields`.\nThese fields vary based on the shipping option configuration and may include\nfields like `delivery_date`, `time_slot`, etc."}}}}}
```

## The DataSourceShippingOptionSelectionInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"DataSourceShippingOptionSelectionInput":{"type":"object","required":["data_source_shipping_options"],"properties":{"data_source_shipping_options":{"type":"string","description":"JSON-encoded array of data source shipping option IDs.\nEach ID is the primary key of a `DataSourceShippingOption` model.\nOne shipping option must be selected for each data source in the basket."}}}}}}
```

## The AttributeBasedShippingOptionSelectionInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"AttributeBasedShippingOptionSelectionInput":{"type":"object","required":["attribute_based_shipping_options"],"properties":{"attribute_based_shipping_options":{"type":"string","description":"JSON-encoded object mapping attribute values to shipping option IDs.\nKeys are attribute values (e.g., \"electronics\", \"clothing\", \"warehouse_a\").\nValues are primary keys of `AttributeBasedShippingOption` models.\nOne shipping option must be selected for each attribute value group."}}}}}}
```

## The PaymentOptionSelectionInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"PaymentOptionSelectionInput":{"type":"object","required":["payment_option"],"properties":{"payment_option":{"type":"integer","description":"Primary key of the selected payment option. Must be an active payment option that passes availability rules."}}}}}}
```

## The BinNumberInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"BinNumberInput":{"type":"object","required":["bin_number"],"properties":{"bin_number":{"type":"string","description":"First 6 or 8 digits of the credit card (BIN - Bank Identification Number).\nUsed to determine card type, bank, and available installment options.\nMust contain only digits.","pattern":"^\\d{6,8}$"}}}}}}
```

## The InstallmentSelectionInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"InstallmentSelectionInput":{"type":"object","required":["installment"],"properties":{"installment":{"type":"integer","description":"Primary key of the selected installment option.\nMust be one of the installments available for the card.\nInstallment count of 1 represents single payment (no installment)."}}}}}}
```

## The CreditCardConfirmationInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"CreditCardConfirmationInput":{"type":"object","required":["card_number","card_holder","card_month","card_year","card_cvv","agreement"],"properties":{"card_number":{"type":"string","description":"Full credit card number (16 digits).\nValidated using Luhn algorithm.\nSpaces are automatically removed.","pattern":"^\\d{16}$"},"card_holder":{"type":"string","description":"Cardholder name as printed on the card.\nMust contain only letters and spaces.\nValidated against format rules."},"card_month":{"type":"string","description":"Card expiration month in MM format.\nMust be between 01 and 12.","pattern":"^(0[1-9]|1[0-2])$"},"card_year":{"type":"string","description":"Card expiration year in YYYY format.\nMust be current year or future.","pattern":"^\\d{4}$"},"card_cvv":{"type":"string","description":"Card security code (CVV/CVC).\nMust be 3-4 digits depending on card type.","pattern":"^\\d{3,4}$"},"card_name":{"type":"string","description":"Nickname for the card if saving for future use.\nRequired when `save` is true.\nOptional otherwise."},"agreement":{"type":"boolean","description":"User must accept terms and conditions to proceed.\nMust be true.","enum":[true]},"save":{"type":"boolean","default":false,"description":"Whether to save the card for future purchases.\nOnly available for authenticated users.\nGuest users cannot save cards."},"use_three_d":{"type":"boolean","description":"User preference for 3D Secure verification.\nMay be overridden by system rules.\nOptional field."},"client_time":{"type":"string","format":"date-time","description":"Client-side timestamp for fraud detection"},"browser_java_enabled":{"type":"boolean","description":"Whether Java is enabled in the browser"},"browser_language":{"type":"string","description":"Browser language code (e.g., \"en-US\", \"tr-TR\")"},"browser_color_depth":{"type":"string","description":"Screen color depth in bits (e.g., \"24\", \"32\")"},"browser_screen_height":{"type":"string","description":"Screen height in pixels"},"browser_screen_width":{"type":"string","description":"Screen width in pixels"},"browser_time_zone":{"type":"string","description":"Timezone offset from UTC in minutes.\nExample: UTC-4 would be \"240\" (4 hours * 60 minutes)"}}}}}}
```

## The CreditCardThreeDSecureInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"CreditCardThreeDSecureInput":{"type":"object","required":["three_d_secure","success"],"properties":{"three_d_secure":{"type":"boolean","description":"3D Secure verification status.\nMust be true for successful verification.","enum":[true]},"success":{"type":"boolean","description":"Transaction success status.\nMust be true for successful transaction.","enum":[true]},"md":{"type":"string","description":"Merchant data passed through 3D Secure flow"},"xid":{"type":"string","description":"Transaction identifier from 3D Secure provider"},"eci":{"type":"string","description":"Electronic Commerce Indicator from 3D Secure"},"cavv":{"type":"string","description":"Cardholder Authentication Verification Value"},"liqpay_token":{"type":"string","description":"LiqPay-specific token (gateway-specific)"},"status":{"type":"string","description":"Status from payment gateway"},"paymentId":{"type":"string","description":"Payment identifier from gateway"},"conversationData":{"type":"string","description":"Conversation data from gateway"},"conversationId":{"type":"string","description":"Conversation identifier from gateway"},"mdStatus":{"type":"string","description":"MD status code from 3D Secure provider.\nDifferent values indicate authentication success/failure.\nGateway-specific validation logic."},"body":{"type":"object","description":"Additional gateway-specific response data"}}}}}}
```

## The FundsTransferChoiceInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"FundsTransferChoiceInput":{"type":"object","required":["bank_account"],"properties":{"bank_account":{"type":"integer","description":"Primary key of the selected bank account.\nMust be an active bank account configured in the system."}}}}}}
```

## The FundsTransferInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"FundsTransferInput":{"type":"object","required":["agreement"],"properties":{"agreement":{"type":"boolean","description":"User must accept terms and conditions to proceed.\nMust be true.","enum":[true]}}}}}}
```

## The PayOnDeliveryPaymentChoiceInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"PayOnDeliveryPaymentChoiceInput":{"type":"object","required":["payment_choice"],"properties":{"payment_choice":{"type":"string","description":"The `value` string of one of the payment choices returned in the\n`payment_choices` list from the GET context of `PayOnDeliveryPaymentChoicePage`.\nSubmitting a value not present in that list causes a validation error."}}}}}}
```

## The PayOnDeliveryInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"PayOnDeliveryInput":{"type":"object","required":["agreement"],"properties":{"agreement":{"type":"boolean","description":"User must accept terms and conditions to proceed.\nMust be true.","enum":[true]}}}}}}
```

## The BexSelectionInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"BexSelectionInput":{"type":"object","required":["agreement"],"properties":{"agreement":{"type":"boolean","description":"User must accept terms and conditions to proceed.\nMust be true.","enum":[true]}}}}}}
```

## The BexBinNumberInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"BexBinNumberInput":{"type":"object","required":["bin_number"],"properties":{"bin_number":{"type":"string","description":"First 6 or 8 digits of the card (BIN - Bank Identification Number).\nUsed to identify the card type and available installment options for\nBKM Express. Must contain only digits.","pattern":"^\\d{6,8}$"}}}}}}
```

## The BexInstallmentSelectionInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"BexInstallmentSelectionInput":{"type":"object","required":["installment"],"properties":{"installment":{"type":"integer","description":"The installment count to select (e.g., `1` for single payment, `3` for\nthree installments). This is **not** a primary key. The system resolves\nthe matching active `Installment` record for the card by `installment_count`."}}}}}}
```

## The BexNonceInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"BexNonceInput":{"type":"object","required":["order_id","transaction_id","data"],"properties":{"order_id":{"type":"string","description":"Order identifier as returned by the BKM Express callback. Corresponds\nto the order number assigned in `BexSelectionPage`."},"transaction_id":{"type":"string","description":"Transaction identifier issued by BKM Express. Must match the\n`transaction_id` stored in the pre-order session data from `BexSelectionPage`."},"data":{"type":"object","description":"Payment result object sent by the BKM Express JS widget callback.","required":["status","paymentPurchased","totalAmount"],"properties":{"status":{"type":"string","description":"Payment status from BKM Express. Must be `\"ok\"` for the transaction\nto be accepted.","enum":["ok"]},"paymentPurchased":{"type":"boolean","description":"Indicates whether the payment was successfully charged on the BKM side.\nMust be truthy."},"totalAmount":{"type":"string","description":"Total amount charged by BKM Express. Uses a comma as decimal separator\n(e.g., `\"159,99\"`). Validated against `pre_order.get_total_amount_with_interest()`."}},"additionalProperties":true}}}}}}
```

## The MasterpassRestBinNumberInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"MasterpassRestBinNumberInput":{"type":"object","required":["bin_number"],"properties":{"bin_number":{"type":"string","description":"First 6 or 8 digits of the card (BIN - Bank Identification Number).\nCaptured by the Masterpass JS SDK on the client side. Must contain\nonly digits and have a length of 6 or 8.","pattern":"^\\d{6,8}$"},"is_masterpass_stored_card":{"type":"boolean","default":false,"description":"Flag indicating whether the card BIN comes from the user's stored\nMasterpass cards. Stored on the pre-order as\n`pre_order.data[\"is_masterpass_stored_card\"]`."}}}}}}
```

## The MasterpassRestInstallmentSelectionInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"MasterpassRestInstallmentSelectionInput":{"type":"object","required":["installment"],"properties":{"installment":{"type":"integer","description":"Primary key (`pk`) of the `Installment` record to select. The PK\nmust reference an active installment linked to the card resolved\nin `MasterpassRestBinNumberPage`."}}}}}}
```

## The MasterpassRestOrderNoInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"MasterpassRestOrderNoInput":{"type":"object","properties":{"use_three_d":{"type":"boolean","default":false,"description":"Hint forwarded to `check_three_d_secure(...)`. When the rule\nresolves to `true`, the user must complete a 3D Secure challenge\nbefore the subsequent `MasterpassRestCompletePage` step."}}}}}}
```

## The MasterpassRestCompleteInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"MasterpassRestCompleteInput":{"type":"object","required":["three_d_secure"],"description":"Final Masterpass REST submission payload. The endpoint also merges any\nrequest **query string parameters** into the form data (with the form\n`amount` key removed before merging) so that 3D Secure callback\nparameters appended by the bank are captured automatically.","properties":{"three_d_secure":{"type":"boolean","description":"Must match `pre_order.redirect_to_three_d` set in\n`MasterpassRestOrderNoPage`. A mismatch returns\n`\"Transaction failed. Please try again.\"`."},"token":{"type":"string","description":"Masterpass payment token issued by the SDK."},"oid":{"type":"string","description":"Order id echoed back by the bank on 3D callback."},"md":{"type":"string","description":"3D Secure `md` parameter from the bank callback."},"xid":{"type":"string","description":"3D Secure `xid` parameter from the bank callback."},"eci":{"type":"string","description":"3D Secure ECI value from the bank callback."},"cavv":{"type":"string","description":"3D Secure CAVV value from the bank callback."},"rnd":{"type":"string","description":"3D Secure random nonce from the bank callback."},"hash":{"type":"string","description":"Bank-issued response hash. Validated via `gateway.is_hash_valid` when\n`three_d_secure` is `true` and the gateway has\n`hash_validation_enabled` (skipped for iOS/Android client types)."},"hashParams":{"type":"string","description":"3D Secure hash params list from the bank callback."},"hashParamsVal":{"type":"string","description":"3D Secure hash params values from the bank callback."},"mdStatus":{"type":"string","description":"3D Secure MD status. Validated via `gateway.is_md_status_valid`\nwhen `three_d_secure` is `true`. A failure returns\n`\"Transaction failed. Please try again.\"`."},"bankIca":{"type":"string","description":"Bank ACQ ICA value passed back by the gateway."},"paymentReceived":{"type":"string","description":"Payment received indicator returned by the gateway."},"amount":{"type":"string","format":"decimal","description":"Total amount in minor units returned by the bank. Divided by 100\nduring validation and compared against\n`pre_order.get_total_amount_with_interest()`. A mismatch returns\n`\"Transaction failed. Please try again.\"`. Note: any `amount` form\nfield is dropped before request query parameters are merged into\nthe body, so the value used is the one supplied by the bank\ncallback when present."},"clientId":{"type":"string","description":"Merchant client id echoed back by the gateway."},"sign":{"type":"string","description":"Signature value from the bank callback."},"transactionType":{"type":"string","description":"Masterpass transaction type.","enum":["PURCHASE","PURCHASE_3D","DIRECT_PURCHASE","DIRECT_PURCHASE_3D","REGISTER_AND_PURCHASE","REGISTER_AND_PURCHASE_3D"]},"status":{"type":"string","description":"Masterpass status string."},"completeStatus":{"type":"string","description":"Masterpass complete status string."},"paymentId":{"type":"string","description":"Masterpass payment id."},"conversationData":{"type":"string","description":"Masterpass conversation data."},"conversationId":{"type":"string","description":"Masterpass conversation id."},"callbackStatus":{"type":"string","description":"Masterpass callback status string."}}}}}}
```

## The MasterpassRestRewardListInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"MasterpassRestRewardListInput":{"type":"object","required":["card_alias"],"properties":{"card_alias":{"type":"string","description":"Alias of the Masterpass stored card to query rewards for. The alias\nis the value the Masterpass JS SDK uses to identify a card. The\nvalue is forwarded to `gateway.query_rewards(...)`."}}}}}}
```

## The CampaignListPageInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"CampaignListPageInput":{"type":"object","required":["card_number"],"properties":{"card_number":{"type":"string","description":"The full credit card number. Leading, trailing, and internal spaces are\nstripped before validation is applied. Must be a valid card number."}}}}}}
```

## The CampaignSelectionPageInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"CampaignSelectionPageInput":{"type":"object","required":["campaign"],"properties":{"campaign":{"type":"string","description":"The code of the campaign to apply to the order. Must match one of the\ncampaign codes present in the `campaigns` list of the current pre-order\nstate. Submitting a code not present in that list causes a validation\nerror."}}}}}}
```

## The LoyaltyMoneyPageInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"LoyaltyMoneyPageInput":{"type":"object","required":["agreement"],"properties":{"agreement":{"type":"boolean","description":"User must accept the terms and conditions to proceed with the loyalty\nmoney payment. Must be `true`.","enum":[true]}}}}}}
```

## The LoyaltyCardPageInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"LoyaltyCardPageInput":{"type":"object","required":["selected_loyalty_amount"],"properties":{"selected_loyalty_amount":{"type":"number","format":"decimal","description":"The loyalty card points amount to apply to the order, as a decimal\nvalue with up to 12 digits and 2 decimal places (e.g., `\"5.00\"`).\nMust not exceed the user's available points balance. The effective\nmaximum is `basket_total - MINIMUM_ORDER_AMOUNT` plus any previously\napplied amount. Submitting a value above this cap or above the\navailable balance returns a validation error."}}}}}}
```

## The GiftBoxInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"GiftBoxInput":{"type":"object","properties":{"note":{"type":["string","null"],"maxLength":160,"description":"An optional personal message to include with the gift box.\nMaximum 160 characters. Accepts `null` and empty string."},"gift_video":{"type":"boolean","description":"When `true`, a gift video is requested for this order."},"gift_video_notification_sent":{"type":"boolean","description":"Indicates whether the gift video notification has already been\nsent. Passed through from the client after the notification\nis dispatched."}}}}}}
```

## The LoyaltyMoneyUsagePageInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"LoyaltyMoneyUsagePageInput":{"type":"object","properties":{"loyalty_amount_to_use":{"type":["number","null"],"format":"decimal","description":"The flat loyalty money amount to apply to the order, as a decimal value\nwith up to 12 digits and 2 decimal places (e.g., `\"50.00\"`). When\nprovided alongside `account_usages`, this field takes precedence and\n`account_usages` is ignored. Submit `0` or `null` to remove any\npreviously applied loyalty money amount."},"account_usages":{"type":["string","null"],"description":"A JSON-encoded array specifying the loyalty money amount to debit from\neach account label. Each array item must contain:\n- `label_id`: integer primary key of the account label, or `null` for\n  unlabeled accounts\n- `amount`: decimal string representing the amount to debit from that\n  label group\n\nThe requested amount per label must not exceed the user's available\nbalance for that label. Unlabeled accounts are referenced with\n`\"label_id\": null`. Malformed JSON returns a validation error.\n\nIgnored when `loyalty_amount_to_use` is also provided."}}}}}}
```

## The CashRegisterInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"CashRegisterInput":{"type":"object","required":["agreement"],"properties":{"agreement":{"type":"boolean","description":"User must accept terms and conditions to proceed.\nMust be true. Basket amount must be greater than zero.","enum":[true]}}}}}}
```

## The CashRegisterBank object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"CashRegisterBank":{"type":"object","properties":{"pk":{"type":"integer","description":"Bank primary key."},"name":{"type":"string","description":"Bank display name."},"slug":{"type":"string","description":"Bank URL-safe identifier."},"logo":{"type":"string","description":"Relative URL to the bank logo image."}}}}}}
```

## The CashRegisterInstallmentOption object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"CashRegisterInstallmentOption":{"type":"object","properties":{"pk":{"type":"integer","description":"Installment option primary key."},"installment_count":{"type":"integer","description":"Number of installments."},"label":{"type":"string","description":"Human-readable installment label (translated)."},"price_with_accrued_interest":{"type":"string","description":"Total price including accrued interest, formatted as decimal string."},"monthly_price_with_accrued_interest":{"type":"string","description":"Monthly payment amount including interest, formatted as decimal string."}}}}}}
```

## The CashRegisterCard object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"CashRegisterCard":{"type":"object","description":"A payment card with its available installment plans for cash register payment.","properties":{"pk":{"type":"integer","description":"Card primary key."},"name":{"type":"string","description":"Card display name (e.g., \"Visa\", \"Mastercard\")."},"slug":{"type":"string","description":"Card URL-safe identifier."},"card_type":{"type":"string","description":"Card type identifier (e.g., `\"credit\"`, `\"debit\"`)."},"card_payment_type":{"type":"string","description":"Card payment type enum value."},"cash_payment":{"type":"boolean","description":"Whether this card supports single-payment (no installment) transactions."},"installment_payment":{"type":"boolean","description":"Whether this card supports installment transactions."},"three_d_payment":{"type":"boolean","description":"Whether this card supports 3D Secure payment."},"is_commerce_card":{"type":"boolean","description":"Whether this is a commercial card."},"bank":{"$ref":"#/components/schemas/CashRegisterBank"},"installments":{"type":"array","items":{"$ref":"#/components/schemas/CashRegisterInstallmentOption"},"description":"Available installment plans for this card, filtered by current basket amount."}}},"CashRegisterBank":{"type":"object","properties":{"pk":{"type":"integer","description":"Bank primary key."},"name":{"type":"string","description":"Bank display name."},"slug":{"type":"string","description":"Bank URL-safe identifier."},"logo":{"type":"string","description":"Relative URL to the bank logo image."}}},"CashRegisterInstallmentOption":{"type":"object","properties":{"pk":{"type":"integer","description":"Installment option primary key."},"installment_count":{"type":"integer","description":"Number of installments."},"label":{"type":"string","description":"Human-readable installment label (translated)."},"price_with_accrued_interest":{"type":"string","description":"Total price including accrued interest, formatted as decimal string."},"monthly_price_with_accrued_interest":{"type":"string","description":"Monthly payment amount including interest, formatted as decimal string."}}}}}}
```

## The CashRegisterInstallmentSelectionInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"CashRegisterInstallmentSelectionInput":{"type":"object","properties":{"installment":{"type":"integer","description":"Primary key of the selected installment option.\nMust reference an active installment record.\nMutually exclusive with `no_installment` â€” exactly one must be provided."},"no_installment":{"type":"boolean","description":"Explicit confirmation to proceed without installment.\nMust be true when provided.\nMutually exclusive with `installment` â€” exactly one must be provided.","enum":[true]}}}}}}
```

## The CashRegisterCompleteInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"CashRegisterCompleteInput":{"type":"object","description":"No request body fields are required for this submission.\nThe system validates internally that a successful cash register transaction\nexists for the current pre-order.","properties":{}}}}}
```

## The SendBarcodeSmsInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"SendBarcodeSmsInput":{"type":"object","required":["phone_number"],"properties":{"phone_number":{"type":"string","description":"Recipient phone number for the barcode SMS.\nValidated against the configured phone number format."}}}}}}
```

## The SendCheckoutUrlSmsInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"SendCheckoutUrlSmsInput":{"type":"object","required":["phone_number"],"properties":{"phone_number":{"type":"string","description":"Recipient phone number for the checkout URL SMS.\nValidated against the configured phone number format."}}}}}}
```

## The RemoteShippingOptionSelectionInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"RemoteShippingOptionSelectionInput":{"type":"object","required":["shipping_option"],"properties":{"shipping_option":{"type":"integer","description":"Primary key of the selected shipping option.\nMust be one of the options returned by the remote shipping service\nfor the current checkout context."}}}}}}
```

## The SendSmsInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"SendSmsInput":{"type":"object","required":["phone_number"],"properties":{"phone_number":{"type":"string","description":"Recipient phone number for the Pay on Delivery verification SMS.\nValidated against the configured phone number format."}}}}}}
```

## The VerifySmsInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"VerifySmsInput":{"type":"object","required":["verify_code"],"properties":{"verify_code":{"type":"string","description":"The 6-digit numeric verification code sent via SMS for Pay on Delivery verification.\nMust consist of exactly 6 digits. The code is validated against the\nstored `pre_order.verification_code` and must be submitted before\nthe `verify_timeout` (default: 180 seconds) elapses.","pattern":"^\\d{6}$"}}}}}}
```

## The CouponSelectionInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"CouponSelectionInput":{"type":"object","required":["coupon","action"],"properties":{"coupon":{"type":"string","description":"Primary key of the `BasketOffer` record to add or remove, as a string."},"action":{"type":"string","description":"Action to perform: `\"add\"` to apply the coupon or `\"remove\"` to unapply it.","enum":["add","remove"]}}}}}}
```

## The VoucherCodeInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"VoucherCodeInput":{"type":"object","properties":{"voucher_code":{"type":"string","description":"Voucher code to apply to the checkout session. Leading and trailing whitespace\nis trimmed automatically. Submit an empty string or omit this field to clear\nthe currently set voucher code. Maximum 128 characters.","maxLength":128}}}}}}
```

## The MobilExpressSelectionInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"MobilExpressSelectionInput":{"type":"object","properties":{"clear":{"type":"boolean","default":false,"description":"Set to `true` to cancel the MobilExpress flow and clear all stored MobilExpress\ndata from the pre-order. Set to `false` (default) to proceed with the card-list\nlookup."}}}}}}
```

## The MobilExpressCardFoundOtpRequiredPhoneInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"MobilExpressCardFoundOtpRequiredPhoneInput":{"type":"object","required":["phone_number"],"properties":{"phone_number":{"type":"string","minLength":10,"maxLength":10,"description":"Recipient phone number for the OTP SMS. Must be exactly 10 characters."}}}}}}
```

## The MobilExpressCardFoundOtpRequiredOtpInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"MobilExpressCardFoundOtpRequiredOtpInput":{"type":"object","required":["otp"],"properties":{"otp":{"type":"string","minLength":4,"maxLength":8,"description":"One-time password received by the user via SMS. Between 4 and 8 characters."}}}}}}
```

## The MobilExpressCardSelectionInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"MobilExpressCardSelectionInput":{"type":"object","required":["card_token","masked_card_number"],"properties":{"card_token":{"type":"string","description":"Opaque token identifying the selected stored card."},"masked_card_number":{"type":"string","description":"Partially masked PAN of the selected card (e.g., `\"450803******1234\"`).\nUsed for BIN-based card type and installment lookup."}}}}}}
```

## The MobilExpressInstallmentSelectionInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"MobilExpressInstallmentSelectionInput":{"type":"object","required":["installment"],"properties":{"installment":{"type":"integer","description":"Primary key of the `Installment` record to use. Must be an active installment\noption linked to the selected card type."}}}}}}
```

## The MobilExpressTryPaymentInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"MobilExpressTryPaymentInput":{"type":"object","required":["agreement"],"properties":{"agreement":{"type":"boolean","description":"User must accept the terms and conditions to proceed. Must be `true`.","enum":[true]}}}}}}
```

## The MobilExpressPaymentCompleteOtpInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"MobilExpressPaymentCompleteOtpInput":{"type":"object","required":["otp"],"properties":{"otp":{"type":"string","minLength":4,"maxLength":8,"description":"OTP code for payment completion. Between 4 and 8 characters."}}}}}}
```

## The MobilExpressPaymentCompleteCvvInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"MobilExpressPaymentCompleteCvvInput":{"type":"object","required":["cvv"],"properties":{"cvv":{"type":"string","minLength":3,"maxLength":3,"description":"3-digit card security code (CVV/CVC) printed on the back of the card."}}}}}}
```

## The MobilExpressPaymentCompleteCvvAndOtpInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"MobilExpressPaymentCompleteCvvAndOtpInput":{"type":"object","required":["cvv","otp"],"properties":{"cvv":{"type":"string","minLength":3,"maxLength":3,"description":"3-digit card security code (CVV/CVC)."},"otp":{"type":"string","minLength":4,"maxLength":8,"description":"OTP code for payment completion. Between 4 and 8 characters."}}}}}}
```

## The MobilExpressPaymentThreeDInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"MobilExpressPaymentThreeDInput":{"type":"object","required":["TransactionId","MobilexpressTransId","Result","TotalAmount","InstallmentCount","Hash"],"properties":{"TransactionId":{"type":"string","description":"Internal order transaction ID posted by the bank redirect."},"MobilexpressTransId":{"type":"string","description":"MobilExpress transaction ID posted by the bank redirect."},"Result":{"type":"string","description":"3D Secure result code. Must be `'3DSuccess'` to proceed.","enum":["3DSuccess","3DFailed"]},"TotalAmount":{"type":"string","format":"decimal","description":"Total payment amount posted by the bank redirect (12 digits, 2 decimal places).\nMust match `pre_order.get_total_amount_with_interest()`."},"InstallmentCount":{"type":"integer","description":"Number of installments used in the transaction."},"Hash":{"type":"string","description":"HMAC hash from the MobilExpress gateway for response integrity verification.\nValidated via `gateway.is_hash_valid`."}}}}}}
```

## The RewardListPageInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"RewardListPageInput":{"type":"object","required":["card_number","card_month","card_year","card_cvv"],"properties":{"card_number":{"type":"string","description":"Full credit card number. Leading, trailing, and internal spaces are stripped\nbefore validation. Must pass card number format validation."},"card_month":{"type":"string","description":"Card expiry month. Must be a valid month value."},"card_year":{"type":"string","minLength":4,"maxLength":4,"description":"Card expiry year (4 digits). Must be a valid future year."},"card_cvv":{"type":"string","description":"Card security code (CVV/CVC). Must pass CVV format validation."},"card_holder":{"type":"string","description":"Cardholder full name. Optional."},"card_name":{"type":["string","null"],"description":"Optional alias or label for the card."}}}}}}
```

## The RewardSelectionPageInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"RewardSelectionPageInput":{"type":"object","description":"Dynamic input schema â€” the fields are determined at runtime based on the reward\ntypes returned by the payment gateway in the preceding `RewardListPage` step.\nEach field name is a `RewardType` enum value (`general` or `special`) and\neach value is a decimal amount between `0` and the maximum available for that type.\nThe sum of all submitted amounts must not exceed the order total.","additionalProperties":{"type":"string","format":"decimal","description":"Amount of this reward type to apply. Between 0 and the maximum available\nfor this type (12 digits, 2 decimal places)."}}}}}
```

## The SampleProductPageInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"SampleProductPageInput":{"type":"object","required":["sample_products"],"properties":{"sample_products":{"type":"array","items":{"type":"integer"},"description":"List of product PKs to add as sample products. Must be from the set of\navailable sample products for the current basket's offer discount applications.\nDuplicates are deduplicated automatically. Submit an empty array to explicitly\ndecline all sample products (sets `unwanted_sample_products = true`).\nThe count must not exceed the `allowed_quantity` returned in the page context."}}}}}}
```

## The OrderNotePageInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"OrderNotePageInput":{"type":"object","required":["notes"],"properties":{"notes":{"type":["string","null"],"maxLength":320,"description":"Free-text note to attach to the order. Maximum 320 characters.\nSubmitting `null` or an empty string clears any previously stored note."}}}}}}
```

## The DeliveryBagsPageInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"DeliveryBagsPageInput":{"type":"object","required":["product"],"properties":{"product":{"type":"string","description":"SKU of the delivery bag product. Must match the SKU configured in\n`DELIVERY_BAGS_CONF.sku`. The product must be active and have\n`product_type = miscellaneous`."},"quantity":{"type":"integer","minimum":0,"description":"Number of bags requested by the user. Only used when\n`DELIVERY_BAGS_CONF.is_quantity_changeable` is `true`. Must be greater than\nor equal to `DELIVERY_BAGS_CONF.min_quantity`. Defaults to `0` if omitted,\nwhich falls back to `min_quantity`. Raises a validation error if\n`is_quantity_changeable` is `false` and a non-zero value is submitted."}}}}}}
```

## The OrderSelectionPageInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"OrderSelectionPageInput":{"type":"object","required":["extra_field"],"properties":{"extra_field":{"description":"A JSON value for the `Order` model's `extra_field` attribute. Must conform\nto the schema defined by the `Order` model's attribute configuration\n(accessible via the `schema` key in the GET page context). Validated via\n`Order.get_attribute_config('extra_field')`. If no attribute config is\nregistered, the value is stored as-is without additional validation."}}}}}}
```

## The GiftCardInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"GiftCardInput":{"type":"object","required":["card_number","provider_slug"],"properties":{"card_number":{"type":"string","maxLength":64,"description":"The gift card number to look up. Leading and trailing whitespace is\nstripped automatically. Must not be blank."},"provider_slug":{"type":"string","maxLength":100,"description":"Slug of an active gift card provider. Returns a validation error if\nno active provider with this slug exists."}}}}}}
```

## The GiftCardOtpInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"GiftCardOtpInput":{"type":"object","required":["otp_code"],"properties":{"otp_code":{"type":"string","maxLength":16,"description":"The one-time password received by the user (SMS or similar channel).\nLeading and trailing whitespace is stripped. Maximum 16 characters."}}}}}}
```

## The GiftCardApplyInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"GiftCardApplyInput":{"type":"object","required":["amount"],"properties":{"amount":{"type":"string","format":"decimal","description":"Decimal amount to apply from the gift card (12 digits, 2 decimal places).\nMust be greater than zero. The actual reserved amount may be lower after\ncaps are applied: available balance, remaining unpaid order total, and\nthe headroom under `GIFT_CARD_CONFIG.max_amount_per_order`."}}}}}}
```

## The GiftCardRemoveInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"GiftCardRemoveInput":{"type":"object","required":["card_number_hash"],"properties":{"card_number_hash":{"type":"string","maxLength":255,"description":"Hash of the gift card number that identifies the reservation to remove.\nObtained from `card_number_hash` in the applied cards list returned by\nthe Gift Card Page. If the hash does not match any reservation the\nrequest succeeds silently."}}}}}}
```

## The GiftCardUpdateAmountInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"GiftCardUpdateAmountInput":{"type":"object","required":["card_number_hash","new_amount"],"properties":{"card_number_hash":{"type":"string","maxLength":255,"description":"Hash of the gift card number identifying the reservation to update.\nObtained from `card_number_hash` in the applied cards list returned by\nthe Gift Card Page."},"new_amount":{"type":"string","format":"decimal","description":"New desired reserved amount (12 digits, 2 decimal places). Must be\ngreater than zero. Subject to the same cap rules as the apply step,\nadjusted so the card's current reserved amount is treated as if it\nwere not yet applied."}}}}}}
```

## The GiftCardPaymentInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"GiftCardPaymentInput":{"type":"object","required":["agreement"],"properties":{"agreement":{"type":"boolean","description":"Must be `true`. The user must explicitly accept the terms and conditions\nto confirm the gift card payment. Any other value returns a validation\nerror."}}}}}}
```

## The SlotSelectionPageInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"SlotSelectionPageInput":{"type":"object","required":["lower","upper"],"properties":{"lower":{"type":"string","format":"date-time","description":"Start of the selected delivery time window. Must be an ISO 8601 datetime with timezone.\nMust be a currently available slot according to `SlotService.is_delivery_range_available()`."},"upper":{"type":"string","format":"date-time","description":"End of the selected delivery time window. Must be an ISO 8601 datetime with timezone."}}}}}}
```

## The ReservationSelectionPageInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"ReservationSelectionPageInput":{"type":"object","required":["skip_reservation"],"properties":{"skip_reservation":{"type":"boolean","default":false,"description":"Set to `true` to skip reservation scheduling. When `true`, `lower` and `upper`\nare not required and no delivery range is stored. When `false`, both `lower`\nand `upper` are required."},"lower":{"type":"string","format":"date-time","description":"Start of the selected reservation time window. Required when `skip_reservation` is `false`."},"upper":{"type":"string","format":"date-time","description":"End of the selected reservation time window. Required when `skip_reservation` is `false`."}}}}}}
```

## The CreditPaymentSelectionPageInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"CreditPaymentSelectionPageInput":{"type":"object","required":["credit_payment_option"],"properties":{"credit_payment_option":{"type":"integer","description":"Primary key of the selected `Pos` object. Must be one of the available POS options\nreturned by `payment_option.get_available_poses()` for the current credit payment option."}}}}}}
```

## The CreditPaymentConfirmationPageInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"CreditPaymentConfirmationPageInput":{"type":"object","required":["agreement"],"properties":{"agreement":{"type":"boolean","description":"User must accept the terms and conditions to initiate the payment redirect. Must be `true`.","enum":[true]}}}}}}
```

## The CreditPaymentCompletePageInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"CreditPaymentCompletePageInput":{"description":"The active schema depends on the gateway of the selected POS option\n(`pre_order.data['credit_payment_option'].gateway`).","oneOf":[{"$ref":"#/components/schemas/CreditPaymentCompleteDefaultInput"},{"$ref":"#/components/schemas/CreditPaymentCompleteFibaInput"},{"$ref":"#/components/schemas/CreditPaymentCompleteGarantiInput"},{"$ref":"#/components/schemas/CreditPaymentCompleteZipInput"},{"$ref":"#/components/schemas/CreditPaymentCompleteComPayInput"}]},"CreditPaymentCompleteDefaultInput":{"type":"object","description":"Default gateway callback input (`SuccessRequiredInputSerializer`).","required":["success"],"properties":{"success":{"type":"boolean","description":"Payment result flag posted by the gateway. Must be `true`.","enum":[true]}}},"CreditPaymentCompleteFibaInput":{"type":"object","description":"Fiba credit gateway callback input (`fiba_credit`). Extends the default serializer.","required":["success"],"properties":{"success":{"type":"boolean","description":"Payment result flag posted by the gateway. Must be `true`.","enum":[true]}}},"CreditPaymentCompleteGarantiInput":{"type":"object","description":"Garanti credit gateway callback input (`garanti_credit`).","required":["success","TransactionId","Key","CardToken"],"properties":{"success":{"type":"boolean","description":"Payment result flag posted by the gateway. Must be `true`.","enum":[true]},"TransactionId":{"type":"string","minLength":3,"maxLength":32,"description":"Transaction ID from the Garanti gateway callback."},"Key":{"type":"string","minLength":3,"maxLength":64,"description":"Key from the Garanti gateway callback."},"CardToken":{"type":"string","minLength":3,"maxLength":64,"description":"Card token from the Garanti gateway callback."}}},"CreditPaymentCompleteZipInput":{"type":"object","description":"Zip credit gateway callback input (`zip_credit`).","required":["checkout_id"],"properties":{"checkout_id":{"type":"string","maxLength":256,"description":"Checkout ID from the Zip gateway callback."}}},"CreditPaymentCompleteComPayInput":{"type":"object","description":"ComPay credit gateway callback input (`compay_credit`). Hash-validated against\nthe gateway's `generate_hash()` output and `is_status_valid()` check.","required":["Response","acqResponseCode","orderId","amount"],"properties":{"Response":{"type":"string","maxLength":32,"description":"Response code from the ComPay gateway callback."},"acqResponseCode":{"type":"string","maxLength":32,"description":"Acquirer response code from the ComPay gateway."},"AuthCode":{"type":"string","maxLength":32,"description":"Authorization code from the ComPay gateway. Optional."},"orderId":{"type":"string","maxLength":64,"description":"Order ID from the ComPay gateway callback."},"amount":{"type":"string","description":"Payment amount posted by the ComPay gateway (comma-separated decimal, e.g. `\"150,00\"`).\nMust match `pre_order.get_unpaid_amount()`."},"productType":{"type":"string","maxLength":2,"description":"Product type from the ComPay gateway callback. Optional."}}}}}}
```

## The CreditPaymentCompleteDefaultInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"CreditPaymentCompleteDefaultInput":{"type":"object","description":"Default gateway callback input (`SuccessRequiredInputSerializer`).","required":["success"],"properties":{"success":{"type":"boolean","description":"Payment result flag posted by the gateway. Must be `true`.","enum":[true]}}}}}}
```

## The CreditPaymentCompleteFibaInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"CreditPaymentCompleteFibaInput":{"type":"object","description":"Fiba credit gateway callback input (`fiba_credit`). Extends the default serializer.","required":["success"],"properties":{"success":{"type":"boolean","description":"Payment result flag posted by the gateway. Must be `true`.","enum":[true]}}}}}}
```

## The CreditPaymentCompleteGarantiInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"CreditPaymentCompleteGarantiInput":{"type":"object","description":"Garanti credit gateway callback input (`garanti_credit`).","required":["success","TransactionId","Key","CardToken"],"properties":{"success":{"type":"boolean","description":"Payment result flag posted by the gateway. Must be `true`.","enum":[true]},"TransactionId":{"type":"string","minLength":3,"maxLength":32,"description":"Transaction ID from the Garanti gateway callback."},"Key":{"type":"string","minLength":3,"maxLength":64,"description":"Key from the Garanti gateway callback."},"CardToken":{"type":"string","minLength":3,"maxLength":64,"description":"Card token from the Garanti gateway callback."}}}}}}
```

## The CreditPaymentCompleteZipInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"CreditPaymentCompleteZipInput":{"type":"object","description":"Zip credit gateway callback input (`zip_credit`).","required":["checkout_id"],"properties":{"checkout_id":{"type":"string","maxLength":256,"description":"Checkout ID from the Zip gateway callback."}}}}}}
```

## The CreditPaymentCompleteComPayInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"CreditPaymentCompleteComPayInput":{"type":"object","description":"ComPay credit gateway callback input (`compay_credit`). Hash-validated against\nthe gateway's `generate_hash()` output and `is_status_valid()` check.","required":["Response","acqResponseCode","orderId","amount"],"properties":{"Response":{"type":"string","maxLength":32,"description":"Response code from the ComPay gateway callback."},"acqResponseCode":{"type":"string","maxLength":32,"description":"Acquirer response code from the ComPay gateway."},"AuthCode":{"type":"string","maxLength":32,"description":"Authorization code from the ComPay gateway. Optional."},"orderId":{"type":"string","maxLength":64,"description":"Order ID from the ComPay gateway callback."},"amount":{"type":"string","description":"Payment amount posted by the ComPay gateway (comma-separated decimal, e.g. `\"150,00\"`).\nMust match `pre_order.get_unpaid_amount()`."},"productType":{"type":"string","maxLength":2,"description":"Product type from the ComPay gateway callback. Optional."}}}}}}
```

## The ConfirmationPaymentAgreementConfirmPageInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"ConfirmationPaymentAgreementConfirmPageInput":{"type":"object","required":["agreement"],"properties":{"agreement":{"type":"boolean","description":"Must be `true` to accept the pre-payment terms and conditions and trigger\nthe gateway's `enable_payment` call. Submitting `false` returns a\nvalidation error."}}}}}}
```

## The ConfirmationPaymentSelectedPageInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"ConfirmationPaymentSelectedPageInput":{"type":"object","required":["agreement"],"properties":{"agreement":{"type":"boolean","description":"Must be `true` to accept the standard checkout order agreement\n(`OrderAgreementInputSerializer`) and initiate the confirmation payment\nvia the gateway's `start_payment` call. This is distinct from the\ngateway-specific pre-payment agreement accepted in\n`ConfirmationPaymentAgreementConfirmPage`. The user must also be a\nregistered (non-anonymous) user with a valid phone number.\nSubmitting `false` returns a validation error."}}}}}}
```

## The ConfirmationPaymentQueryPageInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"ConfirmationPaymentQueryPageInput":{"type":"object","description":"Gateway-dependent input for the confirmation payment polling step.\nMost gateways (TomPay, Apple Pay, default) require no fields â€” submit an\nempty body for those. Gateway-specific fields are listed below.","properties":{"otp":{"type":"string","minLength":4,"maxLength":4,"description":"**Paycell only.** 4-digit one-time password sent to the user's registered\nphone number. Required when the active gateway is `paycell`."},"customer_card_no":{"type":"string","maxLength":16,"description":"**PosAs Gift Card only.** The gift card number. Required when the active\ngateway is `posas_giftcard`."},"password":{"type":"string","pattern":"^\\d{4}$","description":"**PosAs Gift Card only.** 4-digit PIN for the gift card. Required when the\nactive gateway is `posas_giftcard`. Must consist of exactly 4 digits."}}}}}}
```

## The GPayRedirectPageInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"GPayRedirectPageInput":{"type":"object","description":"No input fields are required for this step. The request body must be empty.\nAny fields submitted in the body are not processed by this page and will\nnot cause a validation error; however, the Garanti Pay gateway is not\ninvolved at this step, so gateway-specific parameters are irrelevant here.","properties":{}}}}}
```

## The RedirectionPageCompletePageContext object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"RedirectionPageCompletePageContext":{"type":"object","properties":{"redirect_url":{"type":"string","description":"The full URL of the payment provider's hosted payment page. The customer must be navigated to this URL to authorise the transaction."},"is_iframe":{"type":["boolean","null"],"description":"When `true`, the payment provider's page should be rendered in an inline frame within the checkout. When `false` or absent, the customer is navigated to the provider URL directly."}}}}}}
```

## The RedirectionPageCompletePageInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"RedirectionPageCompletePageInput":{"description":"Gateway callback payload posted to this endpoint after the customer\ncompletes or abandons the payment on the provider's hosted page.\n\nThe exact fields required depend on the active payment gateway. The gateway\nis determined by the POS record associated with the selected payment option.\nMost providers include a `success` indicator; additional fields carry\ntransaction identifiers, hash values, and status codes for server-side\nverification.","oneOf":[{"$ref":"#/components/schemas/RedirectionCompleteGenericInput"},{"$ref":"#/components/schemas/RedirectionCompleteFastPayInput"},{"$ref":"#/components/schemas/RedirectionCompletePayUPolandInput"},{"$ref":"#/components/schemas/RedirectionCompleteExtensionInput"},{"$ref":"#/components/schemas/RedirectionCompleteComPayInput"},{"$ref":"#/components/schemas/RedirectionCompleteIyzicoInput"},{"$ref":"#/components/schemas/RedirectionCompleteMobilExpressHostedInput"},{"$ref":"#/components/schemas/RedirectionCompleteYKBWorldPayInput"},{"$ref":"#/components/schemas/RedirectionCompleteStripeInput"},{"$ref":"#/components/schemas/RedirectionCompleteTeqPayInput"},{"$ref":"#/components/schemas/RedirectionCompletePaypalInput"},{"$ref":"#/components/schemas/RedirectionCompletePayuRoByClickInput"},{"$ref":"#/components/schemas/RedirectionCompleteTapInput"},{"$ref":"#/components/schemas/RedirectionCompleteMaximumPayInput"}]},"RedirectionCompleteGenericInput":{"type":"object","description":"Used by gateways that only require a success flag on return: `yandex_money`, `alpha`, `multisafepay`, `netopia`, `payu_pl`, `bulut`, `paymob`, `dummypay`.","required":["success"],"properties":{"success":{"type":"boolean","enum":[true],"description":"Indicates a successful payment authorisation. Must be `true`; any other value is treated as a failed transaction."}}},"RedirectionCompleteFastPayInput":{"type":"object","description":"Used by the `fastpay` gateway. All `Encrypted*` fields contain values encrypted by the FastPay service and are decrypted server-side using the configured gateway credentials.","required":["success","EncryptedResultCode","EncryptedApproveCode","EncryptedCustomerGsm","EncryptedErrorMessage"],"properties":{"success":{"type":"boolean","enum":[true]},"EncryptedResultCode":{"type":"string","description":"Encrypted result code returned by FastPay."},"EncryptedApproveCode":{"type":"string","description":"Encrypted approval code returned by FastPay."},"EncryptedCustomerGsm":{"type":"string","description":"Encrypted customer mobile number returned by FastPay."},"EncryptedErrorMessage":{"type":"string","description":"Encrypted error message (present even on success)."},"EncryptedInitialAmount":{"type":"string"},"EncryptedDiscountedAmount":{"type":"string"},"EncryptedInstallCount":{"type":"string"},"EncryptedUserToken":{"type":"string"},"EncryptedEnterpriseOrderId":{"type":"string"}}},"RedirectionCompletePayUPolandInput":{"type":"object","description":"Used by the `payu_poland` gateway.","required":["success","payment_id","status"],"properties":{"success":{"type":"boolean","enum":[true]},"payment_id":{"type":"string","description":"PayU transaction identifier. Validated against the transaction ID stored at the time the redirect was initiated."},"status":{"type":"string","description":"Payment status string returned by PayU. A value of `Failed` is rejected with a validation error."}}},"RedirectionCompleteExtensionInput":{"type":"object","description":"Used by the `extension` gateway.\n\nWhen this gateway is active, `installment_count` and `interest_fee` are\nstored on the pre-order under `installment_alt` for downstream order\nprocessing. Field names containing hyphens are automatically normalised\nto underscores before validation.","required":["success","salt","order_id","amount","installment_count","interest_fee","status","substatus","hash"],"properties":{"success":{"type":"boolean","enum":[true]},"salt":{"type":"string","maxLength":10},"order_id":{"type":"string","maxLength":64},"amount":{"type":"string","description":"Payment amount as returned by the extension provider."},"installment_count":{"type":"string","description":"Number of instalments selected by the customer at the payment provider's page. Stored on the pre-order for interest calculation."},"interest_fee":{"type":"string","description":"Interest fee amount applied by the payment provider for the selected instalment plan. Stored on the pre-order for final amount calculation."},"status":{"type":"string","enum":[3,4,"RESOLVED","PENDING"],"description":"Primary transaction status code returned by the extension provider."},"substatus":{"type":"string","enum":[7,8,"RESOLVED","PAYMENT_WAITING"],"description":"Secondary transaction status code returned by the extension provider."},"hash":{"type":"string","maxLength":256,"description":"HMAC hash used for server-side payload integrity verification. Computed using the gateway's configured hash key."}}},"RedirectionCompleteComPayInput":{"type":"object","description":"Used by the `compay` gateway. The submitted payload is verified against a provider-generated hash and validated against the outstanding pre-order amount before acceptance.","required":["Response","acqResponseCode","orderId","amount"],"properties":{"Response":{"type":"string","maxLength":32,"description":"Transaction response code returned by ComPay."},"acqResponseCode":{"type":"string","maxLength":32,"description":"Acquirer response code returned by ComPay."},"AuthCode":{"type":"string","maxLength":32,"description":"Authorisation code (optional, present on approved transactions)."},"orderId":{"type":"string","maxLength":64,"description":"Order identifier returned by ComPay."},"amount":{"type":"string","description":"Payment amount as a string (comma decimal separator accepted). Validated to match the outstanding pre-order amount."},"productType":{"type":"string","maxLength":2}}},"RedirectionCompleteIyzicoInput":{"type":"object","description":"Used by `pay_with_iyzico`, `iyzico_bkm`, and `iyzico_funds_transfer`\ngateways. For `iyzico_funds_transfer` only `token` is required.","required":["token"],"properties":{"token":{"type":"string","description":"Iyzico transaction token returned in the callback."},"oid":{"type":"string","maxLength":128,"description":"Optional order identifier returned by Iyzico alongside the token."}}},"RedirectionCompleteMobilExpressHostedInput":{"type":"object","description":"Used by the `mobilexpress_hosted` gateway.","required":["Result","SystemTransId"],"properties":{"Result":{"type":"string","enum":["Success"],"description":"Transaction result returned by MobilExpress Hosted. Only `Success` is accepted; any other value is treated as a failed transaction."},"SystemTransId":{"type":"string","description":"MobilExpress Hosted system-level transaction identifier."}}},"RedirectionCompleteYKBWorldPayInput":{"type":"object","description":"Used by the `ykb_worldpay` gateway.","required":["success","transactionResult"],"properties":{"success":{"type":"boolean","enum":[true]},"transactionResult":{"type":"string","description":"YKB WorldPay transaction result code. Must equal `\"1\"` for the payment to be considered approved."}}},"RedirectionCompleteStripeInput":{"type":"object","description":"Used by the `stripe` gateway.","required":["success","session_id"],"properties":{"success":{"type":"boolean","enum":[true]},"session_id":{"type":"string","minLength":3,"description":"Stripe Checkout Session ID returned in the redirect URL."}}},"RedirectionCompleteTeqPayInput":{"type":"object","description":"Used by the `teqpay` gateway. Field names are case-mapped before validation: `Token` â†’ `token`, `Result` â†’ `result`.","required":["success","Token","Result"],"properties":{"success":{"type":"boolean","enum":[true]},"Token":{"type":"string","maxLength":128,"description":"TeqPay transaction token (submitted as `Token`, mapped to `token`)."},"Result":{"type":"boolean","description":"TeqPay payment result flag (submitted as `Result`, mapped to `result`)."}}},"RedirectionCompletePaypalInput":{"type":"object","description":"Used by the `paypal` gateway. `token` and `PayerID` are present on standard PayPal Express Checkout returns but may be absent in some PayPal flow variants.","required":["success"],"properties":{"success":{"type":"boolean","enum":[true]},"token":{"type":"string","description":"PayPal transaction token (optional on some flows)."},"PayerID":{"type":"string","description":"PayPal payer identifier (optional on some flows)."}}},"RedirectionCompletePayuRoByClickInput":{"type":"object","description":"Used by the `payu_ro_paybyclick` gateway.","required":["success","body","date","merchant","signature"],"properties":{"success":{"type":"boolean","enum":[true]},"body":{"type":"string","description":"Signed response body returned by PayU Romania."},"date":{"type":"string","description":"Response timestamp returned by PayU Romania."},"merchant":{"type":"string","description":"Merchant identifier returned by PayU Romania."},"signature":{"type":"string","description":"Cryptographic signature for payload verification."}}},"RedirectionCompleteTapInput":{"type":"object","description":"Used by `qpay_tap` and `benefit_tap` gateways.","required":["success","tap_id","oid","price"],"properties":{"success":{"type":"boolean","enum":[true]},"tap_id":{"type":"string","maxLength":256,"description":"Tap payment identifier returned by the gateway."},"oid":{"type":"string","maxLength":256,"description":"Order identifier returned by the gateway."},"price":{"type":"string","description":"Payment amount string returned by the gateway."}}},"RedirectionCompleteMaximumPayInput":{"type":"object","description":"Used by the `maximumpay` gateway.","required":["success","Response","PAY3D"],"properties":{"success":{"type":"boolean","enum":[true]},"Response":{"type":"string","enum":["Approved"],"description":"Must be `\"Approved\"` for the transaction to be accepted."},"PAY3D":{"type":"boolean","description":"Indicates whether 3D Secure was used for this transaction."},"oid":{"type":"string"},"hash":{"type":"string"},"timestamp":{"type":"string"},"Ecom_Payment_Card_ExpDate_Month":{"type":"string"},"Ecom_Payment_Card_ExpDate_Year":{"type":"string"},"currency":{"type":"string"},"phone":{"type":"string"},"ajaxHash":{"type":"string"},"PHONENO":{"type":"string"},"maskedCreditCard":{"type":"string"},"transId":{"type":"string"},"tranUid":{"type":"string"},"CHANNEL":{"type":"string"},"storetype":{"type":"string"},"failUrl":{"type":"string"},"clientIp":{"type":"string"},"extra1":{"type":"string"},"PAYMENTMETHOD":{"type":"string"},"paymentType":{"type":"string"},"returnCode":{"type":"string"},"clientid":{"type":"string"},"MaskedPan":{"type":"string"},"okUrl":{"type":"string"},"xid":{"type":"string","description":"3D Secure transaction identifier."},"lang":{"type":"string"},"HASH":{"type":"string","description":"MaximumPay hash value for server-side integrity verification."},"rnd":{"type":"string","description":"Random nonce included in hash computation."},"HASHPARAMS":{"type":"string","description":"Pipe-separated list of field names used to compute HASH."},"HASHPARAMSVAL":{"type":"string","description":"Concatenated values of the fields listed in HASHPARAMS."},"ProcReturnCode":{"type":"integer","description":"Processor return code from the acquirer."}}}}}}
```

## The RedirectionCompleteGenericInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"RedirectionCompleteGenericInput":{"type":"object","description":"Used by gateways that only require a success flag on return: `yandex_money`, `alpha`, `multisafepay`, `netopia`, `payu_pl`, `bulut`, `paymob`, `dummypay`.","required":["success"],"properties":{"success":{"type":"boolean","enum":[true],"description":"Indicates a successful payment authorisation. Must be `true`; any other value is treated as a failed transaction."}}}}}}
```

## The RedirectionCompleteFastPayInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"RedirectionCompleteFastPayInput":{"type":"object","description":"Used by the `fastpay` gateway. All `Encrypted*` fields contain values encrypted by the FastPay service and are decrypted server-side using the configured gateway credentials.","required":["success","EncryptedResultCode","EncryptedApproveCode","EncryptedCustomerGsm","EncryptedErrorMessage"],"properties":{"success":{"type":"boolean","enum":[true]},"EncryptedResultCode":{"type":"string","description":"Encrypted result code returned by FastPay."},"EncryptedApproveCode":{"type":"string","description":"Encrypted approval code returned by FastPay."},"EncryptedCustomerGsm":{"type":"string","description":"Encrypted customer mobile number returned by FastPay."},"EncryptedErrorMessage":{"type":"string","description":"Encrypted error message (present even on success)."},"EncryptedInitialAmount":{"type":"string"},"EncryptedDiscountedAmount":{"type":"string"},"EncryptedInstallCount":{"type":"string"},"EncryptedUserToken":{"type":"string"},"EncryptedEnterpriseOrderId":{"type":"string"}}}}}}
```

## The RedirectionCompletePayUPolandInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"RedirectionCompletePayUPolandInput":{"type":"object","description":"Used by the `payu_poland` gateway.","required":["success","payment_id","status"],"properties":{"success":{"type":"boolean","enum":[true]},"payment_id":{"type":"string","description":"PayU transaction identifier. Validated against the transaction ID stored at the time the redirect was initiated."},"status":{"type":"string","description":"Payment status string returned by PayU. A value of `Failed` is rejected with a validation error."}}}}}}
```

## The RedirectionCompleteExtensionInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"RedirectionCompleteExtensionInput":{"type":"object","description":"Used by the `extension` gateway.\n\nWhen this gateway is active, `installment_count` and `interest_fee` are\nstored on the pre-order under `installment_alt` for downstream order\nprocessing. Field names containing hyphens are automatically normalised\nto underscores before validation.","required":["success","salt","order_id","amount","installment_count","interest_fee","status","substatus","hash"],"properties":{"success":{"type":"boolean","enum":[true]},"salt":{"type":"string","maxLength":10},"order_id":{"type":"string","maxLength":64},"amount":{"type":"string","description":"Payment amount as returned by the extension provider."},"installment_count":{"type":"string","description":"Number of instalments selected by the customer at the payment provider's page. Stored on the pre-order for interest calculation."},"interest_fee":{"type":"string","description":"Interest fee amount applied by the payment provider for the selected instalment plan. Stored on the pre-order for final amount calculation."},"status":{"type":"string","enum":[3,4,"RESOLVED","PENDING"],"description":"Primary transaction status code returned by the extension provider."},"substatus":{"type":"string","enum":[7,8,"RESOLVED","PAYMENT_WAITING"],"description":"Secondary transaction status code returned by the extension provider."},"hash":{"type":"string","maxLength":256,"description":"HMAC hash used for server-side payload integrity verification. Computed using the gateway's configured hash key."}}}}}}
```

## The RedirectionCompleteComPayInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"RedirectionCompleteComPayInput":{"type":"object","description":"Used by the `compay` gateway. The submitted payload is verified against a provider-generated hash and validated against the outstanding pre-order amount before acceptance.","required":["Response","acqResponseCode","orderId","amount"],"properties":{"Response":{"type":"string","maxLength":32,"description":"Transaction response code returned by ComPay."},"acqResponseCode":{"type":"string","maxLength":32,"description":"Acquirer response code returned by ComPay."},"AuthCode":{"type":"string","maxLength":32,"description":"Authorisation code (optional, present on approved transactions)."},"orderId":{"type":"string","maxLength":64,"description":"Order identifier returned by ComPay."},"amount":{"type":"string","description":"Payment amount as a string (comma decimal separator accepted). Validated to match the outstanding pre-order amount."},"productType":{"type":"string","maxLength":2}}}}}}
```

## The RedirectionCompleteIyzicoInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"RedirectionCompleteIyzicoInput":{"type":"object","description":"Used by `pay_with_iyzico`, `iyzico_bkm`, and `iyzico_funds_transfer`\ngateways. For `iyzico_funds_transfer` only `token` is required.","required":["token"],"properties":{"token":{"type":"string","description":"Iyzico transaction token returned in the callback."},"oid":{"type":"string","maxLength":128,"description":"Optional order identifier returned by Iyzico alongside the token."}}}}}}
```

## The RedirectionCompleteMobilExpressHostedInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"RedirectionCompleteMobilExpressHostedInput":{"type":"object","description":"Used by the `mobilexpress_hosted` gateway.","required":["Result","SystemTransId"],"properties":{"Result":{"type":"string","enum":["Success"],"description":"Transaction result returned by MobilExpress Hosted. Only `Success` is accepted; any other value is treated as a failed transaction."},"SystemTransId":{"type":"string","description":"MobilExpress Hosted system-level transaction identifier."}}}}}}
```

## The RedirectionCompleteYKBWorldPayInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"RedirectionCompleteYKBWorldPayInput":{"type":"object","description":"Used by the `ykb_worldpay` gateway.","required":["success","transactionResult"],"properties":{"success":{"type":"boolean","enum":[true]},"transactionResult":{"type":"string","description":"YKB WorldPay transaction result code. Must equal `\"1\"` for the payment to be considered approved."}}}}}}
```

## The RedirectionCompleteStripeInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"RedirectionCompleteStripeInput":{"type":"object","description":"Used by the `stripe` gateway.","required":["success","session_id"],"properties":{"success":{"type":"boolean","enum":[true]},"session_id":{"type":"string","minLength":3,"description":"Stripe Checkout Session ID returned in the redirect URL."}}}}}}
```

## The RedirectionCompleteTeqPayInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"RedirectionCompleteTeqPayInput":{"type":"object","description":"Used by the `teqpay` gateway. Field names are case-mapped before validation: `Token` â†’ `token`, `Result` â†’ `result`.","required":["success","Token","Result"],"properties":{"success":{"type":"boolean","enum":[true]},"Token":{"type":"string","maxLength":128,"description":"TeqPay transaction token (submitted as `Token`, mapped to `token`)."},"Result":{"type":"boolean","description":"TeqPay payment result flag (submitted as `Result`, mapped to `result`)."}}}}}}
```

## The RedirectionCompletePaypalInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"RedirectionCompletePaypalInput":{"type":"object","description":"Used by the `paypal` gateway. `token` and `PayerID` are present on standard PayPal Express Checkout returns but may be absent in some PayPal flow variants.","required":["success"],"properties":{"success":{"type":"boolean","enum":[true]},"token":{"type":"string","description":"PayPal transaction token (optional on some flows)."},"PayerID":{"type":"string","description":"PayPal payer identifier (optional on some flows)."}}}}}}
```

## The RedirectionCompletePayuRoByClickInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"RedirectionCompletePayuRoByClickInput":{"type":"object","description":"Used by the `payu_ro_paybyclick` gateway.","required":["success","body","date","merchant","signature"],"properties":{"success":{"type":"boolean","enum":[true]},"body":{"type":"string","description":"Signed response body returned by PayU Romania."},"date":{"type":"string","description":"Response timestamp returned by PayU Romania."},"merchant":{"type":"string","description":"Merchant identifier returned by PayU Romania."},"signature":{"type":"string","description":"Cryptographic signature for payload verification."}}}}}}
```

## The RedirectionCompleteTapInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"RedirectionCompleteTapInput":{"type":"object","description":"Used by `qpay_tap` and `benefit_tap` gateways.","required":["success","tap_id","oid","price"],"properties":{"success":{"type":"boolean","enum":[true]},"tap_id":{"type":"string","maxLength":256,"description":"Tap payment identifier returned by the gateway."},"oid":{"type":"string","maxLength":256,"description":"Order identifier returned by the gateway."},"price":{"type":"string","description":"Payment amount string returned by the gateway."}}}}}}
```

## The RedirectionCompleteMaximumPayInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"RedirectionCompleteMaximumPayInput":{"type":"object","description":"Used by the `maximumpay` gateway.","required":["success","Response","PAY3D"],"properties":{"success":{"type":"boolean","enum":[true]},"Response":{"type":"string","enum":["Approved"],"description":"Must be `\"Approved\"` for the transaction to be accepted."},"PAY3D":{"type":"boolean","description":"Indicates whether 3D Secure was used for this transaction."},"oid":{"type":"string"},"hash":{"type":"string"},"timestamp":{"type":"string"},"Ecom_Payment_Card_ExpDate_Month":{"type":"string"},"Ecom_Payment_Card_ExpDate_Year":{"type":"string"},"currency":{"type":"string"},"phone":{"type":"string"},"ajaxHash":{"type":"string"},"PHONENO":{"type":"string"},"maskedCreditCard":{"type":"string"},"transId":{"type":"string"},"tranUid":{"type":"string"},"CHANNEL":{"type":"string"},"storetype":{"type":"string"},"failUrl":{"type":"string"},"clientIp":{"type":"string"},"extra1":{"type":"string"},"PAYMENTMETHOD":{"type":"string"},"paymentType":{"type":"string"},"returnCode":{"type":"string"},"clientid":{"type":"string"},"MaskedPan":{"type":"string"},"okUrl":{"type":"string"},"xid":{"type":"string","description":"3D Secure transaction identifier."},"lang":{"type":"string"},"HASH":{"type":"string","description":"MaximumPay hash value for server-side integrity verification."},"rnd":{"type":"string","description":"Random nonce included in hash computation."},"HASHPARAMS":{"type":"string","description":"Pipe-separated list of field names used to compute HASH."},"HASHPARAMSVAL":{"type":"string","description":"Concatenated values of the fields listed in HASHPARAMS."},"ProcReturnCode":{"type":"integer","description":"Processor return code from the acquirer."}}}}}}
```

## The RedirectionPaymentSelectedInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"RedirectionPaymentSelectedInput":{"type":"object","description":"Submission payload for initiating a redirection-based payment. Accepting the\nterms and conditions is mandatory. Browser metadata fields are optional and\nare forwarded to the payment gateway strategy to support installment\npre-selection and device fingerprinting at the provider level.","required":["agreement"],"properties":{"agreement":{"type":"boolean","enum":[true],"description":"Customer's acceptance of the terms and conditions. Must be `true`; any other value prevents the redirect from being initiated."},"browser_installments":{"type":["string","null"],"maxLength":64,"description":"Colon-separated list of installment counts supported by the customer's browser environment (e.g., `\"1:3:6:9:12\"`). Each value must be an integer between 0 and 120 inclusive. Forwarded to the payment gateway to pre-select compatible installment options on the provider's hosted page."},"browser_client_type":{"type":["string","null"],"maxLength":64,"description":"Identifier for the type of client or browser environment initiating the payment (e.g., `\"web\"`, `\"mobile\"`). Forwarded to the payment gateway strategy for device-aware routing or display decisions."}}}}}}
```

## The GPaySelectionPageInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"GPaySelectionPageInput":{"type":"object","description":"Confirmation payload for the GPay selection step. The request body must be\nsubmitted **empty** â€” any fields present will cause the request to be\nrejected with a validation error.\n\nThis design reflects the nature of the step: the customer simply confirms\ntheir GPay selection, and no additional data entry is required. The system\nresolves the card type and order number automatically upon submission.","maxProperties":0}}}}
```

## The GPayCompletePageInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"GPayCompletePageInput":{"type":"object","description":"Callback payload posted by the Garanti Pay gateway after the customer\ncompletes the payment on the provider's hosted form.\n\nAll three fields are required. `gpay` and `success` must both be `true`\nfor the payment to be accepted. `gpinstallment` carries the instalment\ncount selected by the customer on the Garanti Pay form and is resolved\nagainst the active instalment options for the pre-order's card.\n\nThe full payload (including any additional fields returned by the gateway)\nis also verified against a gateway-specific HMAC hash. Payloads that fail\nhash verification are rejected regardless of the `gpay` and `success`\nvalues.","required":["gpay","success","gpinstallment"],"properties":{"gpay":{"type":"boolean","enum":[true],"description":"Garanti Pay authorisation flag returned by the gateway. Must be `true`; any other value is treated as a failed transaction."},"success":{"type":"boolean","enum":[true],"description":"Payment success flag returned by the gateway. Must be `true`; any other value is treated as a failed transaction."},"gpinstallment":{"type":"string","description":"Instalment count selected by the customer on the Garanti Pay hosted form (e.g. `\"1\"` for a single payment, `\"3\"` for three instalments). The value is resolved against the active instalment records for the pre-order's card. If no matching active instalment is found the resolved instalment on the pre-order is set to `null`."}}}}}}
```

## The MasterpassBinNumberInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"MasterpassBinNumberInput":{"type":"object","required":["bin_number"],"properties":{"bin_number":{"type":"string","description":"First 6 or 8 digits of the card (BIN â€” Bank Identification Number).\nCaptured by the Masterpass JS SDK on the client side. Must contain\nonly digits and have a length of 6 or 8.","pattern":"^\\d{6,8}$"},"is_masterpass_stored_card":{"type":"boolean","default":false,"description":"Indicates whether the card BIN comes from the user's stored\nMasterpass cards. Saved to the session so later steps can\ndistinguish stored-card and fresh-card flows."}}}}}}
```

## The MasterpassCompleteInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"MasterpassCompleteInput":{"type":"object","required":["token","three_d_secure"],"description":"Final Masterpass submission payload. The endpoint also merges any\nrequest **query string parameters** into the form data (with the form\n`amount` key removed before merging) so that 3D Secure callback\nparameters appended by the bank are captured automatically.","properties":{"token":{"type":"string","description":"Masterpass payment token received from the gateway."},"three_d_secure":{"type":"boolean","default":false,"description":"Indicates whether the transaction went through 3D Secure. When\n`true`, the hash and MD status are validated. Defaults to `false`."},"oid":{"type":"string","description":"Order ID echoed back by the bank on 3D callback."},"md":{"type":"string","description":"3D Secure `md` parameter from the bank callback."},"xid":{"type":"string","description":"3D Secure `xid` parameter from the bank callback."},"eci":{"type":"string","description":"3D Secure ECI value from the bank callback."},"cavv":{"type":"string","description":"3D Secure CAVV value from the bank callback."},"rnd":{"type":"string","description":"3D Secure random nonce from the bank callback."},"hash":{"type":"string","description":"Bank-issued response hash. Validated via the gateway when\n`three_d_secure` is `true`."},"hashParams":{"type":"string","description":"3D Secure hash params list from the bank callback."},"hashParamsVal":{"type":"string","description":"3D Secure hash params values from the bank callback."},"mdStatus":{"type":"string","description":"3D Secure MD status. Validated via the gateway when\n`three_d_secure` is `true`. A failure returns\n`\"Transaction failed. Please try again.\"`."},"bankIca":{"type":"string","description":"Bank ACQ ICA value passed back by the gateway."},"paymentReceived":{"type":"string","description":"Payment received indicator returned by the gateway."},"amount":{"type":"string","format":"decimal","description":"Total amount from the bank callback. When present, it is validated\nagainst the order total. A mismatch returns\n`\"Transaction failed. Please try again.\"`. Note: any `amount` form\nfield is removed before query string parameters are merged into\nthe body, so the value used is the one supplied by the bank\ncallback when present."},"clientId":{"type":"string","description":"Merchant client ID echoed back by the gateway."},"sign":{"type":"string","description":"Signature value from the bank callback."}}}}}}
```

## The MasterpassInstallmentSelectionInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"MasterpassInstallmentSelectionInput":{"type":"object","required":["installment"],"properties":{"installment":{"type":"integer","description":"Primary key (`pk`) of the `Installment` record to select. The PK\nmust reference an active installment linked to the card resolved\nin `MasterpassBinNumberPage`."}}}}}}
```

## The MasterpassOrderNoPageInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"MasterpassOrderNoPageInput":{"type":"object","description":"No input fields are required for this step. Submit an empty form body\nto trigger order number assignment and 3D Secure routing evaluation."}}}}
```

## The MasterpassRemoteInstallmentInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"MasterpassRemoteInstallmentInput":{"type":"object","required":["remote_installment_id"],"properties":{"remote_installment_id":{"type":"string","maxLength":32,"description":"Identifier of the installment option returned by the remote\ninstallment service. Must match an active, filter-passing\ninstallment for the current card and basket amount."}}}}}}
```

## The CheckoutProviderSelectionPageInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"CheckoutProviderSelectionPageInput":{"type":"object","description":"Payload for selecting a checkout provider (e.g. Akifast) to use for the\ncurrent order. The submitted provider must be available for the pre-order.","required":["checkout_provider"],"properties":{"checkout_provider":{"type":"integer","description":"Primary key of the checkout provider to select. Only providers that are currently available for the pre-order are accepted."}}}}}}
```

## The AkifastAddressSubField object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"AkifastAddressSubField":{"type":"object","required":["name","code"],"properties":{"name":{"type":"string","description":"Human-readable name of the geographic unit."},"code":{"type":"string","description":"Provider-specific code for the geographic unit."}}}}}}
```

## The AkifastAddressField object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"AkifastAddressField":{"type":"object","required":["name","surname","phone_number","address_title","line","hash_data","country","city","town","district"],"properties":{"name":{"type":"string","description":"First name of the address holder."},"surname":{"type":"string","description":"Last name of the address holder."},"phone_number":{"type":"string","description":"Phone number of the address holder."},"postal_code":{"type":["string","null"],"description":"Postal code. Optional."},"address_title":{"type":"string","description":"Short label for the address (e.g. \"Home\", \"Work\")."},"tax_no":{"type":["string","null"],"description":"Tax number. Required for corporate addresses."},"tax_office":{"type":["string","null"],"description":"Tax office name. Required for corporate addresses."},"company_name":{"type":["string","null"],"description":"Company name. Required for corporate addresses."},"line":{"type":"string","description":"Full street address line."},"address_type":{"type":["string","null"],"description":"Address type (`\"individual\"` or `\"corporate\"`). Mapped to lowercase internally."},"notes":{"type":["string","null"],"description":"Optional delivery notes."},"hash_data":{"type":"string","description":"Provider-generated hash string used to verify address integrity. Stored in the address `extra_field` as `remote_hash`."},"country":{"$ref":"#/components/schemas/AkifastAddressSubField"},"city":{"$ref":"#/components/schemas/AkifastAddressSubField"},"town":{"$ref":"#/components/schemas/AkifastAddressSubField"},"district":{"$ref":"#/components/schemas/AkifastAddressSubField"}}},"AkifastAddressSubField":{"type":"object","required":["name","code"],"properties":{"name":{"type":"string","description":"Human-readable name of the geographic unit."},"code":{"type":"string","description":"Provider-specific code for the geographic unit."}}}}}}
```

## The AkifastAddressSelectionPageInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"AkifastAddressSelectionPageInput":{"type":"object","description":"Address data posted back from the checkout provider's hosted address form.\nBoth shipping and billing addresses must be provided in the provider's format.","required":["basket_id","session_token","shipping_address","billing_address"],"properties":{"basket_id":{"type":"integer","description":"Primary key of the active basket."},"session_token":{"type":"string","format":"uuid","description":"Session token issued by the checkout provider for this session."},"shipping_address":{"$ref":"#/components/schemas/AkifastAddressField"},"billing_address":{"$ref":"#/components/schemas/AkifastAddressField"}}},"AkifastAddressField":{"type":"object","required":["name","surname","phone_number","address_title","line","hash_data","country","city","town","district"],"properties":{"name":{"type":"string","description":"First name of the address holder."},"surname":{"type":"string","description":"Last name of the address holder."},"phone_number":{"type":"string","description":"Phone number of the address holder."},"postal_code":{"type":["string","null"],"description":"Postal code. Optional."},"address_title":{"type":"string","description":"Short label for the address (e.g. \"Home\", \"Work\")."},"tax_no":{"type":["string","null"],"description":"Tax number. Required for corporate addresses."},"tax_office":{"type":["string","null"],"description":"Tax office name. Required for corporate addresses."},"company_name":{"type":["string","null"],"description":"Company name. Required for corporate addresses."},"line":{"type":"string","description":"Full street address line."},"address_type":{"type":["string","null"],"description":"Address type (`\"individual\"` or `\"corporate\"`). Mapped to lowercase internally."},"notes":{"type":["string","null"],"description":"Optional delivery notes."},"hash_data":{"type":"string","description":"Provider-generated hash string used to verify address integrity. Stored in the address `extra_field` as `remote_hash`."},"country":{"$ref":"#/components/schemas/AkifastAddressSubField"},"city":{"$ref":"#/components/schemas/AkifastAddressSubField"},"town":{"$ref":"#/components/schemas/AkifastAddressSubField"},"district":{"$ref":"#/components/schemas/AkifastAddressSubField"}}},"AkifastAddressSubField":{"type":"object","required":["name","code"],"properties":{"name":{"type":"string","description":"Human-readable name of the geographic unit."},"code":{"type":"string","description":"Provider-specific code for the geographic unit."}}}}}}
```

## The AkifastShippingOptionSelectionPageInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"AkifastShippingOptionSelectionPageInput":{"type":"object","description":"Payload forwarded by the checkout provider after the customer selects a\nshipping option on the hosted form. The `conversation_id` is validated\nagainst the active session to prevent replay.","required":["basket_id","conversation_id"],"properties":{"basket_id":{"type":"integer","description":"Primary key of the active basket."},"conversation_id":{"type":"string","description":"Provider conversation identifier. Must match the value stored in `pre_order.checkout_provider_data['conversation_id']`."},"language":{"type":["string","null"],"description":"Optional language code forwarded by the provider (e.g. `\"tr\"`, `\"en\"`)."}}}}}}
```

## The AkifastUserField object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"AkifastUserField":{"type":"object","required":["akinon_user_id","name","surname","email"],"properties":{"akinon_user_id":{"type":"string","maxLength":255,"description":"Provider-assigned unique user identifier."},"name":{"type":"string","maxLength":255,"description":"First name of the user."},"surname":{"type":"string","maxLength":255,"description":"Last name of the user."},"identity_number":{"type":["string","null"],"maxLength":255,"description":"National identity number. Optional."},"email":{"type":"string","format":"email","description":"Email address. Normalized to lowercase."},"phone_number":{"type":["string","null"],"maxLength":255,"description":"Phone number. Optional."},"status":{"type":["string","null"],"maxLength":255,"description":"User status from the provider. Optional."},"verification_status":{"type":["string","null"],"maxLength":255,"description":"Identity verification status. Optional."},"verification_date":{"type":["string","null"],"maxLength":255,"description":"Date when identity was verified. Optional."},"gender":{"type":["string","null"],"maxLength":255,"description":"Gender. Optional."},"email_verified":{"type":["boolean","null"],"description":"Whether the email address has been verified by the provider."},"birth_date":{"type":["string","null"],"maxLength":255,"description":"Date of birth. Optional."}}}}}}
```

## The AkifastAgreementListPageInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"AkifastAgreementListPageInput":{"type":"object","description":"Payload posted back from the checkout provider's agreement selection step.\nIncludes the selected agreement code, shipping option, address data, and\nuser information. Sets payment option, shipping, and records the agreement\non the pre-order.","required":["basket_id","session_token","shipping_option_key","user","code"],"properties":{"basket_id":{"type":"integer","description":"Primary key of the active basket."},"session_token":{"type":"string","format":"uuid","description":"Session token issued by the checkout provider for this session."},"shipping_option_key":{"type":"integer","description":"Primary key of the selected shipping option. Must be one of the available shipping options for the pre-order's address."},"shipping_address":{"$ref":"#/components/schemas/AkifastAddressField"},"billing_address":{"$ref":"#/components/schemas/AkifastAddressField"},"user":{"$ref":"#/components/schemas/AkifastUserField"},"code":{"type":"string","enum":["info","sales"],"description":"Agreement type accepted by the customer. `info` for the preliminary information form; `sales` for the distance sales agreement."}}},"AkifastAddressField":{"type":"object","required":["name","surname","phone_number","address_title","line","hash_data","country","city","town","district"],"properties":{"name":{"type":"string","description":"First name of the address holder."},"surname":{"type":"string","description":"Last name of the address holder."},"phone_number":{"type":"string","description":"Phone number of the address holder."},"postal_code":{"type":["string","null"],"description":"Postal code. Optional."},"address_title":{"type":"string","description":"Short label for the address (e.g. \"Home\", \"Work\")."},"tax_no":{"type":["string","null"],"description":"Tax number. Required for corporate addresses."},"tax_office":{"type":["string","null"],"description":"Tax office name. Required for corporate addresses."},"company_name":{"type":["string","null"],"description":"Company name. Required for corporate addresses."},"line":{"type":"string","description":"Full street address line."},"address_type":{"type":["string","null"],"description":"Address type (`\"individual\"` or `\"corporate\"`). Mapped to lowercase internally."},"notes":{"type":["string","null"],"description":"Optional delivery notes."},"hash_data":{"type":"string","description":"Provider-generated hash string used to verify address integrity. Stored in the address `extra_field` as `remote_hash`."},"country":{"$ref":"#/components/schemas/AkifastAddressSubField"},"city":{"$ref":"#/components/schemas/AkifastAddressSubField"},"town":{"$ref":"#/components/schemas/AkifastAddressSubField"},"district":{"$ref":"#/components/schemas/AkifastAddressSubField"}}},"AkifastAddressSubField":{"type":"object","required":["name","code"],"properties":{"name":{"type":"string","description":"Human-readable name of the geographic unit."},"code":{"type":"string","description":"Provider-specific code for the geographic unit."}}},"AkifastUserField":{"type":"object","required":["akinon_user_id","name","surname","email"],"properties":{"akinon_user_id":{"type":"string","maxLength":255,"description":"Provider-assigned unique user identifier."},"name":{"type":"string","maxLength":255,"description":"First name of the user."},"surname":{"type":"string","maxLength":255,"description":"Last name of the user."},"identity_number":{"type":["string","null"],"maxLength":255,"description":"National identity number. Optional."},"email":{"type":"string","format":"email","description":"Email address. Normalized to lowercase."},"phone_number":{"type":["string","null"],"maxLength":255,"description":"Phone number. Optional."},"status":{"type":["string","null"],"maxLength":255,"description":"User status from the provider. Optional."},"verification_status":{"type":["string","null"],"maxLength":255,"description":"Identity verification status. Optional."},"verification_date":{"type":["string","null"],"maxLength":255,"description":"Date when identity was verified. Optional."},"gender":{"type":["string","null"],"maxLength":255,"description":"Gender. Optional."},"email_verified":{"type":["boolean","null"],"description":"Whether the email address has been verified by the provider."},"birth_date":{"type":["string","null"],"maxLength":255,"description":"Date of birth. Optional."}}}}}}
```

## The AkifastNotificationTransaction object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"AkifastNotificationTransaction":{"type":"object","required":["installment_count","interest_amount","total_paid_amount","payment_system_raw_response","shipping_option_key","is_threed"],"properties":{"installment_count":{"type":"integer","minimum":1,"maximum":12,"description":"Number of instalments selected for the payment."},"interest_rate":{"type":"number","format":"float","minimum":0,"maximum":100,"description":"Interest rate applied (as a percentage). Optional."},"interest_amount":{"type":"number","format":"float","description":"Total interest amount charged."},"total_paid_amount":{"type":"number","format":"float","description":"Total amount charged to the customer including interest."},"payment_system_raw_response":{"type":"string","description":"Raw response payload from the payment processor, as a string."},"shipping_option_key":{"type":"integer","description":"Primary key of the shipping option selected during the provider flow. Must be one of the available shipping options for the pre-order."},"is_threed":{"type":"boolean","description":"Whether the transaction was secured with 3D Secure authentication."}}}}}}
```

## The AkifastCardInfo object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"AkifastCardInfo":{"type":"object","required":["bin"],"properties":{"bin":{"type":"string","minLength":6,"maxLength":8,"description":"Bank Identification Number (BIN) of the card used for payment. Must be 6 or 8 digits."}}}}}}
```

## The AkifastOrderNotificationPageInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"AkifastOrderNotificationPageInput":{"type":"object","description":"Payment notification payload sent by the checkout provider after the\ncustomer completes payment on the hosted form. Used to create the order,\nset shipping, link the customer account, and finalize the pre-order.","required":["agreements","conversation_id","payment_info","transaction","card_info","akifast_user","is_successful"],"properties":{"agreements":{"type":"boolean","enum":[true],"description":"Customer's acceptance of the agreement. Must be `true`; any other value returns a validation error."},"is_successful":{"type":"boolean","enum":[true],"description":"Payment success flag from the provider. Must be `true`; any other value returns a validation error."},"conversation_id":{"type":"string","description":"Provider conversation identifier. Must match `pre_order.checkout_provider_data['conversation_id']`."},"payment_info":{"type":"object","required":["payment_system_code"],"properties":{"payment_system_code":{"type":"string","description":"Slug of the POS (payment system) used for the transaction. Must match an existing POS record."}}},"transaction":{"$ref":"#/components/schemas/AkifastNotificationTransaction"},"card_info":{"type":"array","items":{"$ref":"#/components/schemas/AkifastCardInfo"},"description":"List of card details. At minimum the first item's BIN is used."},"shipping_address":{"$ref":"#/components/schemas/AkifastAddressField"},"billing_address":{"$ref":"#/components/schemas/AkifastAddressField"},"akifast_user":{"$ref":"#/components/schemas/AkifastUserField"}}},"AkifastNotificationTransaction":{"type":"object","required":["installment_count","interest_amount","total_paid_amount","payment_system_raw_response","shipping_option_key","is_threed"],"properties":{"installment_count":{"type":"integer","minimum":1,"maximum":12,"description":"Number of instalments selected for the payment."},"interest_rate":{"type":"number","format":"float","minimum":0,"maximum":100,"description":"Interest rate applied (as a percentage). Optional."},"interest_amount":{"type":"number","format":"float","description":"Total interest amount charged."},"total_paid_amount":{"type":"number","format":"float","description":"Total amount charged to the customer including interest."},"payment_system_raw_response":{"type":"string","description":"Raw response payload from the payment processor, as a string."},"shipping_option_key":{"type":"integer","description":"Primary key of the shipping option selected during the provider flow. Must be one of the available shipping options for the pre-order."},"is_threed":{"type":"boolean","description":"Whether the transaction was secured with 3D Secure authentication."}}},"AkifastCardInfo":{"type":"object","required":["bin"],"properties":{"bin":{"type":"string","minLength":6,"maxLength":8,"description":"Bank Identification Number (BIN) of the card used for payment. Must be 6 or 8 digits."}}},"AkifastAddressField":{"type":"object","required":["name","surname","phone_number","address_title","line","hash_data","country","city","town","district"],"properties":{"name":{"type":"string","description":"First name of the address holder."},"surname":{"type":"string","description":"Last name of the address holder."},"phone_number":{"type":"string","description":"Phone number of the address holder."},"postal_code":{"type":["string","null"],"description":"Postal code. Optional."},"address_title":{"type":"string","description":"Short label for the address (e.g. \"Home\", \"Work\")."},"tax_no":{"type":["string","null"],"description":"Tax number. Required for corporate addresses."},"tax_office":{"type":["string","null"],"description":"Tax office name. Required for corporate addresses."},"company_name":{"type":["string","null"],"description":"Company name. Required for corporate addresses."},"line":{"type":"string","description":"Full street address line."},"address_type":{"type":["string","null"],"description":"Address type (`\"individual\"` or `\"corporate\"`). Mapped to lowercase internally."},"notes":{"type":["string","null"],"description":"Optional delivery notes."},"hash_data":{"type":"string","description":"Provider-generated hash string used to verify address integrity. Stored in the address `extra_field` as `remote_hash`."},"country":{"$ref":"#/components/schemas/AkifastAddressSubField"},"city":{"$ref":"#/components/schemas/AkifastAddressSubField"},"town":{"$ref":"#/components/schemas/AkifastAddressSubField"},"district":{"$ref":"#/components/schemas/AkifastAddressSubField"}}},"AkifastAddressSubField":{"type":"object","required":["name","code"],"properties":{"name":{"type":"string","description":"Human-readable name of the geographic unit."},"code":{"type":"string","description":"Provider-specific code for the geographic unit."}}},"AkifastUserField":{"type":"object","required":["akinon_user_id","name","surname","email"],"properties":{"akinon_user_id":{"type":"string","maxLength":255,"description":"Provider-assigned unique user identifier."},"name":{"type":"string","maxLength":255,"description":"First name of the user."},"surname":{"type":"string","maxLength":255,"description":"Last name of the user."},"identity_number":{"type":["string","null"],"maxLength":255,"description":"National identity number. Optional."},"email":{"type":"string","format":"email","description":"Email address. Normalized to lowercase."},"phone_number":{"type":["string","null"],"maxLength":255,"description":"Phone number. Optional."},"status":{"type":["string","null"],"maxLength":255,"description":"User status from the provider. Optional."},"verification_status":{"type":["string","null"],"maxLength":255,"description":"Identity verification status. Optional."},"verification_date":{"type":["string","null"],"maxLength":255,"description":"Date when identity was verified. Optional."},"gender":{"type":["string","null"],"maxLength":255,"description":"Gender. Optional."},"email_verified":{"type":["boolean","null"],"description":"Whether the email address has been verified by the provider."},"birth_date":{"type":["string","null"],"maxLength":255,"description":"Date of birth. Optional."}}}}}}
```

## The SavedCardSelectionInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"SavedCardSelectionInput":{"type":"object","description":"Standard saved card selection input, used by all payment gateways except\nIyzico. For the Iyzico gateway, use `IyzicoSavedCardSelectionInput` instead.","required":["card"],"properties":{"card":{"type":"string","description":"Token of the saved card to use for payment. Must correspond to an active\nsaved card linked to the current user and the active payment gateway."}}}}}}
```

## The SavedCardInstallmentSelectionInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"SavedCardInstallmentSelectionInput":{"type":"object","required":["installment"],"properties":{"installment":{"type":"integer","description":"Primary key (`pk`) of the installment plan to select. Must reference an\nactive installment linked to the card resolved in `SavedCardSelectionPage`."}}}}}}
```

## The SavedCardConfirmationInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"SavedCardConfirmationInput":{"type":"object","description":"Standard saved card payment confirmation input, used by all payment gateways\nexcept Iyzico and PayU RO. For gateway-specific fields, use\n`IyzicoSavedCardConfirmationInput` (Iyzico gateway) or\n`PayURoSavedCardConfirmationInput` (PayU RO gateway).","required":["agreement"],"properties":{"agreement":{"type":"boolean","enum":[true],"description":"Acceptance of the terms and conditions. Must be `true` to proceed."}}}}}}
```

## The SavedCardThreeDSecureInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"SavedCardThreeDSecureInput":{"type":"object","description":"3D Secure callback payload posted by the bank after the customer completes\nauthentication. The required fields depend on the active payment gateway.\n\nAny GET query string parameters appended by the bank redirect are merged into\nthis payload before validation.\n\n- **Garanti Switch**: `success`, `approved`, `returnCode`, `reasonCode`,\n  `hashedData`, `requestId`, `message`, and `txnAmount` are required. `txnAmount`\n  is sent by the bank in cents and divided by 100 before being validated against\n  the order total. The full payload is verified against a gateway-generated hash.\n- **PayU RO**: `success` (must be `true`). An optional `body` JSON payload from\n  the bank may also be submitted.\n- **Tap**: `success` (must be `true`), `tap_id`, `oid`, and `price` are required.","properties":{"success":{"type":"boolean","enum":[true],"description":"Payment success flag returned by the gateway. Must be `true`; any other\nvalue is treated as a failed transaction."},"approved":{"type":"boolean","enum":[true],"description":"(Garanti Switch only) Authorisation approval flag. Must be `true`."},"returnCode":{"type":"string","enum":["00"],"description":"(Garanti Switch only) Bank return code. Must be `\"00\"` for a successful\ntransaction."},"reasonCode":{"type":"string","enum":["00"],"description":"(Garanti Switch only) Bank reason code. Must be `\"00\"` for a successful\ntransaction."},"hashedData":{"type":"string","description":"(Garanti Switch only) Gateway-generated hash. Validated server-side before\nthe payment is accepted."},"requestId":{"type":"string","description":"(Garanti Switch only) Gateway request identifier."},"message":{"type":"string","description":"(Garanti Switch only) Human-readable status message from the gateway."},"txnAmount":{"type":"string","format":"decimal","description":"(Garanti Switch only) Transaction amount posted by the bank in cents\n(e.g. `\"15000\"` for 150.00). Divided by 100 before being validated against\nthe order total. A mismatch returns a validation error."},"body":{"type":"object","nullable":true,"description":"(PayU RO only) Optional JSON payload posted by the bank alongside the\n3D Secure callback."},"tap_id":{"type":"string","maxLength":256,"description":"(Tap only) Tap charge identifier returned by the gateway."},"oid":{"type":"string","maxLength":256,"description":"(Tap only) Order identifier echoed back by the Tap gateway."},"price":{"type":"string","description":"(Tap only) Transaction amount returned by the Tap gateway."}}}}}}
```

## The PayLaterCompleteInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"PayLaterCompleteInput":{"type":"object","required":["agreement"],"properties":{"agreement":{"type":"boolean","enum":[true],"description":"Acceptance of the terms and conditions. Must be `true` to place the\npay-later order."}}}}}}
```

## The IyzicoSavedCardSelectionInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"IyzicoSavedCardSelectionInput":{"type":"object","description":"Iyzico gateway input for saved card selection. The card is identified by the\ntoken provided by the Iyzico UCS hosted card selection interface. The `card`\nfield is optional because card identity is managed internally by the Iyzico\nwidget. For all other gateways, use `SavedCardSelectionInput` instead.","properties":{"card":{"type":"string","maxLength":512,"description":"Token provided by the Iyzico UCS hosted card selection interface."}}}}}}
```

## The IyzicoSavedCardConfirmationInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"IyzicoSavedCardConfirmationInput":{"type":"object","description":"Iyzico gateway input for saved card payment confirmation. Either `card_token`\n(to charge an existing Iyzico card) or `card_number` with full card details\n(to pay with a new card) must be provided. `register_consumer_card` is always\nrequired. For all other gateways, use `SavedCardConfirmationInput` or\n`PayURoSavedCardConfirmationInput` instead.","required":["agreement","register_consumer_card"],"properties":{"agreement":{"type":"boolean","enum":[true],"description":"Acceptance of the terms and conditions. Must be `true` to proceed."},"card_token":{"type":"string","maxLength":128,"description":"Token of the existing Iyzico card to charge. Either `card_token` or\n`card_number` must be provided."},"consumer_token":{"type":"string","maxLength":128,"description":"Consumer token returned by the Iyzico UCS widget."},"register_consumer_card":{"type":"boolean","description":"Whether to register the card for future use through the Iyzico consumer\ncard programme."},"card_number":{"type":"string","description":"Full card number when paying with a new card instead of an existing Iyzico\ncard token. Either `card_number` or `card_token` must be provided."},"card_holder":{"type":"string","description":"Card holder name. Defaults to \"No Name\" if omitted."},"card_month":{"type":"string","description":"Card expiry month (2-digit, e.g. \"06\")."},"card_year":{"type":"string","minLength":4,"maxLength":4,"description":"Card expiry year (4-digit, e.g. \"2028\")."},"card_cvv":{"type":"string","description":"Card CVV/CVC security code."},"card_name":{"type":"string","nullable":true,"description":"Optional card nickname or programme name."}}}}}}
```

## The PayURoSavedCardConfirmationInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"PayURoSavedCardConfirmationInput":{"type":"object","description":"PayU RO gateway input for saved card payment confirmation. Extends the standard\nagreement with optional browser device fingerprint fields used during\n3D Secure authentication. `browser_header` and `browser_user_agent` are\npopulated automatically from request headers and must not be submitted by the\nclient. For all other gateways, use `SavedCardConfirmationInput` instead.","required":["agreement"],"properties":{"agreement":{"type":"boolean","enum":[true],"description":"Acceptance of the terms and conditions. Must be `true` to proceed."},"browser_java_enabled":{"type":"boolean","nullable":true,"description":"Whether Java is enabled in the browser. Used for 3D Secure device\nfingerprinting."},"browser_language":{"type":"string","nullable":true,"description":"Browser language code (e.g. \"en-US\"). Used for 3D Secure device\nfingerprinting."},"browser_color_depth":{"type":"string","nullable":true,"description":"Browser screen colour depth. Used for 3D Secure device fingerprinting."},"browser_screen_height":{"type":"string","nullable":true,"description":"Browser screen height in pixels. Used for 3D Secure device fingerprinting."},"browser_screen_width":{"type":"string","nullable":true,"description":"Browser screen width in pixels. Used for 3D Secure device fingerprinting."},"browser_time_zone":{"type":"string","nullable":true,"description":"Browser time zone offset. Used for 3D Secure device fingerprinting."}}}}}}
```

## The SavedCardSelectionPageContext object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"SavedCardSelectionPageContext":{"type":"object","description":"Page context returned by `SavedCardSelectionPage` for all payment gateways\nexcept Iyzico. Contains the list of saved cards available for the current user\nand active payment gateway. For the Iyzico gateway, see\n`IyzicoSavedCardSelectionPageContext`.","properties":{"cards":{"type":"array","description":"Saved cards on file for the current user and active payment gateway.","items":{"type":"object","properties":{"name":{"type":"string","description":"Display name of the saved card."},"masked_card_number":{"type":"string","description":"Masked card number for display purposes."},"token":{"type":"string","description":"Selection token used to identify this card when submitting\n`SavedCardSelectionInput`."}}}}}}}}}
```

## The IyzicoSavedCardSelectionPageContext object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"IyzicoSavedCardSelectionPageContext":{"type":"object","description":"Page context returned by `SavedCardSelectionPage` when the active payment\ngateway is Iyzico. Instead of a card list, the response contains the data\nrequired to initialise the Iyzico UCS hosted card selection widget. For all\nother gateways, see `SavedCardSelectionPageContext`.","properties":{"ucs":{"type":"object","description":"Initialisation data for the Iyzico UCS hosted card selection widget.","properties":{"maskedGsmNumber":{"type":"string","description":"Customer's phone number in masked form, displayed by the widget."},"ucsToken":{"type":"string","description":"Session token used to initialise the UCS widget."},"script":{"type":"string","description":"URL of the UCS JavaScript widget to load on the page."},"scriptType":{"type":"string","description":"Value for the `type` attribute of the script tag."}}}}}}}}
```

## The WalletSelectionInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"WalletSelectionInput":{"type":"object","description":"Input for `WalletSelectionPage` for all wallet methods except Apple Pay.\nOnly the terms-and-conditions agreement is required. For Apple Pay use\n`ApplePaySelectionInput` instead.","required":["agreement"],"properties":{"agreement":{"type":"boolean","enum":[true],"description":"Acceptance of the terms and conditions. Must be `true` to proceed."}}}}}}
```

## The ApplePaySelectionInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"ApplePaySelectionInput":{"type":"object","description":"Input for `WalletSelectionPage` when the active wallet method is Apple Pay.\nIn addition to the agreement, the `validationURL` returned by the browser\nPayment Request API must be provided so the server can perform merchant\nvalidation with Apple's servers.","required":["agreement","validationURL"],"properties":{"agreement":{"type":"boolean","enum":[true],"description":"Acceptance of the terms and conditions. Must be `true` to proceed."},"validationURL":{"type":"string","maxLength":4096,"description":"Merchant validation URL returned by the browser `ApplePaySession.onvalidatemerchant`\nevent. The server uses this URL to call Apple's merchant validation endpoint and\nobtain a merchant session object."}}}}}}
```

## The ApplePayPaymentInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"ApplePayPaymentInput":{"type":"object","description":"Input for `WalletPaymentPage` when the active wallet method is Apple Pay.\n`payment_token` must be the JSON object returned by the browser\n`ApplePaySession.onpaymentauthorized` event.","required":["payment_token"],"properties":{"payment_token":{"type":"object","description":"Payment token object from the Apple Pay `onpaymentauthorized` event. Contains\n`data` (encrypted payment data), `header` (encryption metadata), `signature`,\nand `version`.","properties":{"data":{"type":"string","description":"Base64-encoded encrypted payment data."},"header":{"type":"object","description":"Encryption metadata for the payment token.","properties":{"applicationData":{"type":"string","nullable":true},"ephemeralPublicKey":{"type":"string","nullable":true},"wrappedKey":{"type":"string","nullable":true},"publicKeyHash":{"type":"string","nullable":true},"transactionId":{"type":"string","nullable":true}}},"signature":{"type":"string","description":"PKCS"},"version":{"type":"string","description":"Encryption protocol version (e.g. `\"EC_v1\"`)."}}},"device_info":{"type":"object","nullable":true,"description":"Optional device information for fraud detection.","properties":{"session_id":{"type":"string","nullable":true},"device_type":{"type":"string","nullable":true}}},"merchant_defined_info":{"type":"array","nullable":true,"description":"Optional merchant-defined key/value pairs.","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}}}},"merchant_defined_secure_info":{"type":"object","nullable":true,"description":"Optional secure merchant-defined data fields.","properties":{"secure1":{"type":"string"},"secure2":{"type":"string"},"secure3":{"type":"string"},"secure4":{"type":"string"}}}}}}}}
```

## The GooglePayPaymentInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"GooglePayPaymentInput":{"type":"object","description":"Input for `WalletPaymentPage` when the active wallet method is Google Pay.\n`payment_token` must be the JSON object from the Google Pay\n`PaymentData.paymentMethodData.tokenizationData.token` field.","required":["payment_token"],"properties":{"payment_token":{"type":"object","description":"Payment token object returned by the Google Pay API. Typically contains\n`signature`, `protocolVersion`, and `signedMessage`."}}}}}}
```

## The CybersourceUCPaymentInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"CybersourceUCPaymentInput":{"type":"object","description":"Input for `WalletPaymentPage` when the active wallet method is Cybersource UC.\n`payment_token` is required. Browser fingerprint fields are optional and used\nfor 3-D Secure device profiling. `browser_header` and `browser_user_agent` are\npopulated automatically from request headers and must not be submitted by the client.","required":["payment_token"],"properties":{"payment_token":{"type":"string","description":"Payment token string returned by the Cybersource UC hosted widget."},"browser_java_enabled":{"type":"boolean","nullable":true,"description":"Whether Java is enabled in the browser. Used for 3D Secure device fingerprinting."},"browser_language":{"type":"string","nullable":true,"description":"Browser language code (e.g. \"en-US\"). Used for 3D Secure device fingerprinting."},"browser_color_depth":{"type":"string","nullable":true,"description":"Browser screen colour depth. Used for 3D Secure device fingerprinting."},"browser_screen_height":{"type":"string","nullable":true,"description":"Browser screen height in pixels. Used for 3D Secure device fingerprinting."},"browser_screen_width":{"type":"string","nullable":true,"description":"Browser screen width in pixels. Used for 3D Secure device fingerprinting."},"browser_time_zone":{"type":"string","nullable":true,"description":"Browser time zone offset. Used for 3D Secure device fingerprinting."}}}}}}
```

## The WalletCompleteInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"WalletCompleteInput":{"type":"object","description":"Input for `WalletCompletePage`. Required only when the active payment gateway\nis `checkout_flow` (Checkout.com); for all other wallet gateways the page\naccepts an empty submission.","properties":{"success":{"type":"boolean","enum":[true],"description":"Must be `true` for checkout.com gateway. Indicates the payment was authorised\non the provider side."},"oid":{"type":"string","maxLength":64,"description":"Checkout.com payment identifier. Required for the `checkout_flow` gateway."},"cko_payment_id":{"type":"string","description":"Optional Checkout.com payment reference returned by the provider."}}}}}}
```

## The WalletRedirectCompleteInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"WalletRedirectCompleteInput":{"type":"object","description":"Input for `WalletRedirectCompletePage`. The `success` flag is required and\nis supplied by the payment provider as a query parameter in the callback URL.\nA value of `true` finalises the order; `false` rolls the flow back to\n`WalletPaymentPage`.","required":["success"],"properties":{"success":{"type":"boolean","description":"`true` if the payment provider reports a successful transaction;\n`false` if it reports a failure."}}}}}}
```

## The B2BInput object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"B2BInput":{"type":"object","description":"Input for `B2BPage`. Accepts the terms and conditions agreement to finalise\nthe B2B (Business-to-Business) order.","required":["agreement"],"properties":{"agreement":{"type":"boolean","enum":[true],"description":"Acceptance of the terms and conditions. Must be `true` to place the B2B order."}}}}}}
```

## The ThankYouPageContext object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"ThankYouPageContext":{"type":"object","description":"Context returned by `ThankYouPage` after an order has been successfully finalised.\nProvides all data the frontend needs to display the order confirmation and redirect\nthe user to the order success page.","properties":{"redirect_url":{"type":"string","description":"Signed URL pointing to the order success page. The order number is embedded as\na signed token to prevent tampering."},"order_id":{"type":"integer","description":"Primary key (database ID) of the created order."},"order_number":{"type":"string","description":"Human-readable order number."},"new_user":{"type":"boolean","description":"`true` when the order was placed by a user who does not yet have a usable\npassword â€” i.e., an account was created automatically during guest checkout.\nThe frontend can use this flag to prompt the user to set a password."},"token":{"type":"integer","nullable":true,"description":"Primary key of the DRF authentication token created for the new user, or\n`null` if the user already has an account or is anonymous. Only set when\n`new_user` is `true`."},"campaigns":{"type":"array","description":"List of campaign label strings applied to the order.","items":{"type":"string"}}}}}}}
```

## The WalletSelectionPageContext object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"WalletSelectionPageContext":{"type":"object","description":"Context returned by `WalletSelectionPage`. Contains the payment initialisation\ndata needed by the browser Payment Request API and the identifier for the active\nwallet method.","properties":{"paymentData":{"type":"object","description":"Payment initialisation data provided by the wallet gateway. The structure\nfollows the W3C Payment Request API format.","properties":{"supportedMethods":{"type":"string","description":"Payment method identifier. For Apple Pay this is\n`\"https://apple.com/apple-pay\"`."},"data":{"type":"object","description":"Gateway-specific payment request data (e.g., merchant ID, supported\nnetworks, country code, currency code for Apple Pay)."},"detail":{"type":"object","description":"Additional gateway-specific detail object."}}},"paymentMethod":{"type":"string","description":"Identifier of the active wallet provider. One of `apple_pay`,\n`google_pay`, or `cybersource_uc`.","enum":["apple_pay","google_pay","cybersource_uc"]}}}}}}
```

## The WalletPaymentPageContext object

```json
{"openapi":"3.1.0","info":{"title":"Checkout API","version":"1.0.0"},"components":{"schemas":{"WalletPaymentPageContext":{"type":"object","description":"Context returned by `WalletPaymentPage`. For Apple Pay this contains the\nmerchant session `context_data` needed by the browser Payment Sheet. For\nall other wallet methods the context is an empty object.","properties":{"context_data":{"type":"object","description":"Gateway session data required by the browser Payment Sheet (Apple Pay only).\nThe exact structure is provider-defined; the frontend should pass this object\ndirectly to `ApplePaySession.completeMerchantValidation()`."}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://apidocs.akinon.com/commerce-openapis/checkout/models.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
