Ankorstore OrderPay API

ℹ️ This section describes the API endpoints for managing _OrderPay_ orders and customers. OrderPay allows brands to create and manage orders for their own customers, handle payments, and track order lifecycle — all through the Ankorstore platform. ## 💡 General Concepts - _OrderPay Order_ - An order created by a brand on behalf of one of its customers. Unlike _Internal Orders_ (placed by retailers on the Ankorstore marketplace), OrderPay orders are initiated by the brand itself. This enables brands to sell to customers outside the marketplace while still leveraging Ankorstore's payment processing, invoicing, and optionally, fulfillment services. - _OrderPay Customer_ - A customer entity managed by the brand. Each customer has billing and shipping addresses, contact details, and associated payment methods. Customers must be created before orders can be placed for them. - _Custom Items_ - Additional charges on an order beyond product line items, such as shipping fees, excise duties, or eco-taxes. ## 💡 Working with Customers Before creating an order, you need to register the customer. Use the customer endpoints to create and manage your customer base. ### Creating a Customer A customer requires at minimum: store name, email, first/last name, phone number, and both billing and shipping addresses. ```json5 // POST /api/v1/order-pay/order-pay-customer { "data": { "type": "order-pay-customer", "attributes": { "storeName": "La Boutique Verte", "email": "contact@laboutiqueverte.fr", "firstName": "Marie", "lastName": "Dupont", "company": { "phoneNumber": "+33612345678", "vatNumber": "FR12345678901", "vatExemption": false }, "billingAddress": { "street": "12 Rue de la Paix", "postalCode": "75002", "city": "Paris", "countryCode": "FR" }, "shippingAddress": { "street": "12 Rue de la Paix", "postalCode": "75002", "city": "Paris", "countryCode": "FR" } } } } ``` ### Listing and Filtering Customers You can retrieve your customers with optional filters: ``` [GET] /api/v1/order-pay/order-pay-customer?filter[storeName]=boutique&sort=storeName ``` The response uses page-based pagination with `page[number]` and `page[size]` parameters. ### Including Payment Methods When retrieving a single customer, pass `?include=paymentMethods` to see the customer's stored payment methods. ## 💡 Working with Orders ### Order Lifecycle An OrderPay order goes through the following statuses: stateDiagram-v2 [*] --> created created --> brand_confirmed : Brand confirms created --> cancelled : Brand cancels brand_confirmed --> payment_confirmed : Payment processed brand_confirmed --> cancelled : Brand cancels payment_confirmed --> waiting_shipping waiting_shipping --> shipped shipped --> received received --> invoiced invoiced --> brand_paid brand_paid --> [*] cancelled --> [*] | Status | Description | | --- | --- | | `created` | Order has been created but not yet confirmed by the brand | | `brand_confirmed` | Brand has confirmed the order, payment will be processed | | `payment_confirmed` | Payment has been successfully processed | | `waiting_shipping` | Order is awaiting shipment | | `shipped` | Order has been shipped | | `received` | Customer has received the order | | `invoiced` | Invoice has been generated | | `brand_paid` | Brand has been paid for the order | | `cancelled` | Order has been cancelled | ### Creating an Order To create an order you need the customer UUID and at least one product line item. Each item requires a `productVariantUuid`, a `quantity` (in packs), and pricing in the brand's currency. > ⚠️ The `quantity` field represents the number of **packs**, not individual units. For example, if a product variant is > sold in packs of 6, a quantity of 2 means 12 individual units. ```json5 // POST /api/v1/order-pay/order-pay-orders { "data": { "type": "order-pay-orders", "attributes": { "customerUuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "customReference": "SHOP-12345", // Your reference, shown on customer invoice "items": [ { "productVariantUuid": "d290f1ee-6c54-4b01-90e6-d701748f0851", "quantity": 2, "amounts": { "brandUnitPrice": 1500, // 15.00 EUR in cents "discountRate": 10 // 10% discount } } ], "customItems": [ { "type": "shippingFees", "amount": 800 // 8.00 EUR in cents, excl. VAT } ], "shippingMethod": "custom" // "custom" or "fulfillment" } } } ``` ### Shipping Methods | Method | Description | | --- | --- | | `custom` | You ship the order using your own carrier | | `fulfillment` | The order is fulfilled via AnkorLogistics Fulfillment Centre | When using `fulfillment`, you can optionally provide delivery instructions: - `deliverySchedule` - Customer opening times with day-of-week and time slots - `packingInstruction` - Services like `PALLETISE`, `CUSTOM_BUILD`, or `DOCS` - `deliveryAppointment` - Whether an appointment is required for delivery ### Custom Items Use `customItems` to add charges beyond product line items: | Type | Description | | --- | --- | | `shippingFees` | Shipping charges | | `exciseDuties` | Excise duties (e.g., on alcohol) | | `ecoTax` | Environmental taxes | > ⚠️ The `amounts.shippingFeesAmount` field is **deprecated**. Use `customItems` with type `shippingFees` instead. ### Custom Reference Use the `customReference` field to link orders back to your own system (e.g., a Shopify order ID). This reference appears on the customer's invoice and can be up to 64 characters. ### Confirming and Cancelling Orders After creating an order, you can: - **Confirm** it via `POST /api/v1/order-pay/order-pay-orders/{id}/-actions/confirm` — this triggers payment processing - **Cancel** it via `POST /api/v1/order-pay/order-pay-orders/{id}/-actions/cancel` — with an optional reason ### Including Payment Details When retrieving an order, pass `?include=payment` or `?include=payment.transactions` to see payment status and transaction details. ## 💡 Amounts and Currencies All monetary amounts are represented as **integers in the lowest denomination** of the currency (e.g., cents for EUR). Every order response includes both brand-currency and customer-currency amounts, with formatted string equivalents for display purposes. For example, a line item response includes fields like: - `brandUnitPrice`: `1500` (integer, cents) - `brandUnitPriceFormatted`: `"15.00 EUR"` (string, for display) - `customerUnitPrice`: `1320` (integer, cents in customer currency) - `customerUnitPriceFormatted`: `"13.20 GBP"` (string, for display) VAT is calculated automatically based on the customer's address and product configuration.

OpenAPI Specification

ankorstore-orderpay-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  version: 1.2.2-oas3.1
  title: Ankorstore Stock Tracking and Logistics Applications OrderPay API
  summary: API specification for the Ankorstore Stock Tracking and Logistics system
  description: Ankorstore Stock Tracking and Logistics (ASTRAL) API specification
  contact:
    name: Ankorstore
    url: https://www.ankorstore.com
    email: api@ankorstore.com
  license:
    url: https://creativecommons.org/publicdomain/zero/1.0/
    name: CC0 1.0 Universal
servers:
- url: http://www.ankorlocal.com:8000
  description: Local Development Server
- url: https://www.preprod.ankorstore.com
  description: Staging Environment
- url: https://www.ankorstore.com
  description: Prod Environment
tags:
- name: OrderPay
  description: "ℹ️ This section describes the API endpoints for managing _OrderPay_ orders and customers. OrderPay allows brands\nto create and manage orders for their own customers, handle payments, and track order lifecycle — all through the\nAnkorstore platform.\n\n## \U0001F4A1 General Concepts\n\n- _OrderPay Order_ - An order created by a brand on behalf of one of its customers. Unlike _Internal Orders_ (placed\n  by retailers on the Ankorstore marketplace), OrderPay orders are initiated by the brand itself. This enables brands\n  to sell to customers outside the marketplace while still leveraging Ankorstore's payment processing, invoicing, and\n  optionally, fulfillment services.\n- _OrderPay Customer_ - A customer entity managed by the brand. Each customer has billing and shipping addresses,\n  contact details, and associated payment methods. Customers must be created before orders can be placed for them.\n- _Custom Items_ - Additional charges on an order beyond product line items, such as shipping fees, excise duties,\n  or eco-taxes.\n\n## \U0001F4A1 Working with Customers\n\nBefore creating an order, you need to register the customer. Use the customer endpoints to create and manage your\ncustomer base.\n\n### Creating a Customer\n\nA customer requires at minimum: store name, email, first/last name, phone number, and both billing and shipping\naddresses.\n\n```json5\n// POST /api/v1/order-pay/order-pay-customer\n{\n  \"data\": {\n    \"type\": \"order-pay-customer\",\n    \"attributes\": {\n      \"storeName\": \"La Boutique Verte\",\n      \"email\": \"contact@laboutiqueverte.fr\",\n      \"firstName\": \"Marie\",\n      \"lastName\": \"Dupont\",\n      \"company\": {\n        \"phoneNumber\": \"+33612345678\",\n        \"vatNumber\": \"FR12345678901\",\n        \"vatExemption\": false\n      },\n      \"billingAddress\": {\n        \"street\": \"12 Rue de la Paix\",\n        \"postalCode\": \"75002\",\n        \"city\": \"Paris\",\n        \"countryCode\": \"FR\"\n      },\n      \"shippingAddress\": {\n        \"street\": \"12 Rue de la Paix\",\n        \"postalCode\": \"75002\",\n        \"city\": \"Paris\",\n        \"countryCode\": \"FR\"\n      }\n    }\n  }\n}\n```\n\n### Listing and Filtering Customers\n\nYou can retrieve your customers with optional filters:\n\n```\n[GET] /api/v1/order-pay/order-pay-customer?filter[storeName]=boutique&sort=storeName\n```\n\nThe response uses page-based pagination with `page[number]` and `page[size]` parameters.\n\n### Including Payment Methods\n\nWhen retrieving a single customer, pass `?include=paymentMethods` to see the customer's stored payment methods.\n\n## \U0001F4A1 Working with Orders\n\n### Order Lifecycle\n\nAn OrderPay order goes through the following statuses:\n\n<pre class=\"mermaid\">\nstateDiagram-v2\n    [*] --> created\n    created --> brand_confirmed : Brand confirms\n    created --> cancelled : Brand cancels\n    brand_confirmed --> payment_confirmed : Payment processed\n    brand_confirmed --> cancelled : Brand cancels\n    payment_confirmed --> waiting_shipping\n    waiting_shipping --> shipped\n    shipped --> received\n    received --> invoiced\n    invoiced --> brand_paid\n    brand_paid --> [*]\n    cancelled --> [*]\n</pre>\n\n| Status | Description |\n| --- | --- |\n| `created` | Order has been created but not yet confirmed by the brand |\n| `brand_confirmed` | Brand has confirmed the order, payment will be processed |\n| `payment_confirmed` | Payment has been successfully processed |\n| `waiting_shipping` | Order is awaiting shipment |\n| `shipped` | Order has been shipped |\n| `received` | Customer has received the order |\n| `invoiced` | Invoice has been generated |\n| `brand_paid` | Brand has been paid for the order |\n| `cancelled` | Order has been cancelled |\n\n### Creating an Order\n\nTo create an order you need the customer UUID and at least one product line item. Each item requires a\n`productVariantUuid`, a `quantity` (in packs), and pricing in the brand's currency.\n\n> ⚠️ The `quantity` field represents the number of **packs**, not individual units. For example, if a product variant is\n> sold in packs of 6, a quantity of 2 means 12 individual units.\n\n```json5\n// POST /api/v1/order-pay/order-pay-orders\n{\n  \"data\": {\n    \"type\": \"order-pay-orders\",\n    \"attributes\": {\n      \"customerUuid\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\",\n      \"customReference\": \"SHOP-12345\",  // Your reference, shown on customer invoice\n      \"items\": [\n        {\n          \"productVariantUuid\": \"d290f1ee-6c54-4b01-90e6-d701748f0851\",\n          \"quantity\": 2,\n          \"amounts\": {\n            \"brandUnitPrice\": 1500,       // 15.00 EUR in cents\n            \"discountRate\": 10            // 10% discount\n          }\n        }\n      ],\n      \"customItems\": [\n        {\n          \"type\": \"shippingFees\",\n          \"amount\": 800                   // 8.00 EUR in cents, excl. VAT\n        }\n      ],\n      \"shippingMethod\": \"custom\"          // \"custom\" or \"fulfillment\"\n    }\n  }\n}\n```\n\n### Shipping Methods\n\n| Method | Description |\n| --- | --- |\n| `custom` | You ship the order using your own carrier |\n| `fulfillment` | The order is fulfilled via AnkorLogistics Fulfillment Centre |\n\nWhen using `fulfillment`, you can optionally provide delivery instructions:\n\n- `deliverySchedule` - Customer opening times with day-of-week and time slots\n- `packingInstruction` - Services like `PALLETISE`, `CUSTOM_BUILD`, or `DOCS`\n- `deliveryAppointment` - Whether an appointment is required for delivery\n\n### Custom Items\n\nUse `customItems` to add charges beyond product line items:\n\n| Type | Description |\n| --- | --- |\n| `shippingFees` | Shipping charges |\n| `exciseDuties` | Excise duties (e.g., on alcohol) |\n| `ecoTax` | Environmental taxes |\n\n> ⚠️ The `amounts.shippingFeesAmount` field is **deprecated**. Use `customItems` with type `shippingFees` instead.\n\n### Custom Reference\n\nUse the `customReference` field to link orders back to your own system (e.g., a Shopify order ID). This reference\nappears on the customer's invoice and can be up to 64 characters.\n\n### Confirming and Cancelling Orders\n\nAfter creating an order, you can:\n\n- **Confirm** it via `POST /api/v1/order-pay/order-pay-orders/{id}/-actions/confirm` — this triggers payment processing\n- **Cancel** it via `POST /api/v1/order-pay/order-pay-orders/{id}/-actions/cancel` — with an optional reason\n\n### Including Payment Details\n\nWhen retrieving an order, pass `?include=payment` or `?include=payment.transactions` to see payment status and\ntransaction details.\n\n## \U0001F4A1 Amounts and Currencies\n\nAll monetary amounts are represented as **integers in the lowest denomination** of the currency (e.g., cents for EUR).\nEvery order response includes both brand-currency and customer-currency amounts, with formatted string equivalents\nfor display purposes.\n\nFor example, a line item response includes fields like:\n- `brandUnitPrice`: `1500` (integer, cents)\n- `brandUnitPriceFormatted`: `\"15.00 EUR\"` (string, for display)\n- `customerUnitPrice`: `1320` (integer, cents in customer currency)\n- `customerUnitPriceFormatted`: `\"13.20 GBP\"` (string, for display)\n\nVAT is calculated automatically based on the customer's address and product configuration.\n"
paths:
  /api/v1/order-pay/order-pay-customer:
    get:
      operationId: list-order-pay-customer
      summary: List customers
      description: 'Retrieves a list of customers associated with an OrderPay account. The result is paginated. Furthermore a filter can be applied on the result.

        '
      tags:
      - OrderPay
      parameters:
      - name: Accept
        in: header
        description: application/vnd.api+json
        schema:
          type: string
          default: application/vnd.api+json
      - name: filter[storeName]
        in: query
        required: false
        schema:
          type: string
      - name: filter[email]
        in: query
        required: false
        schema:
          type: string
      - name: page[number]
        in: query
        schema:
          type: integer
          default: 1
        description: Page number, starting at 1
      - name: page[size]
        in: query
        schema:
          type: integer
          default: 20
        description: Maximum number of elements per page
      - name: sort
        in: query
        schema:
          type: string
          enum:
          - id
          - storeName
        description: Comma-separated list of attributes to sort by (storeName by default)
        allowEmptyValue: false
      - schema:
          type: string
          enum:
          - paymentMethods
        name: include
        in: query
        description: 'A comma-separated list of resources to include (e.g: paymentMethods)'
      responses:
        '200':
          description: Collection of Customer resources
          content:
            application/vnd.api+json:
              schema:
                type: object
                properties:
                  jsonapi:
                    description: An object describing the server's implementation
                    type: object
                    properties: &id005
                      version:
                        type: string
                      meta:
                        description: Non-standard meta-information that can not be represented as an attribute or relationship.
                        type: object
                        additionalProperties: true
                    additionalProperties: false
                  data:
                    type: array
                    items:
                      title: CustomerResource
                      type: object
                      required:
                      - type
                      - id
                      - attributes
                      properties:
                        type:
                          type: string
                          const: order-pay-customer
                        id:
                          type: string
                          description: '[resource object identifier (uuid)](https://jsonapi.org/format/#document-resource-object-identification)'
                          format: uuid
                        attributes:
                          type: object
                          properties:
                            storeName:
                              type: string
                            email:
                              type: string
                            firstName:
                              type:
                              - string
                              - 'null'
                            lastName:
                              type:
                              - string
                              - 'null'
                            paymentMethods:
                              type: array
                              items:
                                type: object
                                properties:
                                  type:
                                    type: string
                                  email:
                                    type:
                                    - string
                                    - 'null'
                                  name:
                                    type:
                                    - string
                                    - 'null'
                                  last4:
                                    type:
                                    - string
                                    - 'null'
                                    example: '1234'
                                required:
                                - type
                            company:
                              type: object
                              properties:
                                phoneNumber:
                                  type: string
                                phoneCountry:
                                  type: object
                                  properties: &id001
                                    isoCode:
                                      type: string
                                    name:
                                      type: string
                                    callingCode:
                                      type: integer
                                  required: &id002
                                  - isoCode
                                  - name
                                  - callingCode
                                taxNumber:
                                  type:
                                  - string
                                  - 'null'
                                vatNumber:
                                  type:
                                  - string
                                  - 'null'
                                vatExemption:
                                  type: boolean
                              required:
                              - phoneNumber
                              - phoneCountry
                              - taxNumber
                              - vatNumber
                              - vatExemption
                            billingAddress:
                              type: object
                              properties: &id003
                                name:
                                  type: string
                                street:
                                  type: string
                                postalCode:
                                  type: string
                                city:
                                  type: string
                                country:
                                  type: object
                                  properties: *id001
                                  required: *id002
                              required: &id004
                              - name
                              - street
                              - postalCode
                              - city
                              - country
                            shippingAddress:
                              type: object
                              properties: *id003
                              required: *id004
                          required:
                          - storeName
                          - email
                          - firstName
                          - lastName
                          - company
                        relationships:
                          type: object
                          properties:
                            paymentMethods:
                              type: object
                              required:
                              - data
                              properties:
                                data:
                                  description: An array of objects each containing `type` and `id` members for to-many relationships.
                                  type: array
                                  items:
                                    description: Resource identification present in Resource Objects and Resource Identifier Objects.
                                    type: object
                                    required:
                                    - id
                                    - type
                                    properties:
                                      id:
                                        type: string
                                      type:
                                        type: string
                                        default: order-pay-customer-payment-methods
                                      meta:
                                        description: Non-standard meta-information that can not be represented as an attribute or relationship.
                                        type: object
                                        additionalProperties: true
                                  uniqueItems: true
                  meta:
                    type: object
                    additionalProperties: true
                    properties:
                      page:
                        type: object
                        properties:
                          currentPage:
                            type: integer
                          from:
                            type: integer
                          lastPage:
                            type: integer
                          perPage:
                            type: integer
                          to:
                            type: integer
                          total:
                            type: integer
                    required:
                    - page
                required:
                - jsonapi
                - data
                - meta
        '400':
          description: Bad request
          content:
            application/vnd.api+json:
              schema:
                type: object
                additionalProperties: false
                properties: &id006
                  errors:
                    type: array
                    uniqueItems: true
                    items:
                      type: object
                      properties:
                        code:
                          description: An application-specific error code, expressed as a string value.
                          type: string
                        detail:
                          description: A human-readable explanation specific to this occurrence of the problem.
                          type: string
                        status:
                          description: The HTTP status code applicable to this problem, expressed as a string value.
                          type: string
                        title:
                          description: The HTTP status code description applicable to this problem
                          type: string
                        source:
                          type: object
                          description: Optional object pointing towards the problematic field
                          properties:
                            pointer:
                              type: string
                              description: The field key
                        meta:
                          description: Non-standard meta-information that can not be represented as an attribute or relationship.
                          type: object
                          additionalProperties: true
                      additionalProperties: false
                  jsonapi:
                    description: An object describing the server's implementation
                    type: object
                    properties: *id005
                    additionalProperties: false
                required: &id007
                - errors
              example:
                jsonapi:
                  version: '1.0'
                errors:
                - detail: Bad request
                  status: '400'
        '401':
          description: Unauthorized
          content:
            application/vnd.api+json:
              schema:
                type: object
                additionalProperties: false
                properties: *id006
                required: *id007
              example:
                jsonapi:
                  version: '1.0'
                errors:
                - detail: Unauthorized
                  status: '401'
        '403':
          description: '[Forbidden](https://jsonapi.org/format/#crud-creating-responses-403)'
          content:
            application/vnd.api+json:
              schema:
                type: object
                additionalProperties: false
                properties: *id006
                required: *id007
              example:
                jsonapi:
                  version: '1.0'
                errors:
                - detail: Forbidden
                  status: '403'
        '406':
          description: Not Acceptable
          content:
            application/vnd.api+json:
              schema:
                type: object
                additionalProperties: false
                properties: *id006
                required: *id007
              example:
                jsonapi:
                  version: '1.0'
                errors:
                - detail: Not Acceptable
                  status: '406'
        '415':
          description: Unsupported Media Type
          content:
            application/vnd.api+json:
              schema:
                type: object
                additionalProperties: false
                properties: *id006
                required: *id007
              example:
                jsonapi:
                  version: '1.0'
                errors:
                - detail: Unsupported Media Type
                  status: '415'
        '500':
          description: '[Server Error](https://jsonapi.org/format/#errors)'
          content:
            application/vnd.api+json:
              schema:
                type: object
                additionalProperties: false
                properties: *id006
                required: *id007
              example:
                jsonapi:
                  version: '1.0'
                errors:
                - detail: Server Error
                  status: '500'
    post:
      operationId: create-order-pay-customer
      summary: Create a customer
      description: Creates a new OrderPay customer.
      tags:
      - OrderPay
      parameters:
      - name: Accept
        in: header
        description: application/vnd.api+json
        schema:
          type: string
          default: application/vnd.api+json
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              type: object
              properties:
                data:
                  type: object
                  properties:
                    type:
                      type: string
                      const: order-pay-customer
                    attributes:
                      type: object
                      properties:
                        storeName:
                          type: string
                        email:
                          type: string
                        firstName:
                          type: string
                        lastName:
                          type: string
                        company:
                          type: object
                          properties:
                            phoneNumber:
                              type: string
                            taxNumber:
                              type: string
                            vatNumber:
                              type: string
                            vatExemption:
                              type: boolean
                          required:
                          - phoneNumber
                          - vatExemption
                        billingAddress:
                          type: object
                          properties:
                            street:
                              type: string
                            postalCode:
                              type: string
                            city:
                              type: string
                            countryCode:
                              type: string
                              default: FR
                          required:
                          - street
                          - postalCode
                          - city
                        shippingAddress:
                          type: object
                          properties:
                            street:
                              type: string
                            postalCode:
                              type: string
                            city:
                              type: string
                            countryCode:
                              type: string
                              default: FR
                          required:
                          - street
                          - postalCode
                          - city
                      required:
                      - storeName
                      - email
                      - firstName
                      - lastName
                      - company
                      - billingAddress
                      - shippingAddress
                  required:
                  - type
                  - attributes
              required:
              - data
      responses:
        '201':
          description: Single Customer resource
          content:
            application/vnd.api+json:
              schema:
                type: object
                properties:
                  jsonapi:
                    description: An object describing the server's implementation
                    type: object
                    properties: &id012
                      version:
                        type: string
                      meta:
                        description: Non-standard meta-information that can not be represented as an attribute or relationship.
                        type: object
                        additionalProperties: true
                    additionalProperties: false
                  data:
                    title: CustomerResource
                    type: object
                    required:
                    - type
                    - id
                    - attributes
                    properties:
                      type:
                        type: string
                        const: order-pay-customer
                      id:
                        type: string
                        description: '[resource object identifier (uuid)](https://jsonapi.org/format/#document-resource-object-identification)'
                        format: uuid
                      attributes:
                        type: object
                        properties:
                          storeName:
                            type: string
                          email:
                            type: string
                          firstName:
                            type:
                            - string
                            - 'null'
                          lastName:
                            type:
                            - string
                            - 'null'
                          paymentMethods:
                            type: array
                            items:
                              type: object
                              properties:
                                type:
                                  type: string
                                email:
                                  type:
                                  - string
                                  - 'null'
                                name:
                                  type:
                                  - string
                                  - 'null'
                                last4:
                                  type:
                                  - string
                                  - 'null'
                                  example: '1234'
                              required:
                              - type
                          company:
                            type: object
                            properties:
                              phoneNumber:
                                type: string
                              phoneCountry:
                                type: object
                                properties: &id008
                                  isoCode:
                                    type: string
                                  name:
                                    type: string
                                  callingCode:
                                    type: integer
                                required: &id009
                                - isoCode
                                - name
                                - callingCode
                              taxNumber:
                                type:
                                - string
                                - 'null'
                              vatNumber:
                                type:
                                - string
                                - 'null'
                              vatExemption:
                                type: boolean
                            required:
                            - phoneNumber
                            - phoneCountry
                            - taxNumber
                            - vatNumber
                            - vatExemption
                          billingAddress:
                            type: object
                            properties: &id010
                              name:
                                type: string
                              street:
                                type: string
                              postalCode:
                                type: string
                              city:
                                type: string
                              country:
                                type: object
                                properties: *id008
                                required: *id009
                            required: &id011
                            - name
                            - street
                            - postalCode
                            - city
                            - country
                          shippingAddress:
                            type: object
                            properties: *id010
                            required: *id011
                        required:
                        - storeName
                        - email
                        - firstName
                        - lastName
                        - company
                      relationships:
                        type: object
                        properties:
                          paymentMethods:
                            type: object
                            required:
                            - data
                            properties:
                              data:
                                description: An array of objects each containing `type` and `id` members for to-many relationships.
                                type: array
                                items:
                                  description: Resource identification present in Resource Objects and Resource Identifier Objects.
                                  type: object
                                  required:
                                  - id
                                  - type
                                  properties:
                                    id:
                                      type: string
                                    type:
                                      type: string
                                      default: order-pay-customer-payment-methods
                                    meta:
                                      description: Non-standard meta-information that can not be represented as an attribute or relationship.
                 

# --- truncated at 32 KB (304 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ankorstore/refs/heads/main/openapi/ankorstore-orderpay-api-openapi.yml