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

# Attach a payment

> Attachs a payment (financial movement or balance transaction) to a `finalized` and unpaid invoice, updating its payment status and remaining amount.
This endpoint allows you to associate a payment transaction with a specific invoice. Depending on the provided `transaction_data`, it adjusts the invoice's `amount_paid`, `amount_remaining` and updates its payment status.

If `transaction_data` is provided: The transaction is attached to the invoice, and the `amount_remaining` is reduced by the transaction `amount`. If the transaction amount covers the remaining balance, the invoice is marked as fully paid.
If `transaction_data` is not provided: The system assumes the payment is for the full `amount_remaining` of the invoice. The invoice is automatically marked as paid, and the `amount_remaining` is set to zero.




## OpenAPI

````yaml /api-reference/openapi.yaml post /invoices/{id}/attach_payment
openapi: 3.0.1
info:
  title: Nocotax API
  version: v1
servers:
  - url: https://api.nocotax.app/
    variables:
      protocol:
        default: https
      defaultHost:
        default: api.nocotax.app/
security:
  - basic_auth: []
tags:
  - name: Introduction
    x-traitTag: true
    description: >
      The Nocotax API is organized around REST. Our API is designed to have 

      predictable, resource-oriented URLs and to use HTTP response codes to 

      indicate API errors. We use built-in HTTP features, like HTTP verbs, 

      which can be understood by off-the-shelf HTTP clients.


      JSON will be returned in all responses from the API, including errors.


      To make the Nocotax API as secure as possible. Authentication is
      performed 

      through HTTP Basic Auth. Credentials can be found on your Nocotax 

      developers menu, in the "API Keys" section.
  - name: Authentication
    x-traitTag: true
    description: >
      Authentication to the API occurs via HTTP Basic Auth.

      Provide your Account ID as the basic auth username, and the API secret key
      as the password.


      All API requests must be made over HTTPS. Calls made over plain HTTP will
      fail.

      You must authenticate for all requests.


      You can manage your API keys from your account.

      Your API keys carry many privileges, so be sure to keep them secret!
  - name: Errors
    x-traitTag: true
    description: >
      Nocotax uses conventional HTTP response codes to indicate success or
      failure of an API request.


      In general, codes in the 2xx range indicate success,

      codes in the 4xx range indicate an error that resulted from the provided
      information

      (e.g. a required parameter was missing), and codes in the 5xx range
      indicate an error with our servers.


      ```
        HTTP status codes summary
        
        200 OK - Everything worked as expected.
        201 Created - Resource has been successfully created
        202 Accepted - Request has been accepted, but requires asynchronous work to be fully performed

        400 Bad Request - Request failed due to a combination of errors
        401 Unauthorized - No valid API credentials provided.
        402 Payment Required - Your request was in livemode while your account is not activated for live requests yet.
        403 Forbidden - You are not authorized to access the requested item.
        404 Not Found - The requested item doesn't exist.
        406 Unacceptable - Your request format was not supported. Use JSON.
        409 Conflict - The data you submitted is in conflict with existing data.
        422 Unprocessable Entity - Often missing a required parameter.
        429 Too Many Requests - You sent us too many API requests in a row. Please retry later.
        
        500, 502, 503, 504 Server errors - something went wrong on our end.
      ```
  - name: Pagination
    x-traitTag: true
    description: >
      All top-level API resources have support for bulk fetches “list” API
      methods.

      For instance, you can list organization, list invoices.


      We use cursor-based pagination using the parameter `after`.

      Pass `after` parameter at the previous page last object id value to
      determine where to start in the list.


      Reverse pagination is possible as well thanks to the `before` parameter.


      ## Attributes

      <table>
        <tr><th>Attribute</th><th>Type</th></tr>
        <tr><td><strong>limit</strong></td><td>integer, optional A limit on the number of objects to be returned. Must be included between 1 and 100</td>
        <tr><td><strong>after</strong></td><td>string, optional A cursor for use in pagination. `after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `after=obj_foo` in order to fetch the next page of the list.</td>
        <tr><td><strong>before</strong></td><td>string, optional A cursor for use in pagination. `before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `before=obj_bar` in order to fetch the previous page of the list.</td>
      </table>


      ### List Response format

      <table>
        <tr><th>Attribute</th><th>Type</th></tr>
        <tr><td><strong>object</strong></td><td>string, value is `list`</td></tr>
        <tr><td><strong>data</strong></td><td>array, An array containing the actual response elements, paginated by any request parameters.</td></tr>
        <tr><td><strong>has_before</strong></td><td>boolean, Whether or not there are more elements available before this page. If `false`, this page is the beginning of the list.</td></tr>
        <tr><td><strong>has_more</strong></td><td>boolean, Whether or not there are more elements available after this page. If `false`, this page is the end of the list</td></tr>
      </table>
paths:
  /invoices/{id}/attach_payment:
    parameters:
      - name: id
        in: path
        description: id
        required: true
        schema:
          type: string
    post:
      tags:
        - Invoices
      summary: Attach a payment
      description: >
        Attachs a payment (financial movement or balance transaction) to a
        `finalized` and unpaid invoice, updating its payment status and
        remaining amount.

        This endpoint allows you to associate a payment transaction with a
        specific invoice. Depending on the provided `transaction_data`, it
        adjusts the invoice's `amount_paid`, `amount_remaining` and updates its
        payment status.


        If `transaction_data` is provided: The transaction is attached to the
        invoice, and the `amount_remaining` is reduced by the transaction
        `amount`. If the transaction amount covers the remaining balance, the
        invoice is marked as fully paid.

        If `transaction_data` is not provided: The system assumes the payment is
        for the full `amount_remaining` of the invoice. The invoice is
        automatically marked as paid, and the `amount_remaining` is set to zero.
      operationId: InvoiceAttachPayment
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                transaction_data:
                  type: object
                  description: >-
                    If provided, the type of payment that should be attached to
                    the invoice, and its characteristics.
                  properties:
                    amount:
                      type: integer
                      description: >-
                        The transaction amount, in the currency's smaller unit
                        (eg. cents)
                    currency:
                      type: string
                      description: >-
                        The currency iso code of the transaction. Must be
                        identical to the invoice's currency.
                    transaction_type:
                      type: string
                      description: >-
                        The type of the financial transaction involved in that
                        assignemnt.

                        `payment`: A transaction representing a payment made
                        toward an invoice. For instance, a paypal or a credit
                        card payment.

                        `transfer`: A transaction representing the movement of
                        funds between accounts or entities. For instance, a
                        payout to a supplier.

                        `balance_adjustment`: A transaction where a customer’s
                        existing cash balance is applied to an invoice, reducing
                        the amount due.
                      enum:
                        - payment
                        - transfer
                        - balance_adjustment
                    reference:
                      type: string
                      description: A statement descriptor to reference this payment
                  required:
                    - amount
                    - currency
                    - transaction_type
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                id: inv_1792060766conn54eeae7b
                livemode: false
                object: invoice
                amount_due: 2888
                amount_overpaid: 0
                amount_paid: 900
                amount_remaining: 1988
                automatic_tax_calculation:
                  enabled: false
                currency: EUR
                customer_data:
                  name: Braun-Roberts
                  billing_address:
                    city: Nienowbury
                    line1: 1542 Haley Avenue
                    line2: Suite 844
                    country: RS
                    postal_code: '22513'
                  tax_identification_number: '506111905'
                  business_registration_number: '07304599900007'
                customer_id: org_1792060766b51z521094b2
                customer_tax_registration_data: []
                customer_tax_registration_ids: []
                document_date: '2026-10-15'
                document_number: INV00001
                due_date: '2026-10-15'
                flow: sales
                issuer: null
                legal_notices: null
                locale: en
                memo: null
                metadata: {}
                numbering_sequence_id: ns_1792060766avzh2319dea7
                order_reference: null
                payment_status: due
                payment_terms: null
                period: null
                postpayment_credit_notes_amount: 0
                prepayment_credit_notes_amount: 0
                representations:
                  hosted_page_url: >-
                    https://repo.nocotax.test:3000/invoices/X0996iwnT9hU056FKCe-WrX2VhYIjnII5bUDUZiitCY
                  pdf_file_url: >-
                    https://repo.nocotax.test:3000/invoices/X0996iwnT9hU056FKCe-WrX2VhYIjnII5bUDUZiitCY/pdf
                status: finalized
                status_transitions:
                  finalized_at: '2026-10-15T12:39:26.606+02:00'
                supplier_country: AX
                supplier_data:
                  name: Ziemann, Abernathy and Predovic
                  billing_address:
                    city: South Guillermina
                    line1: 58077 Koelpin Station
                    line2: Suite 946
                    country: AX
                    postal_code: 06429-2874
                  tax_identification_number: '006547814'
                  business_registration_number: '93823292300921'
                supplier_id: org_1792060766arerefe44604
                supplier_tax_registration_data: []
                supplier_tax_registration_ids: []
                taxes: []
                total_extratax_amount: 2888
                total_tax_amount: 0
                total_tax_included_amount: 2888
                created_at: '2026-10-15T10:39:26.597Z'
                updated_at: '2026-10-15T10:39:27.451Z'
              schema:
                $ref: '#/components/schemas/invoice'
components:
  schemas:
    invoice:
      type: object
      properties:
        id:
          type: string
        livemode:
          type: boolean
        object:
          type: string
        amount_due:
          type: integer
          description: >-
            The amount due at the time the invoice is finalized, in the
            currency's smaller unit (eg. cents)
          nullable: true
        amount_overpaid:
          type: integer
          description: >-
            If the amount of transactions attached to this invoice exceed its
            final amount, the amount overpaid, in the currency's smaller unit
            (eg. cents)
          nullable: true
        amount_paid:
          type: integer
          description: >-
            The amount that has been paid, in the currency's smaller unit (eg.
            cents)
          nullable: true
        amount_remaining:
          type: integer
          description: The amount still due, in the currency's smaller unit (eg. cents)
          nullable: true
        automatic_tax_calculation:
          type: object
          description: >-
            When automatic tax calculation is enabled, Nocotax automatically
            determines which tax rates must be applied to each item sold within
            the document.
          properties:
            enabled:
              type: boolean
              description: >-
                Whether automatic tax calculation is enabled for the current
                document or not
        currency:
          type: string
          description: The currency ISO code of the document
        customer_data:
          type: object
          properties:
            billing_address:
              type: object
              properties:
                recipient:
                  type: string
                  nullable: true
                line1:
                  type: string
                  nullable: true
                line2:
                  type: string
                  nullable: true
                city:
                  type: string
                  nullable: true
                postal_code:
                  type: string
                  nullable: true
                state:
                  type: string
                  nullable: true
                country:
                  type: string
            business_registration_number:
              type: string
              nullable: true
            name:
              type: string
            tax_identification_number:
              type: string
              nullable: true
        customer_id:
          type: string
          description: The ID of the organization this document refers as a customer
        customer_tax_registration_data:
          type: array
          description: >-
            The customer’s tax registration data. They are displayed on the PDF
            of the document, and may be used for automatic tax calculation if
            enabled.
          items:
            type: object
            properties:
              country:
                type: string
              number:
                type: string
              tax_id:
                type: string
              tax_registration_type:
                type: string
        customer_tax_registration_ids:
          type: array
          description: The customer’s tax registration IDs.
          items:
            type: string
        document_date:
          type: string
          description: >-
            The date of issuance of this document. Its value is `null` when the
            document status is `draft`
          nullable: true
        document_number:
          type: string
          description: >-
            The number of this document. Its value is `null` when the document
            status is `draft`
          nullable: true
        due_date:
          type: string
          format: date
          description: The date on which payment for this invoice is due
          nullable: true
        issuer:
          type: object
          description: >-
            If the issuer of the document is not the supplier (in case of
            white-label or self billing), information on the issuer
          nullable: true
          properties:
            type:
              type: string
              enum:
                - CUSTOMER
              description: >-
                `CUSTOMER`: For self-billing purposes. The customer is the
                issuer of the invoice
        flow:
          type: string
          enum:
            - sales
            - purchases
            - platform
          description: >
            Specifies the direction or role of the account owner in the
            invoicing transaction.

            `sales`: The account owner is the supplier (i.e., the entity issuing
            the document for goods or services provided).

            `purchases`: The account owner is the customer (i.e., the entity
            receiving the document for goods or services purchased).

            `platform`: The account owner is a facilitator (i.e., the entity
            enabling the transaction between a customer and a supplier, such as
            a marketplace or intermediary).
        legal_notices:
          type: array
          nullable: true
          items:
            type: string
            description: >-
              A text representing a legal notice to display on document
              representations
        locale:
          type: string
          description: The locale used for this invoice representations (PDF)
        memo:
          type: string
          description: Document memo
          nullable: true
        numbering_sequence_id:
          type: string
          description: >-
            The ID of the numbering sequence this document is using to generate
            its number at finalization
        order_reference:
          type: string
          nullable: true
        payment_status:
          type: string
          enum:
            - open
            - due
            - paid
          description: >-
            The status of the invoice payment. `open`: The invoice has not been
            paid, but the due date is in the future. `due`: A payment for the
            total or a part of this invoice is expected. `paid`: This invoice
            has been paid.
          nullable: true
        payment_terms:
          type: object
          description: >-
            Payment terms for this invoice. Represent the number of days after
            finalization so the invoice is `due`. Do not provide along with
            `due_date`
          nullable: true
          properties:
            days:
              type: integer
              description: Number of days
            type:
              type: string
              enum:
                - END_OF_MONTH
                - NET
              description: >-
                `END_OF_MONTH`: Payment is due after a number of calendar days
                following the invoice issue date, at the end of the given month.
                `NET`: Payment is due after a number of calendar days following
                the invoice issue date
        period:
          type: object
          description: >-
            The period associated with this document. Used to recognize and
            defer revenue
          properties:
            end:
              type: string
              description: Must be greater than or equal to the start
              format: date-time
            start:
              type: string
              format: date-time
          nullable: true
        postpayment_credit_notes_amount:
          type: integer
          description: >-
            Sum of amounts of all post-payment credit notes issued for this
            invoice
          nullable: true
        prepayment_credit_notes_amount:
          type: integer
          description: >-
            Sum of amounts of all pre-payment credit notes issued for this
            invoice
          nullable: true
        representations:
          type: object
          description: >-
            After finalization of a document, you can share its representations
            to whoever you want. This is a set of URLs you can share.
          properties:
            hosted_page_url:
              type: string
              description: A link to a hosted page that customers and suppliers can use
            pdf_file_url:
              type: string
              description: The link to download the PDF
        status:
          type: string
          enum:
            - draft
            - finalized
            - cancelled
          description: The status of the document, one of `draft`, `finalized`, `cancelled`
        status_transitions:
          type: object
          properties:
            finalized_at:
              type: string
              format: date-time
              nullable: true
        supplier_country:
          type: string
          description: The country (ISO alpha 2) of the country of issuance of the document
        supplier_data:
          type: object
          properties:
            billing_address:
              type: object
              properties:
                recipient:
                  type: string
                  nullable: true
                line1:
                  type: string
                  nullable: true
                line2:
                  type: string
                  nullable: true
                city:
                  type: string
                  nullable: true
                postal_code:
                  type: string
                  nullable: true
                state:
                  type: string
                  nullable: true
                country:
                  type: string
            business_registration_number:
              type: string
              nullable: true
            name:
              type: string
            tax_identification_number:
              type: string
              nullable: true
        supplier_id:
          type: string
          description: The ID of the organization this document refers as a supplier
        supplier_tax_registration_data:
          type: array
          description: >-
            The supplier's tax registration data. They are displayed on the PDF
            of the document, and may be used for automatic tax calculation if
            enabled.
          items:
            type: object
            properties:
              country:
                type: string
              number:
                type: string
              tax_id:
                type: string
              tax_registration_type:
                type: string
        supplier_tax_registration_ids:
          type: array
          description: The customer’s tax registration IDs.
          items:
            type: string
        taxes:
          type: array
          description: The document's tax breakdown
          nullable: true
          items:
            type: object
            properties:
              jurisdiction:
                type: string
                description: The jurisdiction this tax amount refers to
                nullable: true
              percentage:
                type: string
                format: decimal
                description: ''
                nullable: true
              tax_id:
                type: string
                description: ID of the `tax` object this tax amount refers to
                nullable: true
              tax_exemption:
                type: object
                description: When filled, the reason why this amount is tax exempt
                nullable: true
                properties:
                  type:
                    type: string
                    description: Enum representing why this amount is tax exempt
                  legal_notice:
                    type: string
                    description: >-
                      A piece of text to be displayed on document
                      representations justifying the tax exemption.
                    nullable: true
              taxable_amount:
                type: integer
                description: >-
                  The amount, in the currency's smaller unit (eg. cents), this
                  tax applies upon
        total_extratax_amount:
          type: integer
          description: >-
            Total extratax amount of the document, in the currency's smaller
            unit (eg. cents)
        total_tax_amount:
          type: integer
          description: >-
            Total tax amount of the document, in the currency's smaller unit
            (eg. cents)
        total_tax_included_amount:
          type: integer
          description: >-
            Total tax included of the document, in the currency's smaller unit
            (eg. cents)
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
  securitySchemes:
    basic_auth:
      type: http
      scheme: basic

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.