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

# Create a quote

> OAuth scope: `client_invoice.write`

Creates a single quote for the authenticated organization.




## OpenAPI

````yaml post /v2/quotes
openapi: 3.1.1
info:
  version: v2
  title: Qonto
servers:
  - url: https://thirdparty.qonto.com
    description: Production URL
  - url: https://thirdparty-sandbox.staging.qonto.co
    description: Sandbox URL
security:
  - OAuth:
      - organization.read
      - membership.read
      - membership.write
      - attachment.write
      - internal_transfer.write
      - payment.write
      - supplier_invoice.write
      - supplier_invoice.read
      - client_invoices.read
      - client_invoice.write
      - client.read
      - client.write
      - product.read
      - product.write
      - request_review.write
      - request_review.read
      - team.read
      - team.write
      - request_transfers.write
      - insurance_contract.read
      - insurance_contract.write
      - card.read
      - card.write
      - bank_account.write
      - beneficiary.trust
      - webhook
      - payment_link.write
      - payment_link.read
      - sepa_direct_debit.read
      - sepa_direct_debit.write
      - terminal.read
      - terminal.write
  - SecretKey: []
paths:
  /v2/quotes:
    post:
      tags:
        - Quotes
      summary: Create a quote
      description: |
        OAuth scope: `client_invoice.write`

        Creates a single quote for the authenticated organization.
      operationId: create_quote
      parameters:
        - $ref: '#/components/parameters/X-Qonto-Staging-Token'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QuoteCreatePayload'
      responses:
        '201':
          description: Returns the created quote.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Quote'
        '400':
          $ref: '#/components/responses/400-Bad-request'
        '401':
          $ref: '#/components/responses/401-Unauthorized'
        '403':
          $ref: '#/components/responses/403-Forbidden'
        '422':
          $ref: '#/components/responses/422-Unprocessable-Entity'
        '500':
          $ref: '#/components/responses/500-Internal-Server-Error'
      security:
        - OAuth:
            - client_invoice.write
        - SecretKey: []
components:
  parameters:
    X-Qonto-Staging-Token:
      name: X-Qonto-Staging-Token
      in: header
      description: >-
        Required only for Sandbox API requests; to get one, please sign up to
        the [Developer Portal](https://developers.qonto.com/).
      schema:
        type: string
  schemas:
    QuoteCreatePayload:
      type: object
      required:
        - issue_date
        - expiry_date
        - terms_and_conditions
        - currency
        - client_id
        - items
      properties:
        client_id:
          type: string
          format: uuid
          description: Client ID
        upload_id:
          type: string
          format: uuid
          description: >
            Optional ID of a previously uploaded file to attach to this quote.
            The upload must have been created using the [POST
            /v2/client_invoices/uploads](/api-reference/business-api/expense-management/client-quotes-notes/client-invoices/create-a-client-invoice-upload)
            endpoint.
          example: 4d5418bb-bd0d-4df4-865c-c07afab8bb48
        issue_date:
          type: string
          format: date
          description: Issue date in YYYY-MM-DD format
          example: '2024-01-15'
        expiry_date:
          type: string
          format: date
          description: Expiry date in YYYY-MM-DD format
          example: '2024-02-15'
        number:
          type: string
          description: >-
            Quote's number. Must be unique within the organization and is:

            - **required** if automatic numbering is disabled for the
            authenticated organization (default setting);

            - **optional** if automatic numbering is enabled for the
            authenticated organization.
              However, if provided, it will be used as the quote's number.
          example: Q-2024-001
          maxLength: 40
        terms_and_conditions:
          type: string
          description: Terms and conditions text
          maxLength: 3000
        currency:
          type: string
          description: Currency code (ISO 4217, alpha 3)
          example: EUR
        header:
          type: string
          description: Optional header text for the quote.
          maxLength: 1000
        footer:
          type: string
          description: Optional footer text for the quote.
          maxLength: 1000
        settings:
          type: object
          description: >-
            This collection of properties can be optionally used to temporarily
            override some of the organization's properties for this one invoice.
          properties:
            vat_number:
              type: string
              description: VAT number
            district_court:
              type: string
              description: District court (German specific)
            company_leadership:
              type: string
              description: Company leadership info
            commercial_register_number:
              type: string
              description: Commercial register number
            tax_number:
              type: string
              description: Tax number
        discount:
          type: object
          description: Global discount applied to the quote
          properties:
            type:
              type: string
              enum:
                - percentage
                - amount
              description: Discount type
              example: percentage
            value:
              type: string
              description: Discount value (percentage as decimal or amount)
              example: '10'
        items:
          type: array
          description: Quote's line items
          minItems: 1
          items:
            type: object
            required:
              - title
              - currency
              - quantity
              - unit_price
              - vat_rate
            properties:
              title:
                type: string
                description: Item title
                maxLength: 255
              description:
                type: string
                description: Item description
                maxLength: 1800
              currency:
                type: string
                description: >-
                  Currency code (must match quote currency), ISO 4217 format
                  alpha 3
                example: EUR
              quantity:
                type: string
                description: Quantity (decimal number as string)
                example: '2.5'
              unit:
                type: string
                description: Unit of measurement
                maxLength: 50
                example: hour
              unit_price:
                type: object
                required:
                  - value
                  - currency
                properties:
                  value:
                    type: string
                    description: Unit price value
                    example: '100.00'
                  currency:
                    type: string
                    description: Currency code (ISO 4217, alpha 3)
                    example: EUR
              vat_rate:
                type: string
                description: VAT rate (percentage as decimal, e.g., "20" for 20%)
                example: '20'
              discount:
                type: object
                description: Item-level discount
                properties:
                  type:
                    type: string
                    enum:
                      - percentage
                      - amount
                    description: Discount type
                  value:
                    type: string
                    description: Discount value
                    example: '5'
              vat_exemption_reason:
                type: string
                description: VAT exemption code (Italian specific)
                example: N1
        welfare_fund:
          type: object
          description: Welfare fund details (Italian specific)
          properties:
            type:
              type: string
              description: Welfare fund type
              example: TC22
            rate:
              type: string
              description: Welfare fund rate as decimal
              example: '0.1'
        withholding_tax:
          type: object
          description: Withholding tax details (Italian specific)
          properties:
            reason:
              type: string
              description: Withholding tax reason
              example: RT01
            rate:
              type: string
              description: Withholding tax rate as decimal
              example: '0.1'
            payment_reason:
              type: string
              description: Payment reason code
              example: M1
        stamp_duty_amount:
          type: string
          description: Stamp duty amount (Italian specific)
          example: '0.1'
    Quote:
      type: object
      required:
        - id
        - organization_id
        - number
        - status
        - currency
        - total_amount
        - total_amount_cents
        - vat_amount
        - vat_amount_cents
        - issue_date
        - expiry_date
        - created_at
        - items
        - client
        - organization
      properties:
        id:
          type: string
          format: uuid
          description: Quote ID
          example: 4d5418bb-bd0d-4df4-865c-c07afab8bb48
        organization_id:
          type: string
          format: uuid
          description: Organization ID
          example: 4d5418bb-bd0d-4df4-865c-c07afab8bb48
        attachment_id:
          type: string
          format: uuid
          description: Attachment ID for the quote PDF
          example: 4d5418bb-bd0d-4df4-865c-c07afab8bb48
        number:
          type: string
          description: Quote number
          example: Q-2024-001
        status:
          type: string
          enum:
            - pending_approval
            - approved
            - canceled
          description: Quote status
          example: pending_approval
        quote_url:
          type: string
          format: uri
          description: Public URL to view the quote
          example: https://portal.qonto.com/quotes/00000000-0000-0000-0000-000000000000
        contact_email:
          type: string
          format: email
          description: Organization contact email
          example: contact@qonto.com
        terms_and_conditions:
          type: string
          description: Terms and conditions text
          example: This is an example.
        header:
          type: string
          description: Header text for the quote
          example: This is an example.
        footer:
          type: string
          description: Footer text for the quote
          example: This is an example.
        currency:
          type: string
          description: Currency code (ISO 4217 format, alpha 3)
          example: EUR
        discount:
          type: object
          description: Global discount applied to the quote
          properties:
            type:
              type: string
              enum:
                - percentage
                - amount
              description: Discount type
              example: percentage
            value:
              type: string
              description: Discount value
              example: '10'
            amount:
              type: object
              properties:
                value:
                  type: string
                  example: '20.00'
                currency:
                  type: string
                  example: EUR
            amount_cents:
              type: integer
              format: int64
              example: 2000
        total_amount:
          type: object
          description: Total amount of the quote
          properties:
            value:
              type: string
              example: '240.00'
            currency:
              type: string
              example: EUR
        total_amount_cents:
          type: integer
          format: int64
          description: Total amount in cents
          example: 24000
        vat_amount:
          type: object
          description: VAT amount of the quote
          properties:
            value:
              type: string
              example: '40.00'
            currency:
              type: string
              example: EUR
        vat_amount_cents:
          type: integer
          format: int64
          description: VAT amount in cents
          example: 4000
        issue_date:
          type: string
          format: date
          description: Issue date (YYYY-MM-DD)
          example: '2024-01-15'
        expiry_date:
          type: string
          format: date
          description: Expiry date (YYYY-MM-DD)
          example: '2024-02-15'
        created_at:
          type: string
          format: date-time
          description: Creation timestamp
          example: '2024-01-15T10:30:00Z'
        approved_at:
          type: string
          format: date-time
          description: Approval timestamp (if approved)
          example: '2024-01-16T14:22:00Z'
        canceled_at:
          type: string
          format: date-time
          description: Cancellation timestamp (if canceled)
          example: '2024-01-17T09:15:00Z'
        welfare_fund:
          type: object
          description: Welfare fund details (Italian specific)
          properties:
            type:
              type: string
              example: TC22
            rate:
              type: string
              example: '0.1'
            amount:
              type: string
              example: '10.00'
        withholding_tax:
          type: object
          description: Withholding tax details (Italian specific)
          properties:
            reason:
              type: string
              example: RT01
            rate:
              type: string
              example: '0.1'
            amount:
              type: string
              example: '10.00'
            payment_reason:
              type: string
              example: M1
        stamp_duty_amount:
          type: string
          description: Stamp duty amount (Italian specific)
          example: '0.10'
        items:
          type: array
          description: Quote line items
          items:
            type: object
            properties:
              title:
                type: string
                description: Item title
                example: Consulting services
              description:
                type: string
                description: Item description
                example: Monthly consulting services
              quantity:
                type: string
                description: Quantity
                example: '2.5'
              unit:
                type: string
                description: Unit of measurement
                example: hour
              vat_rate:
                type: string
                description: VAT rate percentage
                example: '20'
              vat_exemption_reason:
                type: string
                description: VAT exemption code (Italian specific)
                example: N1
              unit_price:
                type: object
                properties:
                  value:
                    type: string
                    example: '100.00'
                  currency:
                    type: string
                    example: EUR
              unit_price_cents:
                type: integer
                format: int64
                example: 10000
              total_amount:
                type: object
                properties:
                  value:
                    type: string
                    example: '200.00'
                  currency:
                    type: string
                    example: EUR
              total_amount_cents:
                type: integer
                format: int64
                example: 20000
              total_vat:
                type: object
                properties:
                  value:
                    type: string
                    example: '40.00'
                  currency:
                    type: string
                    example: EUR
              total_vat_cents:
                type: integer
                format: int64
                example: 4000
              subtotal:
                type: object
                properties:
                  value:
                    type: string
                    example: '160.00'
                  currency:
                    type: string
                    example: EUR
              subtotal_cents:
                type: integer
                format: int64
                example: 16000
              discount:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                      - percentage
                      - amount
                  value:
                    type: string
                  amount:
                    type: object
                    properties:
                      value:
                        type: string
                      currency:
                        type: string
                  amount_cents:
                    type: integer
                    format: int64
        client:
          $ref: '#/components/schemas/EmbeddedClient'
        organization:
          $ref: '#/components/schemas/EmbeddedInvoiceOrganization'
        invoice_ids:
          type: array
          description: IDs of invoices created from this quote
          items:
            type: string
            format: uuid
            example: 4d5418bb-bd0d-4df4-865c-c07afab8bb48
    EmbeddedClient:
      type: object
      description: Client that needs to pay the invoice.
      properties:
        id:
          type: string
          format: uuid
          example: 33v418bb-bd0d-4df4-865c-c07afab8bb48
        name:
          type: string
          description: >-
            Note that this property will be returned only if the client is a
            `company`.
          example: McDonald's
        first_name:
          type: string
          description: >-
            Note that this property will be returned only if the client is an
            `individual` or a `freelancer`.
          example: Jane
        last_name:
          type: string
          description: >-
            Note that this property will be returned only if the client is an
            `individual` or a `freelancer`.
          example: Doe
        type:
          type: string
          enum:
            - individual
            - company
            - freelancer
          example: individual
        email:
          type: string
          format: email
          example: client@qonto.com
        vat_number:
          type: string
          example: FR32123456789
        tax_identification_number:
          type: string
          example: '123456789'
        address:
          type: string
          example: 1 place de l’Opéra
        city:
          type: string
          example: Paris
        zip_code:
          type: string
          example: '75009'
        province_code:
          type: string
          description: >-
            Province code of the client. It is required only for Italian
            organizations
        country_code:
          type: string
          example: fr
        recipient_code:
          type: string
          description: >-
            Recipient code, so that the client can receive the e-invoice in his
            SdI portal.
        locale:
          type: string
          example: fr
        billing_address:
          type: object
          description: >-
            Billing address of the client, which will be reflected on the
            invoice. Stores the same data as the root-level fields address
            fields (`address`, `city`, `zip_code`, `province_code`,
            `country_code`).
          allOf:
            - $ref: '#/components/schemas/ClientBillingAddress'
        delivery_address:
          type: object
          description: >-
            Delivery address of the client. Stores the same data as the
            root-level fields address fields (`address`, `city`, `zip_code`,
            `province_code`, `country_code`).
          allOf:
            - $ref: '#/components/schemas/ClientDeliveryAddress'
    EmbeddedInvoiceOrganization:
      type: object
      description: Information of the organization at the time the document was issued.
      properties:
        id:
          type: string
          format: uuid
        legal_name:
          type: string
        legal_number:
          type: string
        legal_country:
          type: string
        address_line_1:
          type: string
        address_line_2:
          type: string
        address_zipcode:
          type: string
        address_city:
          type: string
        address_country:
          type: string
        company_leadership:
          type: string
          example: Jan Mueller
        district_court:
          type: string
          example: Munich
        commercial_register_number:
          type: string
          description: >-
            Is available for French and German organizations and is optional.

            - For French organizations, it represents RCS number (numéro
            Registre du Commerce et des Sociétés) of an incorporated business.
            For example: RCS A 123 123 123.

            - For German organizations, it represents the organization's
            commercial register number (handelsregisternummer). For example: HRB
            123455 B.
          example: HRB12345B
        vat_number:
          type: string
          example: FR123456789
        tax_number:
          type: string
          example: 123/123/1234
        legal_capital_share:
          type: object
          description: >-
            Capital share of an incorporated business. It is optional and is
            only for French organizations.
          properties:
            value:
              type: string
              maxLength: 12
              example: '10000.00'
            currency:
              $ref: '#/components/schemas/Currency'
        transaction_type:
          type: string
          enum:
            - goods
            - services
            - goods_and_services
          description: >-
            Type of transaction performed in the invoice. It is optional and is
            only for French organizations.
          example: goods
        vat_payment_condition:
          type: string
          enum:
            - on_receipts
            - compensated_for_sales
            - exempt
          description: >-
            Business’ VAT elected payment condition (whether TVA is paid on
            receipt or on invoice emission).

            There are two allowed values:

            - `receipt` which stands for “sur les encaissements” in French;

            -  `compensated_for_sales` which stands for “sur les débits” in
            French.

            It is optional and is only for French organizations.
          example: on_receipts
    BadRequestResponseBody:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/BadRequestError'
      required:
        - errors
    UnauthorizedResponseBody:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/UnauthorizedError'
      required:
        - errors
    ForbiddenResponseBody:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ForbiddenError'
      required:
        - errors
    UnprocessableEntityError:
      type: object
      properties:
        status:
          type: string
          example: unprocessable entity
        code:
          type: string
          description: Error code.
          example: missing_key
        detail:
          type: string
          description: Human readable error that explains error `code`.
          example: property is missing
        message:
          type: string
          example: property id is missing
        source:
          type: object
          properties:
            pointer:
              type: string
              description: >-
                The property and the item in an array (if applicable) that
                causes the error.
              example: id
      required:
        - code
        - detail
      x-examples:
        Missing property:
          code: missing_key
          detail: property is missing
          source:
            pointer: /external_transfer/atrribute
    ClientBillingAddress:
      type: object
      description: >-
        Send either a `billing_address` object filled-in or individual
        root-level address fields (`address`, `city`, `zip_code`,
        `province_code`, `country_code`). When both are sent, `billing_address`
        takes precedence and overwrites root-level fields.
      properties:
        street_address:
          type: string
          description: >
            Street address section of the billing address of the client (eg
            street, number, floor, door, etc).
          maxLength: 250
          example: 123 Main Street
        city:
          type: string
          description: City on the billing address of the client
          maxLength: 50
          example: Paris
        zip_code:
          type: string
          description: Zip code on the billing address of the client
          maxLength: 20
          example: '75009'
        province_code:
          type: string
          description: >-
            Province code of the client's billing address. It is required only
            for Italian organizations.
          maxLength: 2
        country_code:
          type: string
          description: Country code on the billing address of the client (ISO 3166 format)
          maxLength: 2
          example: FR
    ClientDeliveryAddress:
      type: object
      properties:
        street_address:
          type: string
          description: >
            Street address section of the delivery address of the client. (eg
            street, number, floor, door, etc)
          maxLength: 250
          example: 123 Main Street
        city:
          type: string
          description: City on the delivery address of the client
          maxLength: 50
          example: Paris
        zip_code:
          type: string
          description: Zip code on the delivery address of the client
          maxLength: 20
          example: '75009'
        province_code:
          type: string
          description: >-
            Province code of the client's delivery address. It is required only
            for Italian organizations
          maxLength: 2
        country_code:
          type: string
          description: Country code on the delivery address of the client (ISO 3166 format)
          maxLength: 2
          example: FR
    Currency:
      type: string
      enum:
        - AED
        - AUD
        - BGN
        - CAD
        - CHF
        - CNY
        - CZK
        - DKK
        - EUR
        - GBP
        - GHS
        - HKD
        - HUF
        - ILS
        - MXN
        - NOK
        - NZD
        - PEN
        - PLN
        - RON
        - RSD
        - SAR
        - SEK
        - SGD
        - TRY
        - USD
        - ZAR
        - ZMW
      default: EUR
      example: EUR
    BadRequestError:
      type: object
      properties:
        code:
          type: string
          description: Error code.
        detail:
          type: string
          description: Human readable error that explains error `code`.
        source:
          type: object
          properties:
            pointer:
              type: string
              description: >-
                The property in the request body that caused the error
                (optional).
            parameter:
              type: string
              description: The query parameter that caused the error (optional).
      required:
        - code
        - detail
      x-examples:
        Authorization field missing:
          code: bad_request
          detail: Authorization field missing
    UnauthorizedError:
      type: object
      properties:
        code:
          type: string
          description: Error code.
        detail:
          type: string
          description: Human readable error that explains error `code`.
      required:
        - code
        - detail
      x-examples:
        Invalid credentials:
          code: unauthorized
          detail: Invalid credentials
    ForbiddenError:
      type: object
      properties:
        code:
          type: string
          description: Error code.
        detail:
          type: string
          description: Human readable error that explains error `code`.
      required:
        - code
        - detail
      x-examples:
        Insufficient permissions:
          code: forbidden
          detail: User does not have sufficient permissions for this action.
  responses:
    400-Bad-request:
      description: Returns a bad request error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/BadRequestResponseBody'
          examples:
            Authorization field missing:
              value:
                errors:
                  - code: bad_request
                    detail: Authorization field missing
    401-Unauthorized:
      description: Returns an unauthorized error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UnauthorizedResponseBody'
          examples:
            authorization_header_missing:
              value:
                errors:
                  - code: authorization_header_missing
                    detail: authorization header missing
            authorization_token_invalid:
              value:
                errors:
                  - code: authorization_token_invalid
                    detail: authorization token invalid
    403-Forbidden:
      description: Returns a forbidden error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ForbiddenResponseBody'
          examples:
            Insufficient permissions:
              value:
                errors:
                  - code: forbidden
                    detail: User does not have sufficient permissions for this action.
    422-Unprocessable-Entity:
      description: Returns an unprocessable entity error.
      content:
        application/json:
          schema:
            type: object
            properties:
              errors:
                type: array
                items:
                  $ref: '#/components/schemas/UnprocessableEntityError'
            x-examples:
              Example 1:
                errors:
                  - code: missing_key
                    detail: reference is missing
                    source:
                      pointer: /external_transfer/reference
    500-Internal-Server-Error:
      description: Returns an internal server error.
  securitySchemes:
    OAuth:
      type: oauth2
      description: >
        Bearer authorization header: `Bearer <token>`, where `<token>` is the
        access token received from the authorization server at the end of the
        [OAuth 2.0
        flow](/get-started/business-api/authentication/oauth/oauth-flow).
      flows:
        authorizationCode:
          refreshUrl: https://oauth.qonto.com/oauth2/token
          authorizationUrl: https://oauth.qonto.com/oauth2/auth
          scopes:
            attachment.read: Retrieve attachments
            attachment.write: Upload attachments and remove attachments from transactions
            bank_account.write: Create, update and close bank accounts
            beneficiary.trust: Trust SEPA beneficiaries
            card.read: Retrieve cards
            card.write: Create or update cards
            client.read: Retrieve clients
            client.write: Create clients
            client_invoice.write: Create client invoices
            client_invoices.read: Retrieve client invoices and credit notes
            einvoicing.read: Retrieve e-invoicing settings
            embed_auth_link.write: Create Embed auth links
            insurance_contract.read: Retrieve insurance contracts
            insurance_contract.write: Create and update insurance contracts
            internal_transfer.write: >-
              Create internal transfers (between 2 Qonto accounts of the same
              organization)
            international_transfer.write: Create international transfers
            membership.read: Retrieve the authentified membership
            membership.write: Invite team members
            offline_access: Retrieve a refresh token
            organization.read: >-
              Retrieve organization, bank accounts, transactions, transfers,
              beneficiaries, labels, memberships, requests & statements
            payment.write: Create external transfers and untrust beneficiaries
            payment_link.read: >-
              Retrieve payment links, their payments, and the available payment
              methods
            payment_link.write: >-
              Connect to the payment links provider, create and deactivate
              payment links
            product.read: Retrieve products
            product.write: Create products
            request_cards.write: Create card requests
            request_review.write: Approve or decline requests
            request_transfers.write: Create transfer requests
            sepa_direct_debit.read: View SEPA Direct Debit payments
            sepa_direct_debit.write: Manage SEPA Direct Debit payments
            supplier_invoice.read: Retrieve supplier invoices
            supplier_invoice.write: Create supplier invoices
            team.read: Retrieve teams
            team.write: Create teams
            terminal.read: View your payment terminals
            terminal.write: Configure your terminals and initiate payments
            webhook: >-
              Receive a notification each time a particular event occurs in
              Qonto
          tokenUrl: https://oauth.qonto.com/oauth2/token
    SecretKey:
      type: apiKey
      description: cf. [API key](/get-started/business-api/authentication/api-key)
      name: Authorization
      in: header

````