> For the complete documentation index, see [llms.txt](https://apidocs.akinon.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://apidocs.akinon.com/commerce-openapis/checkout/alternative-payment-methods/submit-cash-register-payment-agreement.md).

# Submit Cash Register Payment Agreement

Submits the cash register payment agreement and records store staff identification. Generates a pre-order number that will be used to track the cash register transaction.

**Required Fields**:

* `agreement`: User must accept terms and conditions (must be `true`)

**Required Headers**: In addition to the standard AJAX header, the following store identification headers are required for all cash register submissions:

* `X-STORE-STAFF-ID`: Local store staff identifier
* `X-STORE-STAFF-EMAIL`: Store staff email address
* `X-STORE-ID`: Local store identifier
* `X-STORE-STAFF-REMOTE-ID`: Remote store staff identifier
* `X-STORE-REMOTE-ID`: Remote store identifier

All five headers must be present. If any header is missing, a `400` validation error is returned indicating which header is required.

**Processing**:

* Generates a unique pre-order number for the transaction
* Records store staff information (`staff_id`, `staff_email`, `store_id`, `local_staff_id`, `local_store_id`) in the pre-order data
* Associates the transaction with the initiating store staff member
* Default fallback values for `staff_id`, `staff_email`, and `store_id` may be configured via the `CASH_REGISTER_DEFAULTS` Django setting. Header values always take precedence and override any defaults.

**Basket Amount Validation**:

* Basket amount must be greater than zero before submitting

**Navigation After Success**:

* If payment option has `is_installment_active: true` in its configuration: routes to `CashRegisterInstallmentSelectionPage`
* Otherwise: routes to `CashRegisterCompletePage`

```json
{"openapi":"3.1.0","info":{"title":"Overview","version":"1.0.0"},"tags":[{"name":"Alternative Payment Methods","description":"# Checkout Alternative Payment Methods\n\nIntegrate Bex (BKM Express), Garanti Pay (GPay), Cash Register, and Confirmation Payment into your checkout. Each method follows a distinct step sequence—use the one that matches your storefront configuration.\n\n**Bex** is a bank consortium payment method. The flow covers BIN lookup, nonce generation, installment selection, and payment completion.\n\n**Garanti Pay (GPay)** redirects customers to an external page for QR-code or link-based payment and returns them upon completion.\n\n**Cash Register** is a point-of-sale method for store staff. It supports installment selection and in-store payment completion.\n\n**Confirmation Payment** lets the customer place an order first and confirm payment later through a separate channel. The flow includes agreement review and a confirmation step.\n\n## Authentication\n\nThese endpoints support both authenticated and anonymous sessions.\n\n- **Authenticated users**: Session cookie (`sessionid`) tracks checkout progress.\n- **Anonymous users**: Guest checkout is available when the `CAN_GUEST_PURCHASE` setting is enabled.\n## Request Format\n\nInclude the following header in all checkout requests:\n\n- **x-requested-with**: `XMLHttpRequest`\n\n## Dynamic Settings\n\nThe following settings are managed at runtime through the admin interface and do not require a server restart.\n\n### CASH_REGISTER_AUTH_CONF\nAuthentication credentials for the cash register payment service. Includes the service username and password.\n\n### INSTALLMENT_FILTERS\nFilters applied during Bex and Cash Register installment selection to restrict the available options.\n\n## Static Settings\n\nThe following settings are configured in the server environment and require a restart to take effect.\n\n### DEFAULT_CARD_SLUG\nFallback card identifier used when a Bex BIN number lookup returns no match. Defaults to `other`.\n\n### GPAY_BIN_NUMBER\nThe identifier used to look up the virtual card for Garanti Pay transactions. Must match a record in the database. Defaults to `GPAY00`.\n\n### CASH_REGISTER_DEFAULTS\nFallback store staff information (staff ID, email address, and store ID) used when the corresponding request headers are absent."}],"servers":[{"description":"Akinon Checkout API","url":"https://{commerce_url}","variables":{"commerce_url":{"default":"sandbox.akinon.com"}}}],"paths":{"/orders/checkout/?page=CashRegisterPage":{"post":{"tags":["Alternative Payment Methods"],"operationId":"submitCashRegisterPage","summary":"Submit Cash Register Payment Agreement","description":"Submits the cash register payment agreement and records store staff identification.\nGenerates a pre-order number that will be used to track the cash register transaction.\n\n**Required Fields**:\n- `agreement`: User must accept terms and conditions (must be `true`)\n\n**Required Headers**:\nIn addition to the standard AJAX header, the following store identification\nheaders are required for all cash register submissions:\n- `X-STORE-STAFF-ID`: Local store staff identifier\n- `X-STORE-STAFF-EMAIL`: Store staff email address\n- `X-STORE-ID`: Local store identifier\n- `X-STORE-STAFF-REMOTE-ID`: Remote store staff identifier\n- `X-STORE-REMOTE-ID`: Remote store identifier\n\nAll five headers must be present. If any header is missing, a `400` validation\nerror is returned indicating which header is required.\n\n**Processing**:\n- Generates a unique pre-order number for the transaction\n- Records store staff information (`staff_id`, `staff_email`, `store_id`,\n  `local_staff_id`, `local_store_id`) in the pre-order data\n- Associates the transaction with the initiating store staff member\n- Default fallback values for `staff_id`, `staff_email`, and `store_id` may be\n  configured via the `CASH_REGISTER_DEFAULTS` Django setting. Header values always\n  take precedence and override any defaults.\n\n**Basket Amount Validation**:\n- Basket amount must be greater than zero before submitting\n\n**Navigation After Success**:\n- If payment option has `is_installment_active: true` in its configuration:\n  routes to `CashRegisterInstallmentSelectionPage`\n- Otherwise: routes to `CashRegisterCompletePage`","parameters":[{"$ref":"#/components/parameters/AjaxRequestHeader"},{"$ref":"#/components/parameters/SessionCookieHeader"},{"name":"X-STORE-STAFF-ID","in":"header","required":true,"schema":{"type":"string"},"description":"Local store staff identifier assigned by the store management system"},{"name":"X-STORE-STAFF-EMAIL","in":"header","required":true,"schema":{"type":"string","format":"email"},"description":"Email address of the store staff member initiating the transaction"},{"name":"X-STORE-ID","in":"header","required":true,"schema":{"type":"string"},"description":"Local store identifier assigned by the store management system"},{"name":"X-STORE-STAFF-REMOTE-ID","in":"header","required":true,"schema":{"type":"string"},"description":"Remote system identifier for the store staff member"},{"name":"X-STORE-REMOTE-ID","in":"header","required":true,"schema":{"type":"string"},"description":"Remote system identifier for the store"}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/CashRegisterInput"}}}},"responses":{"200":{"description":"Cash register payment agreement submitted successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutResponse"}}}},"302":{"description":"Redirect to basket (empty basket)"}}}}},"components":{"parameters":{"AjaxRequestHeader":{"name":"x-requested-with","in":"header","required":true,"description":"Required header for AJAX requests. Must be set to `XMLHttpRequest` for all checkout requests.","schema":{"type":"string","enum":["XMLHttpRequest"],"default":"XMLHttpRequest"}},"SessionCookieHeader":{"name":"Cookie","in":"header","required":false,"description":"Session cookie header (e.g. `sessionid=abc123` or `osessionid=<session_id>`)","schema":{"type":"string"}}},"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]}}},"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","pattern":"^\\d+\\.\\d{2}$"},{"type":"null"}]},"total_amount":{"oneOf":[{"type":"string","pattern":"^\\d+\\.\\d{2}$"},{"type":"null"}]},"unpaid_amount":{"oneOf":[{"type":"string","pattern":"^\\d+\\.\\d{2}$"},{"type":"null"}]},"loyalty_money":{"oneOf":[{"type":"string","pattern":"^\\d+\\.\\d{2}$"},{"type":"null"}]},"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","pattern":"^\\d+\\.\\d{2}$"},{"type":"null"}]},"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"}]}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://apidocs.akinon.com/commerce-openapis/checkout/alternative-payment-methods/submit-cash-register-payment-agreement.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
