# Payment Strategy Related

This document covers all services for payment strategy related checkout to complete any chosen payment option, including the requests and responses associated with these services.

{% hint style="warning" %}
**Authenticated Endpoints**

Accessing authenticated endpoints requires users to establish a session through Session Authentication. To do this:

1. Users must log in using their credentials (e.g., username and password) via a designated authentication endpoint.
2. Upon successful login, the server will generate and return a session cookie to the client.
3. This session cookie must be included in subsequent API requests as part of the headers. The session cookie serves as proof of authentication and ensures secure access to protected resources.
   {% endhint %}

### `POST` Send Funds Transfer Choice

This method is used to notify the funds transfer choice (bank account) selected by the user.

The available bank accounts are listed within the `PaymentOptionSelectionPage` context following the selection of a payment option.

**Path:** `https://{commerce_url}/orders/checkout/?page=FundsTransferChoicePage`

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=FundsTransferChoicePage"

payload = 'bank_account=1'
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>',
  'Content-Type': 'application/x-www-form-urlencoded'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

**Example Response**

```json
{
    "context_list": [
        {
            "page_context": {},
            "page_name": "FundsTransferPage",
            "page_slug": "fundstransferpage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Complete Funds Transfer Payment

This method is used to complete order with FundsTransfer payment type.

**Path:** `https://{commerce_url}/orders/checkout/?page=FundsTransferPage`

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=FundsTransferPage"

payload = 'agreement=true'
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>',
  'Content-Type': 'application/x-www-form-urlencoded'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

**Example Response**

```json
{
    "context_list": [
        {
            "page_context": {
                "redirect_url": "/orders/completed/IjcwMjExMjMyMTA5MTci:1mRByT:tTgDsJbIKXyxJZyIZwHIBqtShvw/",
                "order_id": 303,
                "new_user": false,
                "token": "138ddd19a0436166354cccbacb4cbb0473104193",
                "campaigns": []
            },
            "page_name": "ThankYouPage",
            "page_slug": "thankyoupage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Complete Loyalty Money Payment

This method is used to complete order with LoyaltyMoney payment type.

**Path:** `https://{commerce_url}/orders/checkout/?page=LoyaltyMoneyPage`

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=LoyaltyMoneyPage"

payload = 'agreement=true'
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>',
  'Content-Type': 'application/x-www-form-urlencoded'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

**Example Response**

```json
{
    "context_list": [
        {
            "page_context": {
                "redirect_url": "/orders/completed/IjcwMjExMjMyMTA5MTci:1mRByT:tTgDsJbIKXyxJZyIZwHIBqtShvw/",
                "order_id": 303,
                "new_user": false,
                "token": "138ddd19a0436166354cccbacb4cbb0473104193",
                "campaigns": []
            },
            "page_name": "ThankYouPage",
            "page_slug": "thankyoupage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Complete Pay Later Payment

This method is used to complete order with PayLater payment type.

**Path:** `https://{commerce_url}/orders/checkout/?page=PayLaterCompletePage`

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=PayLaterCompletePage"

payload = 'agreement=true'
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>',
  'Content-Type': 'application/x-www-form-urlencoded'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

**Example Response**

```json
{
    "context_list": [
        {
            "page_context": {
                "redirect_url": "/orders/completed/IjcwMjExMjMyMTA5MTci:1mRByT:tTgDsJbIKXyxJZyIZwHIBqtShvw/",
                "order_id": 303,
                "new_user": false,
                "token": "138ddd19a0436166354cccbacb4cbb0473104193",
                "campaigns": []
            },
            "page_name": "ThankYouPage",
            "page_slug": "thankyoupage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Set Pay on Delivery Payment Choice

This method is used to set payment choice for PayOnDelivery payment type.

**Path:** `https://{commerce_url}/orders/checkout/?page=PayOnDeliveryPaymentChoicePage`

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=PayOnDeliveryPaymentChoicePage"

payload = 'payment_choice=cash'
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>',
  'Content-Type': 'application/x-www-form-urlencoded'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

**Example Response**

```json
{
    "context_list": [
        {
            "page_context": {},
            "page_name": "PayOnDeliveryPage",
            "page_slug": "payondeliverypage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Complete Pay on Delivery Payment

This method is used to complete order with PayOnDelivery payment type.

**Path:** `https://{commerce_url}/orders/checkout/?page=PayOnDeliveryPage`

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=PayOnDeliveryPage"

payload = 'agreement=true'
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>',
  'Content-Type': 'application/x-www-form-urlencoded'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

**Example Response**

```json
{
    "context_list": [
        {
            "page_context": {
                "redirect_url": "/orders/completed/IjcwMjExMjMyMTA5MTci:1mRByT:tTgDsJbIKXyxJZyIZwHIBqtShvw/",
                "order_id": 303,
                "new_user": false,
                "token": "138ddd19a0436166354cccbacb4cbb0473104193",
                "campaigns": []
            },
            "page_name": "ThankYouPage",
            "page_slug": "thankyoupage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Start Redirection Payment

This method is used to start redirection to 3rd party payment service.

**Path:** `https://{commerce_url}/orders/checkout/?page=RedirectionPaymentSelectedPage`

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=RedirectionPaymentSelectedPage"

payload = 'agreement=true'
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>',
  'Content-Type': 'application/x-www-form-urlencoded'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

**Example Response**

```json
{
    "context_list": [
        {
            "page_context": {
                "redirect_url": "https://3rd-party-payment.com/pay/XASiso-daaskA12-1"
            },
            "page_name": "RedirectionPageCompletePage",
            "page_slug": "redirectionpagecompletepage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Complete Redirection Payment

This method is used by 3rd party payment services in order to complete order.

**Path:** `https://{commerce_url}/orders/checkout/?page=RedirectionPageCompletePage`

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=RedirectionPageCompletePage"

payload = {}
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

**Example Response**

```json
{
    "context_list": [
        {
            "page_context": {
                "redirect_url": "/orders/completed/IjcwMjExMjMyMTA5MTci:1mRByT:tTgDsJbIKXyxJZyIZwHIBqtShvw/",
                "order_id": 303,
                "new_user": false,
                "token": "138ddd19a0436166354cccbacb4cbb0473104193",
                "campaigns": []
            },
            "page_name": "ThankYouPage",
            "page_slug": "thankyoupage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Set Credit Payment Option on Credit Payment Type

This method is used to set credit payment option for Credit payment type.

The available Credit Payment options are listed within the `PaymentOptionSelectionPage` context following the selection of a payment option.

**Path:** `https://{commerce_url}/orders/checkout/?page=CreditPaymentSelectionPage`

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=CreditPaymentSelectionPage"

payload = 'credit_payment_option=1'
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>',
  'Content-Type': 'application/x-www-form-urlencoded'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

**Example Response**

```json
{
    "context_list": [
        {
            "page_context": {},
            "page_name": "CreditPaymentConfirmationPage",
            "page_slug": "creditpaymentconfirmationpage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Start Redirection on Credit Payment

This method is used to start redirection process on credit payment option for Credit payment type.

After the completion on the third-party application, user is redirected to the next page, which is called `CreditPaymentCompletePage`.

**Path:** `https://{commerce_url}/orders/checkout/?page=CreditPaymentConfirmationPage`

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=CreditPaymentConfirmationPage"

payload = 'agreement=true'
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>',
  'Content-Type': 'application/x-www-form-urlencoded'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

**Example Response**

```json
{
    "context_list": [
        {
            "page_context": {},
            "page_name": "CreditPaymentConfirmationPage",
            "page_slug": "creditpaymentconfirmationpage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Complete Credit Payment Payment

This method is used by 3rd party payment services in order to complete order.

**Path:** `https://{commerce_url}/orders/checkout/?page=CreditPaymentCompletePage`

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=CreditPaymentCompletePage"

payload = {}
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

**Example Response**

```json
{
    "context_list": [
        {
            "page_context": {
                "redirect_url": "/orders/completed/IjcwMjExMjMyMTA5MTci:1mRByT:tTgDsJbIKXyxJZyIZwHIBqtShvw/",
                "order_id": 303,
                "new_user": false,
                "token": "138ddd19a0436166354cccbacb4cbb0473104193",
                "campaigns": []
            },
            "page_name": "ThankYouPage",
            "page_slug": "thankyoupage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Start Cash Register Payment

This method is used to start Cash Register Payment in stores with Akinon Instore application in order to generate barcode which will be used on payment process.

If the payment option configuration includes a setting called `is_installment_active`, the next page will be `CashRegisterInstallmentSelectionPage`; otherwise, it will be `CashRegisterCompletePage`.

**Path:** `https://{commerce_url}/orders/checkout/?page=CashRegisterPage`

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=CashRegisterPage"

payload = {}
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

**Example Response**

**Response from** `CashRegisterInstallmentSelectionPage`

```json
{
    "context_list": [
        {
            "page_context": {
                "cards": [
                    {
                        "card_payment_type": "credit",
                        "installments": [
                            {
                                "pk": 1,
                                "installment_count": 1,
                                "label": "Advance",
                                "price_with_accrued_interest": 100,
                                "monthly_price_with_accrued_interest": 100
                            },
                            {
                                "pk": 2,
                                "installment_count": 3,
                                "label": "3 Installments",
                                "price_with_accrued_interest": 105,
                                "monthly_price_with_accrued_interest": 105
                            },
                        ],
                        "bank": {
                            "pk": 1,
                            "name": "Bank",
                            "slug": "bank",
                            "logo": "https://cdn-mgsm.akinon.net/card_types/2017/01/25/56dd552c-c769-4b3f-86f6-1f340bafa3c0.jpg"
                        }
                    }
                ]
            },
            "page_name": "CashRegisterInstallmentSelectionPage",
            "page_slug": "cashregisterinstallmentselectionpage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

***

**Response from** `CashRegisterCompletePage`

The client needs to generate an image from the `barcode` field, which is a base64 encoded string. The term `number` refers to the order number. Additionally, the client can utilize the `seconds` field to check the order's completion by using it as a request frequency.

```json
{
    "context_list": [
        {
            "page_context": {
                "barcode": "iVBoAAAANSUhEUgAAAV4AAAEYCAIAAACbSAk8AAAI00lEQVR4nO3bXWiWdQPH8f....",
                "number": 9922111123321,
                "seconds": 5
            },
            "page_name": "CashRegisterCompletePage",
            "page_slug": "cashregistercompletepage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Set Installment Option on Cash Register Payment

This method is used to set installment option on Cash Register Payment.

**Path:** `https://{commerce_url}/orders/checkout/?page=CashRegisterInstallmentSelectionPage`

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=CashRegisterInstallmentSelectionPage"

payload = 'installment=1'
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>',
  'Content-Type': 'application/x-www-form-urlencoded'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

**Example Response**

```json
{
    "context_list": [
        {
            "page_context": {},
            "page_name": "CashRegisterCompletePage",
            "page_slug": "cashregistercompletepage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Complete Cash Register Payment

This method is used to complete Cash Register Payment.

**Path:** `https://{commerce_url}/orders/checkout/?page=CashRegisterCompletePage`

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=CashRegisterCompletePage"

payload = {}
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

**Example Response**

```json
{
    "context_list": [
        {
            "page_context": {
                "redirect_url": "/orders/completed/IjcwMjExMjMyMTA5MTci:1mRByT:tTgDsJbIKXyxJZyIZwHIBqtShvw/",
                "order_id": 303,
                "new_user": false,
                "token": "138ddd19a0436166354cccbacb4cbb0473104193",
                "campaigns": []
            },
            "page_name": "ThankYouPage",
            "page_slug": "thankyoupage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Start BKM Express Payment Type

This method is used to start BKM Express payment type. The client opens a popup using the BKM Express JS Client Library, utilizing the data in the page context provided below.

**Path:** `https://{commerce_url}/orders/checkout/?page=BexSelectionPage`

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=BexSelectionPage"

payload = {}
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

**Example Response**

```json
{
    "context_list": [
        {
            "page_context": {
                "path": "https://api.bkmexpress.com.tr/v1/merchant/path/ticket?type=payment",
                "token": "ASDXX123123kaSDJAA",
                "transaction_id": "5b03cc8a2902ff2e3e7a8706cd3c033a"
            },
            "page_name": "BexBinNumberPage",
            "page_slug": "bexbinnumberpage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Set Bin Number on BKM Express Payment Type

This method is used to set `bin_number` for BKM Express Payment Type.

**Path:** `https://{commerce_url}/orders/checkout/?page=BexBinNumberPage`

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=BexBinNumberPage"

payload = 'bin_number=665544'
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>',
  'Content-Type': 'application/x-www-form-urlencoded'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

**Example Response**

```json
{
    "context_list": [
        {
            "page_context": {
                "installments": [
                    {
                        "pk": 1,
                        "installment_count": 1,
                        "label": "Advance",
                        "price_with_accrued_interest": 100,
                        "monthly_price_with_accrued_interest": 100
                    },
                    {
                        "pk": 2,
                        "installment_count": 3,
                        "label": "3 Installments",
                        "price_with_accrued_interest": 105,
                        "monthly_price_with_accrued_interest": 105
                    },
                    
                ],
                "card_type": {
                    "name": "Card Finans",
                    "slug": "card-finans",
                    "logo": "https://cdn-mgsm.akinon.net/card_types/2017/01/25/56dd552c-c769-4b3f-86f6-1f340bafa3c0.jpg"
                },
                "installment_messages": []
            },
            "page_name": "BexInstallmentSelectionPage",
            "page_slug": "bexinstallmentselectionpage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Set Installment Option on BKM Express Payment Type

This method is used to set an installment option for BKM Express Payment Type.

**Path:** `https://{commerce_url}/orders/checkout/?page=BexInstallmentSelectionPage`

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=BexInstallmentSelectionPage"

payload = 'installment=3'
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>',
  'Content-Type': 'application/x-www-form-urlencoded'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

**Example Response**

```json
{
    "context_list": [
        {
            "page_context": {},
            "page_name": "BexNoncePage",
            "page_slug": "bexnoncepage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Bex Nonce Page on BKM Express Payment Type

This method is used by BKM Express client.

**Path:** `https://{commerce_url}/orders/checkout/?page=BexNoncePage`

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=BexNoncePage"

payload = 'order_id=123123asdasd&transaction_id=asdasdasdasdas&data=%7B%22status%22%3A%20%22ok%22%2C%22paymentPurchased%22%3A%20true%7D'
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>',
  'Content-Type': 'application/x-www-form-urlencoded'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

**Example Response**

```json
{
    "context_list": [
        {
            "page_context": {},
            "page_name": "BexCompletePage",
            "page_slug": "bexcompletepage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Complete BKM Express Payment Type

This method is used to Complete BKM Express Payment Type.

**Path:** `https://{commerce_url}/orders/checkout/?page=BexCompletePage`

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=BexCompletePage"

payload = {}
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

**Example Response**

```json
{
    "context_list": [
        {
            "page_context": {
                "redirect_url": "/orders/completed/IjcwMjExMjMyMTA5MTci:1mRByT:tTgDsJbIKXyxJZyIZwHIBqtShvw/",
                "order_id": 303,
                "new_user": false,
                "token": "138ddd19a0436166354cccbacb4cbb0473104193",
                "campaigns": []
            },
            "page_name": "ThankYouPage",
            "page_slug": "thankyoupage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Start Garanti Pay Payment

This method is used to start Garanti Pay payment process.

**Path:** `https://{commerce_url}/orders/checkout/?page=GPaySelectionPage`

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=GPaySelectionPage"

payload = {}
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

**Example Response**

```json
{
    "context_list": [
        {
            "page_context": {},
            "page_name": "GPayRedirectPage",
            "page_slug": "gpayredirectpage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Start Redirection on Garanti Pay Payment

This method is used to start redirection process on Garanti Pay payment type. The client needs to utilize the URL provided in the page context below to redirect to the Garanti Pay payment service page.

**Path:** `https://{commerce_url}/orders/checkout/?page=GPayRedirectPage`

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=GPayRedirectPage"

payload = {}
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

**Example Response**

```json
{
    "context_list": [
        {
            "page_context": {
                "redirect_url": "https://akinon-shop.com/orders/garanti-pay-redirect/"
            },
            "page_name": "GPayCompletePage",
            "page_slug": "gpaycompletepage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Complete Garanti Pay Payment

This method is used by the Garanti Pay payment service, a third-party service, to complete the order.

**Path:** `https://{commerce_url}/orders/checkout/?page=GPayCompletePage`

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=GPayCompletePage"

payload = 'gpay=true&success=true&gpinstallment=3'
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>',
  'Content-Type': 'application/x-www-form-urlencoded'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

**Example Response**

```json
{
    "context_list": [
        {
            "page_context": {
                "redirect_url": "/orders/completed/IjcwMjExMjMyMTA5MTci:1mRByT:tTgDsJbIKXyxJZyIZwHIBqtShvw/",
                "order_id": 303,
                "new_user": false,
                "token": "138ddd19a0436166354cccbacb4cbb0473104193",
                "campaigns": []
            },
            "page_name": "ThankYouPage",
            "page_slug": "thankyoupage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Start Confirmation Payment

This method is used to start payment confirmation process.

**Path:** `https://{commerce_url}/orders/checkout/?page=ConfirmationPaymentAgreementCheckPage`

During the checkout step, if the customer selects the "Paycell" payment method, the suitability of the customer's phone number for this payment method is checked. If the customer has not accepted the terms and conditions or if mobile payment is not enabled, the customer's approval is obtained, and the service is activated with their approval.

If the phone number is suitable for this payment method, an "OTP" verification code is sent to the customer via SMS. The customer enters the "OTP" verification code, which is then verified through the gateway. The payment process is finalized on the complete page.

The customer's phone number must always be suitable for this payment method. This page run the `check_agreement` to verify the suitability of the `phone_number` and determines the next page based on the status of the phone number. Additionally, if necessary, the terms and conditions will be displayed on this page.

If there is a configuration setting called `agreement_required` in the payment settings, the next page will be `ConfirmationPaymentAgreementConfirmPage`; otherwise, it will be `ConfirmationPaymentSelectedPage`.

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=ConfirmationPaymentAgreementCheckPage"

payload = {}
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

```

**Example Response**

**Response from** `ConfirmationPaymentAgreementConfirmPage`

```json
{
    "context_list": [
        {
            "page_context": {
                "terms_and_conditions": {...}
            },
            "page_name": "ConfirmationPaymentAgreementConfirmPage",
            "page_slug": "confirmationpaymentagreementconfirmpage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

**Response from** `ConfirmationPaymentSelectedPage`

```json
{
    "context_list": [
        {
            "page_context": {},
            "page_name": "ConfirmationPaymentSelectedPage",
            "page_slug": "confirmationpaymentselectedpage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Agree Terms and Conditions on Confirmation Payment

This method is used to agree terms and conditions for Confirmation Payment.

**Path:** `https://{commerce_url}/orders/checkout/?page=ConfirmationPaymentAgreementConfirmPage`

**Example Request**

```py
{
import requests

url = "https://{commerce_url}/orders/checkout/?page=ConfirmationPaymentAgreementConfirmPage"

payload = 'agreement=true'
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>',
  'Content-Type': 'application/x-www-form-urlencoded'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
}
```

**Example Response**

```json
{
    "context_list": [
        {
            "page_context": {},
            "page_name": "ConfirmationPaymentSelectedPage",
            "page_slug": "confirmationpaymentselectedpage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Continue on Confirmation Payment

This method is used to validate user and user phone for Confirmation Payment option.

**Path:** `https://{commerce_url}/orders/checkout/?page=ConfirmationPaymentSelectedPage`

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=ConfirmationPaymentSelectedPage"

payload = 'agreement=true'
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>',
  'Content-Type': 'application/x-www-form-urlencoded'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

**Example Response**

```json
{
    "context_list": [
        {
            "page_context": {},
            "page_name": "ConfirmationPaymentQueryPage",
            "page_slug": "confirmationpaymentquerypage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Confirmation Query on Confirmation Payment

This method is used to query payment gateway with OTP or token.

**Path:** `https://{commerce_url}/orders/checkout/?page=ConfirmationPaymentQueryPage`

The query page validates the OTP code that is sent via SMS and expects the OTP code as a parameter. However, the required inputs may vary depending on the payment gateway configured for this payment type.

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=ConfirmationPaymentQueryPage"

payload = 'otp=5544'
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>',
  'Content-Type': 'application/x-www-form-urlencoded'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

**Example Response**

```json
{
    "context_list": [
        {
            "page_context": {},
            "page_name": "ConfirmationPaymentCompletePage",
            "page_slug": "confirmationpaymentcompletepage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Complete Confirmation Payment

This method is used to complete Confirmation Payment.

**Path:** `https://{commerce_url}/orders/checkout/?page=ConfirmationPaymentCompletePage`

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=ConfirmationPaymentCompletePage"

payload = {}
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

**Example Response**

```json
{
    "context_list": [
        {
            "page_context": {
                "redirect_url": "/orders/completed/IjcwMjExMjMyMTA5MTci:1mRByT:tTgDsJbIKXyxJZyIZwHIBqtShvw/",
                "order_id": 303,
                "new_user": false,
                "token": "138ddd19a0436166354cccbacb4cbb0473104193",
                "campaigns": []
            },
            "page_name": "ThankYouPage",
            "page_slug": "thankyoupage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `GET` Fetch Saved Cards to Start Saved Cards Payment Type

This method is used to fetch customer's saved cards.

**Path:** `https://{commerce_url}/orders/checkout/?page=ConfirmationPaymentCompletePage`

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=ConfirmationPaymentCompletePage"

payload = {}
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)
```

**Example Response**

```json
{
    "context_list": [
        {
            "page_context": {
                "cards": [
                    "name": "My Visa Card",
                    "masked_card_number": "5555 55** **** **92",
                    "token": "my-visa-card"
                ]
            },
            "page_name": "SavedCardSelectionPage",
            "page_slug": "savedcardselectionpage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Set Saved Card on Saved Card Payment Type

This method is used to set `card` on Saved Card Payment Type.

**Path:** `https://{commerce_url}/orders/checkout/?page=SavedCardSelectionPage`

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=SavedCardSelectionPage"

payload = 'card=my-visa-card'
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>',
  'Content-Type': 'application/x-www-form-urlencoded'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

**Example Response**

```json
{
    "context_list": [
        {
            "page_context": {
                "installments": [
                    {
                        "pk": 1,
                        "installment_count": 1,
                        "label": "Advance",
                        "price_with_accrued_interest": 100,
                        "monthly_price_with_accrued_interest": 100
                    },
                    {
                        "pk": 2,
                        "installment_count": 3,
                        "label": "3 Installments",
                        "price_with_accrued_interest": 105,
                        "monthly_price_with_accrued_interest": 105
                    },
                ],
                "card_type": {
                    "name": "Card Finans",
                    "slug": "card-finans",
                    "logo": "https://cdn-mgsm.akinon.net/card_types/2017/01/25/56dd552c-c769-4b3f-86f6-1f340bafa3c0.jpg"
                },
                "installment_messages": []
            },
            "page_name": "SavedCardInstallmentSelectionPage",
            "page_slug": "savedcardinstallmentselectionpage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Set Installment Option on Saved Card Payment Type

This method is used to set installment option on Saved Card Payment Type.

**Path:** `https://{commerce_url}/orders/checkout/?page=SavedCardInstallmentSelectionPage`

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=SavedCardInstallmentSelectionPage"

payload = 'installment=1'
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>',
  'Content-Type': 'application/x-www-form-urlencoded'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

**Example Response**

```json
{
    "context_list": [
        {
            "page_context": {},
            "page_name": "SavedCardConfirmationPage",
            "page_slug": "savedcardconfirmationpage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Complete Saved Card Payment Type

This method is used to complete Saved Card Payment Type.

**Path:** `https://{commerce_url}/orders/checkout/?page=SavedCardConfirmationPage`

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=SavedCardConfirmationPage"

payload = 'agreement=true'
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>',
  'Content-Type': 'application/x-www-form-urlencoded'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

**Example Response**

```json
{
    "context_list": [
        {
            "page_context": {
                "redirect_url": "/orders/completed/IjcwMjExMjMyMTA5MTci:1mRByT:tTgDsJbIKXyxJZyIZwHIBqtShvw/",
                "order_id": 303,
                "new_user": false,
                "token": "138ddd19a0436166354cccbacb4cbb0473104193",
                "campaigns": []
            },
            "page_name": "ThankYouPage",
            "page_slug": "thankyoupage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Start Masterpass Payment Type

This method is used to start Masterpass Payment Type.

**Path:** `https://{commerce_url}/orders/checkout/?page=MasterpassBinNumberPage`

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=MasterpassBinNumberPage"

payload = 'is_masterpass_stored_card=true&bin_number=665544'
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>',
  'Content-Type': 'application/x-www-form-urlencoded'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

**Example Response**

```json
{
    "context_list": [
        {
            "page_context": {
                "installments": [
                    {
                        "pk": 1,
                        "installment_count": 1,
                        "label": "Advance",
                        "price_with_accrued_interest": 100,
                        "monthly_price_with_accrued_interest": 100
                    },
                    {
                        "pk": 2,
                        "installment_count": 3,
                        "label": "3 Installments",
                        "price_with_accrued_interest": 105,
                        "monthly_price_with_accrued_interest": 105
                    },
                ],
                "card_type": {
                    "name": "Card Finans",
                    "slug": "card-finans",
                    "logo": "https://cdn-mgsm.akinon.net/card_types/2017/01/25/56dd552c-c769-4b3f-86f6-1f340bafa3c0.jpg"
                },
                "installment_messages": []
            },
            "page_name": "MasterpassInstallmentPage",
            "page_slug": "masterpassinstallmentpage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Set Installment on Masterpass Payment Type

This method is used to set installment option on Masterpass Payment Type.

**Path:** `https://{commerce_url}/orders/checkout/?page=MasterpassInstallmentPage`

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=MasterpassInstallmentPage"

payload = 'installment=1'
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>',
  'Content-Type': 'application/x-www-form-urlencoded'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

**Example Response**

```json
{
    "context_list": [
        {
            "page_context": {},
            "page_name": "MasterpassOrderNoPage",
            "page_slug": "masterpassordernopage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Continue on Masterpass Payment Type

This method is used to continue on Masterpass Payment Type.

**Path:** `https://{commerce_url}/orders/checkout/?page=MasterpassOrderNoPage`

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=MasterpassOrderNoPage"

payload = {}
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

**Example Response**

```json
{
    "context_list": [
        {
            "page_context": {
                "msisdn": "...",
                "order_no": "...",
                "token": "...",
                "direct_token": "...",
                "three_d": true,
                "extras": {...},
            },
            "page_name": "MasterpassCompletePage",
            "page_slug": "masterpasscompletepage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Continue on Masterpass Payment Type

This method is used to complete Masterpass Payment Type by Masterpass 3rd party service.

**Path:** `https://{commerce_url}/orders/checkout/?page=MasterpassCompletePage`

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=MasterpassCompletePage"

payload = {}
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

**Example Response**

```json
{
    "context_list": [
        {
            "page_context": {
                "redirect_url": "/orders/completed/IjcwMjExMjMyMTA5MTci:1mRByT:tTgDsJbIKXyxJZyIZwHIBqtShvw/",
                "order_id": 303,
                "new_user": false,
                "token": "138ddd19a0436166354cccbacb4cbb0473104193",
                "campaigns": []
            },
            "page_name": "ThankYouPage",
            "page_slug": "thankyoupage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Start MobilExpress Payment Type

This method is used to fetch saved cards on MobilExpress according to the `clear` parameter.

Based on the configuration, the next page can be one of the following: `MobilExpressCardFoundOtpRequiredPhonePage` or `MobilExpressCardListPage`.

**Path:** `https://{commerce_url}/orders/checkout/?page=MobilExpressSelectionPage`

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=MobilExpressSelectionPage"

payload = 'clear=false'
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>',
  'Content-Type': 'application/x-www-form-urlencoded'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

**Response from** `MobilExpressCardFoundOtpRequiredPhonePage`

```json
{
    "context_list": [
        {
            "page_context": {
                "phone_number": "5554443322"
            },
            "page_name": "MobilExpressCardFoundOtpRequiredPhonePage",
            "page_slug": "mobilexpresscardfoundotprequiredphonepage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

**Response from** `MobilExpressCardListPage`

```json
{
    "context_list": [
        {
            "page_context": {
                "cards": [
                    {
                        "cardId": "6f08f86f-0343-4e9e-a3e2-656a3facf79b",
                        "maskedCardNo": "454671******7894",
                        "alias": "MAXIMUM",
                        "cardBrand": "MAXIMUM",
                        "isDefault": true,
                        "isExpired": false,
                        "showEulaId": false,
                        "isThreeDValidated": true,
                        "isOTPValidated": false,
                        "activationDate": "2020-11-02 22:08:55",
                        "cardType": "Credit"
                    }
                ]
            },
            "page_name": "MobilExpressCardListPage",
            "page_slug": "mobilexpresscardlistpage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Phone Number Validation on MobilExpress Payment Type

This method is used to validate phone number on MobilExpress payment type.

**Path:** `https://{commerce_url}/orders/checkout/?page=MobilExpressCardFoundOtpRequiredPhonePage`

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=MobilExpressCardFoundOtpRequiredPhonePage"

payload = 'phone_number=5XXXXXXXXX'
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>',
  'Content-Type': 'application/x-www-form-urlencoded'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

**Example Response**

```json
{
    "context_list": [
        {
            "page_context": {
                "phone_number": "5554443322"
            },
            "page_name": "MobilExpressCardFoundOtpRequiredOtpPage",
            "page_slug": "mobilexpresscardfoundotprequiredotppage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Continue on Phone Number Validation on MobilExpress Payment Type

This method is used to validate phone number with OTP code on MobilExpress payment type.

**Path:** `https://{commerce_url}/orders/checkout/?page=MobilExpressCardFoundOtpRequiredOtpPage`

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=MobilExpressCardFoundOtpRequiredOtpPage"

payload = 'otp=5544'
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>',
  'Content-Type': 'application/x-www-form-urlencoded'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

**Example Response**

```json
{
    "context_list": [
        {
            "page_context": {
                "cards": [
                    {
                        "cardId": "6f08f86f-0343-4e9e-a3e2-656a3facf79b",
                        "maskedCardNo": "454671******7894",
                        "alias": "MAXIMUM",
                        "cardBrand": "MAXIMUM",
                        "isDefault": true,
                        "isExpired": false,
                        "showEulaId": false,
                        "isThreeDValidated": true,
                        "isOTPValidated": false,
                        "activationDate": "2020-11-02 22:08:55",
                        "cardType": "Credit"
                    }
                ]
            },
            "page_name": "MobilExpressCardListPage",
            "page_slug": "mobilexpresscardlistpage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Set card on MobilExpress Payment Type

This method is used to set card on MobilExpress payment type.

**Path:** `https://{commerce_url}/orders/checkout/?page=MobilExpressCardFoundOtpRequiredOtpPage`

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=MobilExpressCardFoundOtpRequiredOtpPage"

payload = 'card_token=asddasdada&masked_card_number=454671******7894'
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>',
  'Content-Type': 'application/x-www-form-urlencoded'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

**Example Response**

```json
{
    "context_list": [
        {
            "page_context": {
                "installments": [
                    {
                        "pk": 1,
                        "installment_count": 1,
                        "label": "Advance",
                        "price_with_accrued_interest": 100,
                        "monthly_price_with_accrued_interest": 100
                    },
                    {
                        "pk": 2,
                        "installment_count": 3,
                        "label": "3 Installments",
                        "price_with_accrued_interest": 105,
                        "monthly_price_with_accrued_interest": 105
                    },
                    
                ],
                "installment_messages": []
            },
            "page_name": "MobilExpressInstallmentSelectionPage",
            "page_slug": "mobilexpressinstallmentselectionpage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Set Installment Option on MobilExpress Payment Type

This method is used to set Installment Option on MobilExpress payment type.

**Path:** `https://{commerce_url}/orders/checkout/?page=MobilExpressInstallmentSelectionPage`

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=MobilExpressInstallmentSelectionPage"

payload = 'installment=1'
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>',
  'Content-Type': 'application/x-www-form-urlencoded'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

**Example Response**

```json
{
    "context_list": [
        {
            "page_context": {},
            "page_name": "MobilExpressTryPaymentPage",
            "page_slug": "mobilexpresstrypaymentpage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```

### `POST` Complete MobilExpress Payment Type

This method is used to complete MobilExpress payment type.

**Path:** `https://{commerce_url}/orders/checkout/?page=MobilExpressTryPaymentPage`

**Example Request**

```py
import requests

url = "https://{commerce_url}/orders/checkout/?page=MobilExpressTryPaymentPage"

payload = 'agreement=true'
headers = {
  'x-requested-with': 'XMLHttpRequest',
  'Cookie': 'osessionid=<session_id>',
  'Content-Type': 'application/x-www-form-urlencoded'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

**Example Response**

```json
{
    "context_list": [
        {
            "page_context": {
                "redirect_url": "/orders/completed/IjcwMjExMjMyMTA5MTci:1mRByT:tTgDsJbIKXyxJZyIZwHIBqtShvw/",
                "order_id": 303,
                "new_user": false,
                "token": "138ddd19a0436166354cccbacb4cbb0473104193",
                "campaigns": []
            },
            "page_name": "ThankYouPage",
            "page_slug": "thankyoupage"
        }
    ],
    "template_name": "orders/checkout.html",
    "errors": null,
    "pre_order": {...}
}
```
