> For the complete documentation index, see [llms.txt](https://developer.emporix.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.emporix.io/api-references/readme/api-reference-8/models.md).

# Models

## The address.json object

```json
{"openapi":"3.0.0","info":{"title":"Checkout Service","version":"0.0.1"},"components":{"schemas":{"address.json":{"type":"object","description":"Information about the customer's address.","additionalProperties":false,"properties":{"contactName":{"type":"string","minLength":0,"description":"Contact name"},"companyName":{"type":"string","description":"Company name"},"street":{"type":"string","minLength":0,"description":"Street"},"streetNumber":{"type":"string","description":"Street number"},"streetAppendix":{"type":"string","description":"Street appendix"},"zipCode":{"type":"string","maxLength":11,"minLength":0,"description":"zip code"},"city":{"type":"string","minLength":0,"description":"City"},"country":{"type":"string","pattern":"[a-zA-Z]{2}","minLength":2,"maxLength":2,"description":"Country"},"state":{"type":"string","description":"State"},"contactPhone":{"type":"string","description":"Contact phone"},"type":{"type":"string","description":"Type of the address data, for example `BILLING` or `SHIPPING`.","minLength":0},"metadata":{"$ref":"#/components/schemas/mixinMetadata.json"},"mixins":{"type":"object","description":"Mixins object","additionalProperties":true}},"required":["contactName","street","zipCode","city","country","type"]},"mixinMetadata.json":{"type":"object","additionalProperties":false,"description":"","properties":{"mixins":{"type":"object","additionalProperties":true}}}}}}
```

## The customer.json object

```json
{"openapi":"3.0.0","info":{"title":"Checkout Service","version":"0.0.1"},"components":{"schemas":{"customer.json":{"type":"object","description":"Information about the customer.","minProperties":1,"additionalProperties":false,"properties":{"id":{"type":"string","description":"Customers’s unique identifier generated when a customer’s account is created. Required only when checkout is done by a logged in customer."},"name":{"type":"string","description":"Name"},"title":{"type":"string","description":"Title"},"firstName":{"type":"string","description":"First name. Providing either `firstName` or `lastName` is required."},"middleName":{"type":"string","description":"Middle name"},"lastName":{"type":"string","description":"Last name. Providing either `firstName` or `lastName` is required."},"contactPhone":{"type":"string","description":"Contact phone"},"email":{"type":"string","format":"email","minLength":0,"description":"Email"},"company":{"type":"string","description":"Company name"},"metadata":{"$ref":"#/components/schemas/mixinMetadata.json"},"mixins":{"type":"object","description":"Mixins object","additionalProperties":true},"guest":{"type":"boolean","description":"Indicates if the checkout is done by an anonymous customer (if true) or logged in customer (if false). Required only for guest checkout."}},"required":["email"]},"mixinMetadata.json":{"type":"object","additionalProperties":false,"description":"","properties":{"mixins":{"type":"object","additionalProperties":true}}}}}}
```

## The errorMessage object

```json
{"openapi":"3.0.0","info":{"title":"Checkout Service","version":"0.0.1"},"components":{"schemas":{"errorMessage":{"title":"","description":"Schema for API-specific errors.","type":"object","properties":{"status":{"minimum":100,"maximum":599,"description":"Original HTTP error code. It should be consistent with the HTTP response code.","type":"integer"},"type":{"type":"string","pattern":"[a-z]+[a-z_]*[a-z]+","description":"Classification of the error type.\n\n**Note:** The error type should be written in lowercase and include underscores, for example `validation_failure`.","minLength":0},"message":{"description":"Descriptive error message for debugging purposes.","type":"string"},"moreInfo":{"type":"string","description":"More information (such as a link to the documentation) for investigating further and getting support."},"details":{"description":"List of problems causing the error.","type":"array","items":{"title":"errorDetail","description":"Schema for a specific error cause.","type":"object","properties":{"field":{"description":"Element in request data which is causing the error, for example `product.name`.\n\nIf the violation was not field-specific, this field will be empty.","type":"string"},"type":{"type":"string","pattern":"[a-z]+[a-z_]*[a-z]+","description":"Classification of the specific error cause. This value should always be interpreted within the context of the general error type.\n\n**Note:** The error type should be written in lowercase and include underscores, for example `missing_value`.","minLength":0},"message":{"description":"Descriptive error message for debugging purposes.","type":"string"},"moreInfo":{"type":"string","description":"More information (such as a link to the documentation) for investigating further and getting support."}}}}}}}}}
```

## The mixinMetadata.json object

```json
{"openapi":"3.0.0","info":{"title":"Checkout Service","version":"0.0.1"},"components":{"schemas":{"mixinMetadata.json":{"type":"object","additionalProperties":false,"description":"","properties":{"mixins":{"type":"object","additionalProperties":true}}}}}}
```

## The requestCheckout object

```json
{"openapi":"3.0.0","info":{"title":"Checkout Service","version":"0.0.1"},"components":{"schemas":{"requestCheckout":{"type":"object","description":"Schema for triggering a checkout.","additionalProperties":false,"properties":{"cartId":{"type":"string","description":"Customer cart’s unique identifier generated when a cart is created.","minLength":0},"paymentMethods":{"description":"Methods chosen to process the payment for the order.","type":"array","items":{"$ref":"#/components/schemas/requestPaymentMethod.json"}},"currency":{"type":"string","description":"Three-letter currency code, compliant with the ISO 4217 standard."},"shipping":{"$ref":"#/components/schemas/shipping.json"},"addresses":{"type":"array","uniqueItems":true,"minItems":2,"description":"List of addresses associated with the order. There must be at least one address of type `SHIPPING` and one address of type `BILLING`.","items":{"$ref":"#/components/schemas/address.json"}},"customer":{"$ref":"#/components/schemas/customer.json"}},"required":["cartId","customer","shipping","addresses","paymentMethods"]},"requestPaymentMethod.json":{"type":"object","additionalProperties":false,"properties":{"provider":{"type":"string","description":"Payment provider, possible values: \n  * `payment-gateway` - When the Emporix Payment-Gateway service is used to handle a payment. For details about custom attributes that are required for a particular payment mode, check https://developer.emporix.io/api-documentation/api-guides/checkout/payment-gateway. \n  * `custom` - When a custom provider is used. In this case the created order has the `IN_CHECKOUT` status.\n  * `none` - For payment by cash or invoice.\n","minLength":0},"customAttributes":{"type":"object","description":"Additional information about the payment method.","properties":{"token":{"type":"string","description":"Payment token used for the tokenized credit card flows. The field is used when provider type is `payment-gateway`. For more details, check https://developer.emporix.io/api-documentation/api-guides/checkout/payment-gateway"},"modeId":{"type":"string","description":"Identifier of a payment mode. The payment mode has to be configured in the Emporix Payment Gateway service beforehand. For more details, check https://developer.emporix.io/api-documentation/api-guides/checkout/payment-gateway"},"paymentType":{"type":"string","description":"Payment type chosen by the customer, for example `paymentByCredit` or `paymentByDebit`."}}},"method":{"type":"string","description":"Payment method chosen by the customer, for example `invoice` or `cash-on-delivery`."},"amount":{"type":"number","description":"Amount to be paid by the customer."}},"required":["provider"]},"shipping.json":{"type":"object","description":"Information about the shipping.","additionalProperties":false,"properties":{"methodId":{"type":"string","description":"Shipping method's unique identifier.","minLength":0},"zoneId":{"type":"string","description":"Shipping zone identifier.","minLength":0},"methodName":{"type":"string","description":"Shipping method chosen by the customer.","minLength":0},"amount":{"type":"number","minimum":0,"description":"Shipping cost. "},"shippingTaxCode":{"type":"string","description":"The tax code of the shipping"}},"required":["zoneId","amount","methodId","methodName"]},"address.json":{"type":"object","description":"Information about the customer's address.","additionalProperties":false,"properties":{"contactName":{"type":"string","minLength":0,"description":"Contact name"},"companyName":{"type":"string","description":"Company name"},"street":{"type":"string","minLength":0,"description":"Street"},"streetNumber":{"type":"string","description":"Street number"},"streetAppendix":{"type":"string","description":"Street appendix"},"zipCode":{"type":"string","maxLength":11,"minLength":0,"description":"zip code"},"city":{"type":"string","minLength":0,"description":"City"},"country":{"type":"string","pattern":"[a-zA-Z]{2}","minLength":2,"maxLength":2,"description":"Country"},"state":{"type":"string","description":"State"},"contactPhone":{"type":"string","description":"Contact phone"},"type":{"type":"string","description":"Type of the address data, for example `BILLING` or `SHIPPING`.","minLength":0},"metadata":{"$ref":"#/components/schemas/mixinMetadata.json"},"mixins":{"type":"object","description":"Mixins object","additionalProperties":true}},"required":["contactName","street","zipCode","city","country","type"]},"mixinMetadata.json":{"type":"object","additionalProperties":false,"description":"","properties":{"mixins":{"type":"object","additionalProperties":true}}},"customer.json":{"type":"object","description":"Information about the customer.","minProperties":1,"additionalProperties":false,"properties":{"id":{"type":"string","description":"Customers’s unique identifier generated when a customer’s account is created. Required only when checkout is done by a logged in customer."},"name":{"type":"string","description":"Name"},"title":{"type":"string","description":"Title"},"firstName":{"type":"string","description":"First name. Providing either `firstName` or `lastName` is required."},"middleName":{"type":"string","description":"Middle name"},"lastName":{"type":"string","description":"Last name. Providing either `firstName` or `lastName` is required."},"contactPhone":{"type":"string","description":"Contact phone"},"email":{"type":"string","format":"email","minLength":0,"description":"Email"},"company":{"type":"string","description":"Company name"},"metadata":{"$ref":"#/components/schemas/mixinMetadata.json"},"mixins":{"type":"object","description":"Mixins object","additionalProperties":true},"guest":{"type":"boolean","description":"Indicates if the checkout is done by an anonymous customer (if true) or logged in customer (if false). Required only for guest checkout."}},"required":["email"]}}}}
```

## The requestFromQuoteCheckout object

```json
{"openapi":"3.0.0","info":{"title":"Checkout Service","version":"0.0.1"},"components":{"schemas":{"requestFromQuoteCheckout":{"type":"object","description":"Schema for triggering a checkout from the quote.","additionalProperties":false,"properties":{"quoteId":{"type":"string","description":"The identifier of the quote.","minLength":0},"paymentMethods":{"description":"Methods chosen to process the payment for the order.","type":"array","items":{"$ref":"#/components/schemas/requestPaymentMethod.json"}},"deliveryWindowId":{"type":"string","description":"Delivery window's unique identifier."}},"required":["quoteId","paymentMethods"]},"requestPaymentMethod.json":{"type":"object","additionalProperties":false,"properties":{"provider":{"type":"string","description":"Payment provider, possible values: \n  * `payment-gateway` - When the Emporix Payment-Gateway service is used to handle a payment. For details about custom attributes that are required for a particular payment mode, check https://developer.emporix.io/api-documentation/api-guides/checkout/payment-gateway. \n  * `custom` - When a custom provider is used. In this case the created order has the `IN_CHECKOUT` status.\n  * `none` - For payment by cash or invoice.\n","minLength":0},"customAttributes":{"type":"object","description":"Additional information about the payment method.","properties":{"token":{"type":"string","description":"Payment token used for the tokenized credit card flows. The field is used when provider type is `payment-gateway`. For more details, check https://developer.emporix.io/api-documentation/api-guides/checkout/payment-gateway"},"modeId":{"type":"string","description":"Identifier of a payment mode. The payment mode has to be configured in the Emporix Payment Gateway service beforehand. For more details, check https://developer.emporix.io/api-documentation/api-guides/checkout/payment-gateway"},"paymentType":{"type":"string","description":"Payment type chosen by the customer, for example `paymentByCredit` or `paymentByDebit`."}}},"method":{"type":"string","description":"Payment method chosen by the customer, for example `invoice` or `cash-on-delivery`."},"amount":{"type":"number","description":"Amount to be paid by the customer."}},"required":["provider"]}}}}
```

## The requestPaymentMethod.json object

```json
{"openapi":"3.0.0","info":{"title":"Checkout Service","version":"0.0.1"},"components":{"schemas":{"requestPaymentMethod.json":{"type":"object","additionalProperties":false,"properties":{"provider":{"type":"string","description":"Payment provider, possible values: \n  * `payment-gateway` - When the Emporix Payment-Gateway service is used to handle a payment. For details about custom attributes that are required for a particular payment mode, check https://developer.emporix.io/api-documentation/api-guides/checkout/payment-gateway. \n  * `custom` - When a custom provider is used. In this case the created order has the `IN_CHECKOUT` status.\n  * `none` - For payment by cash or invoice.\n","minLength":0},"customAttributes":{"type":"object","description":"Additional information about the payment method.","properties":{"token":{"type":"string","description":"Payment token used for the tokenized credit card flows. The field is used when provider type is `payment-gateway`. For more details, check https://developer.emporix.io/api-documentation/api-guides/checkout/payment-gateway"},"modeId":{"type":"string","description":"Identifier of a payment mode. The payment mode has to be configured in the Emporix Payment Gateway service beforehand. For more details, check https://developer.emporix.io/api-documentation/api-guides/checkout/payment-gateway"},"paymentType":{"type":"string","description":"Payment type chosen by the customer, for example `paymentByCredit` or `paymentByDebit`."}}},"method":{"type":"string","description":"Payment method chosen by the customer, for example `invoice` or `cash-on-delivery`."},"amount":{"type":"number","description":"Amount to be paid by the customer."}},"required":["provider"]}}}}
```

## The responseCheckout object

```json
{"openapi":"3.0.0","info":{"title":"Checkout Service","version":"0.0.1"},"components":{"schemas":{"responseCheckout":{"type":"object","additionalProperties":false,"properties":{"orderId":{"type":"string","description":"Order’s unique identifier generated when a checkout is triggered."},"paymentDetails":{"type":"object","nullable":true},"checkoutId":{"type":"string","nullable":true}}}}}}
```

## The shipping.json object

```json
{"openapi":"3.0.0","info":{"title":"Checkout Service","version":"0.0.1"},"components":{"schemas":{"shipping.json":{"type":"object","description":"Information about the shipping.","additionalProperties":false,"properties":{"methodId":{"type":"string","description":"Shipping method's unique identifier.","minLength":0},"zoneId":{"type":"string","description":"Shipping zone identifier.","minLength":0},"methodName":{"type":"string","description":"Shipping method chosen by the customer.","minLength":0},"amount":{"type":"number","minimum":0,"description":"Shipping cost. "},"shippingTaxCode":{"type":"string","description":"The tax code of the shipping"}},"required":["zoneId","amount","methodId","methodName"]}}}}
```


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://developer.emporix.io/api-references/readme/api-reference-8/models.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
