> ## Documentation Index
> Fetch the complete documentation index at: https://docs.anny.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Finish an order

> This endpoint is necessary to complete an order. The response is an array of orders, one for each organization involved, since the booked resources may be offered by different organizations.

A booking is not always accepted automatically, depending on the settings of the resource it still has to be confirmed manually by the organization.



## OpenAPI

````yaml /developers/openapi/customer.openapi.json post /api/v1/order
openapi: 3.1.0
info:
  title: customer-api
  version: '1.0'
  contact:
    name: anny GmbH
    url: anny.co
    email: support@anny.co
  description: >-
    The Customer API is the **public booking surface** for end-user facing
    applications. It covers everything a customer can see and do — searching
    availability, placing bookings, managing their account, and more.


    ---


    ## When to use the Customer API


    Use the Customer API when you are **building something your customers
    interact with directly**:


    - **Custom booking flow** — embed a fully branded booking experience inside
    your own app or website instead of redirecting to anny

    - **Headless checkout** — drive the cart, checkout, and payment steps
    entirely from your own frontend

    - **Custom confirmation pages** — retrieve booking and order details after
    checkout to render a tailored confirmation

    - **Opening hours and availability on public pages** — display live schedule
    data on your website with no authentication required

    - **White-label experiences** — build lobby screens, kiosks, or mobile apps
    on top of the Customer API


    Many endpoints work **without any authentication**. For a custom OAuth2
    client to authenticate your own users, contact
    [support@anny.co](mailto:support@anny.co) with your use case.


    ---


    ## Authentication — Optional Auth


    Most Customer API endpoints work without a token. Providing a customer
    bearer token unlocks personal data and additional actions:


    | Auth state | What's accessible |

    |---|---|

    | Anonymous | Availability, public resource/service info, booking lookup by
    number, checkout |

    | Customer token | Own bookings, account data, communities, passes, queue
    tickets |


    ```

    Authorization: Bearer {customer_access_token}

    ```


    To authenticate your own users, you need a custom OAuth2 client — contact
    [support@anny.co](mailto:support@anny.co). See the [Authentication
    guide](/developers/guides/authentication) for the full token flow.


    ---


    ## Customer API vs Admin API


    | Feature | Customer API | Admin API |

    |---|---|---|

    | **Use case** | End-user apps, booking widgets | Server-side automation,
    backend tooling |

    | **Auth** | Optional — many endpoints work without a token | Required — API
    token or OAuth2 |

    | **Identifiers** | Slugs, booking numbers, order numbers | Immutable UUIDs
    and integer IDs |

    | **Access** | Public and customer-owned data only | Full read/write |


    → [Go to the Admin API](/developers/api-reference/admin)


    ---


    ## Resource Identifiers


    The Customer API uses **human-readable identifiers** that appear in booking
    URLs:


    | Entity | Identifier | Example |

    |---|---|---|

    | Resources | Slug | `conference-room-berlin` |

    | Services | Slug | `hourly-desk-booking` |

    | Organizations | Slug | `acme-gmbh` |

    | Bookings | Booking number | `BB123456789` |

    | Orders | Order number | `BO123456789` |


    Use the Admin API if you need immutable internal IDs for storage in external
    systems.


    ---


    ## Starting Points


    | Guide | What it covers |

    |---|---|

    | [Getting Started](/developers) | First steps and quickstart |

    | [JSON:API Conventions](/developers/guides/json-api-conventions) | Request
    and response format |

    | [Authentication](/developers/guides/authentication) | Customer token flow,
    OAuth2, anonymous access |

    | [Availability & Booking Search](/developers/guides/availability) | Search
    open slots, filter by service and resource |

    | [Customer Booking
    Lifecycle](/developers/guides/customer/booking-lifecycle) | View, modify,
    and cancel bookings |

    | [Order & Checkout Flow](/developers/guides/customer/checkout) | Cart,
    checkout steps, payment |

    | [Plans & Subscriptions](/developers/guides/customer/plans-subscriptions) |
    Membership plans and recurring billing |

    | [Communities & Access Control](/developers/guides/customer/communities) |
    Community membership and access gates |

    | [Waitlist](/developers/guides/customer/waitlist) | Join and manage
    waitlists |


    ---


    ## Base URLs


    | Environment | URL |

    |---|---|

    | Production | `https://b.anny.co` |

    | Gov-Cloud | `https://b.anny.eu` |
  termsOfService: https://anny.co/terms-of-use
  x-logo:
    url: https://cdn.anny.co/cms/anny_logo_main_colour_blue_4865e76654.svg
    altText: anny logo
    href: https://anny.co
servers:
  - url: https://b.anny.co
    description: Production
  - url: https://b.anny.eu
    description: Gov-Cloud
security: []
tags:
  - name: Account Passes
  - name: Account Skills
  - name: Addresses
  - name: Availability
  - name: Booking Bundles
  - name: Booking Passes
  - name: Booking Quota Grants
  - name: Bookings
  - name: Communities
  - name: Community Accounts
  - name: Community Invites
  - name: Customer Accounts
  - name: Favorites
  - name: Orders
  - name: Organizations
  - name: Plan Subscriptions
  - name: Properties
  - name: Queues
  - name: Queue Tickets
  - name: Resources
  - name: Services
  - name: Waitlist
paths:
  /api/v1/order:
    post:
      tags:
        - Orders
      summary: Finish an order
      description: >-
        This endpoint is necessary to complete an order. The response is an
        array of orders, one for each organization involved, since the booked
        resources may be offered by different organizations.


        A booking is not always accepted automatically, depending on the
        settings of the resource it still has to be confirmed manually by the
        organization.
      operationId: post-order
      parameters:
        - schema:
            type: string
          in: query
          name: include
      requestBody:
        content:
          application/vnd.api+json:
            schema:
              type: object
              properties:
                accept_terms:
                  type: boolean
                subscribe_newsletter:
                  type: boolean
                agreements:
                  type: object
                  properties:
                    '{organization_slug}':
                      type: boolean
                customer:
                  type: object
                  properties:
                    given_name:
                      type: string
                    family_name:
                      type: string
                    email:
                      type: string
                    mobile:
                      type:
                        - string
                        - 'null'
                    company:
                      type:
                        - string
                        - 'null'
                    birth_date:
                      type:
                        - string
                        - 'null'
                    sex:
                      type:
                        - string
                        - 'null'
                    phone:
                      type:
                        - string
                        - 'null'
                    title:
                      type:
                        - string
                        - 'null'
                custom_fields:
                  type:
                    - object
                    - 'null'
                  properties:
                    '{custom_field_id}':
                      type:
                        - string
                        - number
                        - integer
                        - boolean
                        - 'null'
                bookings_custom_fields:
                  type:
                    - object
                    - 'null'
                  properties:
                    b_{booking_id}:
                      type: object
                      properties:
                        '{custom_field_id}':
                          type:
                            - string
                            - number
                            - integer
                            - boolean
                            - 'null'
                address:
                  type: object
                  description: Independent address payload. Use address resource keys.
                  properties:
                    street_address:
                      type: string
                    address_line_2:
                      type:
                        - string
                        - 'null'
                    zip_code:
                      type: string
                    city:
                      type: string
                    area:
                      type:
                        - string
                        - 'null'
                      description: >-
                        Region/state/province. For US organizations, use state
                        code (for example CA).
                    country_code:
                      type: string
                      maxLength: 2
                meta:
                  type: object
                  properties:
                    timezone:
                      type: string
                    timezone_offset:
                      type: integer
                    remember_customer:
                      type: boolean
                verify_guest_email:
                  type: object
                  properties:
                    state:
                      type: string
                    code:
                      type: string
              required:
                - accept_terms
                - agreements
                - customer
            examples:
              example:
                value:
                  accept_terms: true
                  subscribe_newsletter: false
                  agreements:
                    stadtmitte-buero: true
                  customer:
                    given_name: Max
                    family_name: Mustermann
                    email: max.mustermann@mail.com
                    mobile: '+491701234567'
                    company: null
                    birth_date: null
                    sex: null
                    phone: null
                    title: null
                  custom_fields:
                    6598dc92-e273-4944-8cfa-4430a397891e: Google
                  bookings_custom_fields:
                    b_3711615:
                      55536678-2266-4bb0-99f5-206348244ad2: CTO
                    b_3712360:
                      55536678-2266-4bb0-99f5-206348244ad2: COO
                  address:
                    street_address: Jülicher Straße 68
                    address_line_2: Hinterhaus
                    zip_code: '52070'
                    city: Aachen
                    area: NRW
                    country_code: DE
                  meta:
                    timezone: Europe/Berlin
                    timezone_offset: -120
                    remember_customer: true
                  verify_guest_email:
                    state: fESIyHXND2Yv9SYN
                    code: '166655'
        description: ''
      responses:
        '200':
          description: OK
          content:
            application/vnd.api+json:
              schema:
                type: object
                description: ''
                properties:
                  data:
                    type: array
                    description: Array of orders; for each involved organization one
                    items:
                      $ref: '#/components/schemas/orders.v1'
              examples:
                default:
                  value:
                    meta: []
                    data:
                      - type: orders
                        id: '2010687'
                        attributes:
                          number: BO17499925
                          currency: EUR
                          total: 249
                          net_amount: 209.24
                          tax_amount: 39.76
                          discount_amount: 0
                          status: open
                          access_token: uuzahppQhD7wmJscn8IbwRe9hJb2wq
                          expires_at: null
                          created_at: '2021-09-24T12:18:49+00:00'
                          updated_at: '2021-09-24T12:22:02+00:00'
                        relationships:
                          bookings:
                            data:
                              - type: bookings
                                id: '3713015'
                          customer:
                            data:
                              type: customers
                              id: '408936'
                          last_payment:
                            data: null
                          sub_orders:
                            data: []
                        links:
                          self: https://b.anny.co/api/v1/orders/2010687
                        meta: []
                    included:
                      - type: resources
                        id: '22230'
                        attributes:
                          slug: lc
                          name: Leadership Coach
                          description: null
                          plain_description: ''
                          availabilityMode: null
                          continuous: true
                          color: null
                          auto_accept_bookings: true
                          timezone: Europe/Berlin
                          quantity: 3
                          staggered_quantity: 3
                          max_booking_quantity: 1
                          has_children: true
                          available_from: '2021-08-31T22:00:00+00:00'
                          available_to: null
                        meta:
                          settings:
                            showAvailabilityCalendar: true
                            showAvailabilityCount: true
                            checkout:
                              customerCanPickChildren: true
                              requiresLogin: false
                              requiresLoginReason: null
                              verifyGuestEmail: true
                            checkIn:
                              isEnabled: false
                            selfCheckIn:
                              isEnabled: false
                              disabledUntil: 15
                              geoCheckEnabled: true
                              geoCheckMaxDelta: 997
                              allowedOverrunTime: 60
                          meta_settings:
                            showAvailabilityCalendar: true
                            showAvailabilityCount: true
                            checkout:
                              customerCanPickChildren: true
                              requiresLogin: false
                              requiresLoginReason: null
                              verifyGuestEmail: true
                            checkIn:
                              isEnabled: false
                            selfCheckIn:
                              isEnabled: false
                              disabledUntil: 15
                              geoCheckEnabled: true
                              geoCheckMaxDelta: 997
                              allowedOverrunTime: 60
                          zoom: false
                      - type: images
                        id: '8685'
                        attributes:
                          url: >-
                            https://cdn.booking-buddy.de/public/images/gallery/large/hW89Tc5fjhp0SBpR7PIzkTNOe.jpg
                          copyright: ''
                          width: 1920
                          height: 1080
                          order_index: 0
                          preview_image_base64: >-
                            data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD//gA7Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcgSlBFRyB2ODApLCBxdWFsaXR5ID0gOTAK/9sAQwADAgIDAgIDAwMDBAMDBAUIBQUEBAUKBwcGCAwKDAwLCgsLDQ4SEA0OEQ4LCxAWEBETFBUVFQwPFxgWFBgSFBUU/9sAQwEDBAQFBAUJBQUJFA0LDRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU/8AAEQgACwAUAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A+yrP9pGBfDfirVPsVzIPD7zeYgUZlVTEBs3FRuxL0z26mvnb9mb9tSz8P+GfEumX0N/d3P8AaEurwTXs4l/dSyorRMSQQRuU8A8lz7VtfCu3TWdDstNvgbqxm01zJBKSVfBQjPryAfwFfMvh/wAH6Pa+J/iAkVkqJaqEhUO2EBG4gDPqo/Kvs62VU6jaWh8tgM5dJtVI8yt+p91Xn7Wvw3l1O+S71+e1lilCYQuVcbFO5dp6ZJH4UV+cNvpNrq4ee7jaWXeV3b2Xj8CPWisHl1OOlz1v7YnLVJr5n//Z
                          small_path: >-
                            https://cdn.booking-buddy.de/public/images/gallery/small/hW89Tc5fjhp0SBpR7PIzkTNOe.jpg
                          medium_path: >-
                            https://cdn.booking-buddy.de/public/images/gallery/medium/hW89Tc5fjhp0SBpR7PIzkTNOe.jpg
                          large_path: >-
                            https://cdn.booking-buddy.de/public/images/gallery/large/hW89Tc5fjhp0SBpR7PIzkTNOe.jpg
                          created_at: '2021-09-22T13:37:09+00:00'
                      - type: resources
                        id: '22233'
                        attributes:
                          slug: 6N0sHUrQyfEfDS1ANXNsD05cn3OPxR
                          name: Corina Abt
                          description: null
                          plain_description: ''
                          availabilityMode: null
                          continuous: true
                          color: null
                          auto_accept_bookings: true
                          timezone: Europe/Berlin
                          quantity: 1
                          staggered_quantity: null
                          max_booking_quantity: 1
                          has_children: false
                          available_from: null
                          available_to: null
                        relationships:
                          parent:
                            data:
                              type: resources
                              id: '22230'
                          cover_image:
                            data:
                              type: images
                              id: '8685'
                        meta:
                          settings:
                            showAvailabilityCalendar: true
                            showAvailabilityCount: true
                            checkout:
                              customerCanPickChildren: true
                              requiresLogin: false
                              requiresLoginReason: null
                              verifyGuestEmail: true
                            checkIn:
                              isEnabled: false
                            selfCheckIn:
                              isEnabled: false
                              disabledUntil: 15
                              geoCheckEnabled: true
                              geoCheckMaxDelta: 997
                              allowedOverrunTime: 60
                          meta_settings:
                            showAvailabilityCalendar: true
                            showAvailabilityCount: true
                            checkout:
                              customerCanPickChildren: true
                              requiresLogin: false
                              requiresLoginReason: null
                              verifyGuestEmail: true
                            checkIn:
                              isEnabled: false
                            selfCheckIn:
                              isEnabled: false
                              disabledUntil: 15
                              geoCheckEnabled: true
                              geoCheckMaxDelta: 997
                              allowedOverrunTime: 60
                          zoom: false
                      - type: services
                        id: '2800'
                        attributes:
                          name: 'Coaching: Leadership - Empower Your Employees'
                          slug: jrekqbe74eo9b7bwmursjki3michwt
                          description: null
                          hidden: false
                          is_rental_option: false
                          has_flexible_duration: false
                          auto_duration: false
                          allow_cross_schedule: false
                          requires_booking_description: false
                          requires_address: true
                          requires_mobile: true
                          allow_customer_notes: true
                          allow_more_bookings: true
                          charge_off_schedule: true
                          booking_interval: 240
                          calculation_interval: 240
                          min_duration: 240
                          max_duration: 240
                          uncharged_duration: 0
                          is_full_day: false
                          lead_time: 10080
                          padding_before: 0
                          padding_after: 0
                          advance_booking_period: 31
                          price: 249
                          starting_fee: 0
                          currency: EUR
                          tax_rate: 19
                          default_weight: 1
                          created_at: '2021-09-22T13:39:17+00:00'
                          updated_at: '2021-09-24T11:57:10+00:00'
                          access_code: null
                        meta:
                          resource_list: Leadership Coach
                          min_duration_total: 249
                      - type: bookings
                        id: '3713015'
                        attributes:
                          number: BB88036740
                          status: accepted
                          is_blocker: false
                          start_date: '2021-10-14T07:00:00+00:00'
                          end_date: '2021-10-14T11:00:00+00:00'
                          blocker_start_date: '2021-10-14T07:00:00+00:00'
                          blocker_end_date: '2021-10-14T11:00:00+00:00'
                          description: ''
                          charged_duration: 240
                          weight: 1
                        relationships:
                          booking_add_ons:
                            data: []
                          resource:
                            data:
                              type: resources
                              id: '22233'
                          service:
                            data:
                              type: services
                              id: '2800'
                          sub_bookings:
                            data: []
                          cancellation_policy:
                            data: null
                        meta: []
                      - type: customers
                        id: '408936'
                        attributes:
                          locale: de
                          title: null
                          given_name: Max
                          family_name: Mustermann
                          full_name: Max Mustermann
                          sex: 0
                          birth_date: null
                          email: max.mustermann@mail.com
                          mobile: '+491701234567'
                          phone: null
                          company: null
                          custom_entry_map:
                            6598dc92-e273-4944-8cfa-4430a397891e:
                              value: Google
                              formatted_value: Google
                              label: Wie bist du auf uns aufmerksam geworden?
                          created_at: '2021-09-24T12:01:08+00:00'
components:
  schemas:
    orders.v1:
      $schema: https://json-schema.org/draft/2020-12/schema
      x-version: 1.1.0
      title: Order
      type: object
      description: >-
        An order groups one or more bookings into a single transaction with
        payment and invoicing.
      x-tags:
        - Models
      properties:
        id:
          type: string
        type:
          type: string
          default: orders
        attributes:
          type: object
          properties:
            number:
              type:
                - string
                - 'null'
              description: Order number
            currency:
              type: string
              description: ISO 4217 currency code
            total:
              type: number
              description: Total amount including tax
            modification_total:
              type: number
              description: Total of modifications/adjustments
            net_amount:
              type: number
              description: Net amount before tax
            tax_amount:
              type: number
              description: Tax amount
            discount_amount:
              type: number
              description: Discount amount applied
            system_fee:
              type: number
              description: Platform system fee
              x-visibility: admin
            status:
              type: string
              enum:
                - pending
                - completed
                - canceled
                - expired
              description: Order status
            access_token:
              type:
                - string
                - 'null'
              description: Token for unauthenticated order access
            note:
              type:
                - string
                - 'null'
              description: Internal admin note
              x-visibility: admin
            manually_created:
              type: boolean
              description: Whether order was created manually
              x-visibility: admin
            has_payment:
              type: boolean
              description: Whether payment is associated
              x-visibility: admin
            payment_settings:
              type: object
              description: Payment configuration
              x-visibility: admin
            custom_entry_map:
              type: object
              description: Custom field entries as key-value map
            expires_at:
              type: string
              description: Reservation expiration timestamp
            start_date:
              type: string
              description: Earliest booking start date
            end_date:
              type: string
              description: Latest booking end date
            created_at:
              type: string
              description: Creation timestamp
            updated_at:
              type: string
              description: Last update timestamp
        links:
          $ref: '#/components/schemas/links.v1'
        relationships:
          type: object
          properties:
            bookings:
              type: object
              description: Bookings in this order
              properties:
                data:
                  type: array
                  items:
                    type: object
                    properties:
                      type:
                        type: string
                      id:
                        type: string
                links:
                  $ref: '#/components/schemas/links.v1'
            customer:
              type: object
              description: The order customer
              properties:
                data:
                  type:
                    - object
                    - 'null'
                  properties:
                    type:
                      type: string
                    id:
                      type: string
                links:
                  $ref: '#/components/schemas/links.v1'
            organization:
              type: object
              description: The organization
              properties:
                data:
                  type:
                    - object
                    - 'null'
                  properties:
                    type:
                      type: string
                    id:
                      type: string
                links:
                  $ref: '#/components/schemas/links.v1'
            invoice:
              type: object
              description: The final invoice
              properties:
                data:
                  type:
                    - object
                    - 'null'
                  properties:
                    type:
                      type: string
                    id:
                      type: string
                links:
                  $ref: '#/components/schemas/links.v1'
            invoice_history:
              type: object
              description: Historical invoice
              properties:
                data:
                  type:
                    - object
                    - 'null'
                  properties:
                    type:
                      type: string
                    id:
                      type: string
                links:
                  $ref: '#/components/schemas/links.v1'
            tmp_invoice:
              type: object
              description: Temporary/preview invoice
              properties:
                data:
                  type:
                    - object
                    - 'null'
                  properties:
                    type:
                      type: string
                    id:
                      type: string
                links:
                  $ref: '#/components/schemas/links.v1'
            last_payment:
              type: object
              properties:
                data:
                  type:
                    - object
                    - 'null'
                  properties:
                    type:
                      type: string
                    id:
                      type: string
                links:
                  $ref: '#/components/schemas/links.v1'
              description: Most recent payment
            payments:
              type: object
              description: All payments for this order
              properties:
                data:
                  type: array
                  items:
                    type: object
                    properties:
                      type:
                        type: string
                      id:
                        type: string
                links:
                  $ref: '#/components/schemas/links.v1'
            voucher:
              type: object
              description: Applied voucher
              properties:
                data:
                  type:
                    - object
                    - 'null'
                  properties:
                    type:
                      type: string
                    id:
                      type: string
                links:
                  $ref: '#/components/schemas/links.v1'
            sub_orders:
              type: object
              description: Sub-orders
              properties:
                data:
                  type: array
                  items:
                    type: object
                    properties:
                      type:
                        type: string
                      id:
                        type: string
                links:
                  $ref: '#/components/schemas/links.v1'
            files:
              type: object
              description: Attached files
              properties:
                data:
                  type: array
                  items:
                    type: object
                    properties:
                      type:
                        type: string
                      id:
                        type: string
                links:
                  $ref: '#/components/schemas/links.v1'
            utm_tracker:
              type: object
              description: UTM tracking data
              properties:
                data:
                  type:
                    - object
                    - 'null'
                  properties:
                    type:
                      type: string
                    id:
                      type: string
                links:
                  $ref: '#/components/schemas/links.v1'
    links.v1:
      $schema: https://json-schema.org/draft/2020-12/schema
      x-version: 1.1.0
      title: ResourceLinks
      x-tags:
        - Models
      type: object
      description: JSON:API self-link object
      properties:
        self:
          type: string
          format: uri

````