---
updatedAt: 2026-05-29T11:03:35.000Z
agentTools:
  projectIndex: https://docs.fonoa.com/llms.txt
---

# Submit a transaction

Submit a transaction to fulfill digital reporting requirements. Depending on the configuration one or more operations may be executed

# OpenAPI definition

```json
{
  "components": {
    "schemas": {
      "BusinessLocation": {
        "properties": {
          "name": {
            "description": "The name of the business location.",
            "example": "Store1",
            "type": "string"
          }
        },
        "type": "object"
      },
      "DeliveryTerms": {
        "properties": {
          "code": {
            "description": "Code representing the delivery terms, typically an Incoterm.\n\nValidations:\n- Maximum length: 3",
            "example": "DDP",
            "type": "string"
          },
          "special_terms": {
            "description": "Free-text special terms associated with the delivery.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "DocumentReference": {
        "properties": {
          "identifier": {
            "description": "Buyer’s document reference identifier (e.g., PO number) identifying the document this invoice relates to.\n\nValidations:\n- Required property",
            "example": "PO-123",
            "type": "string"
          },
          "issue_date": {
            "description": "Date when the referenced document was issued.\n\nValidations:\n- Must be an RFC3339 format date",
            "type": "string"
          },
          "reason": {
            "description": "Reason for the document reference.",
            "type": "string"
          },
          "tender_reference": {
            "description": "Identifier of the procurement procedure or tender associated with the referenced document.\n",
            "type": "string"
          },
          "type": {
            "description": "Type of the document reference.",
            "type": "string"
          }
        },
        "required": [
          "identifier"
        ],
        "type": "object"
      },
      "OperationResultResponse": {
        "properties": {
          "errors": {
            "description": "List of errors in case the request was unsuccessful.",
            "items": {
              "$ref": "#/components/schemas/TransactionErrorResponse"
            },
            "type": "array"
          },
          "message": {
            "description": "Information about the failure reason in case the request was unsuccessful.",
            "type": "string"
          },
          "operation_id": {
            "description": "Auto-generated unique identifier of a transaction operation returned upon async operation request.",
            "type": "string"
          },
          "transaction_id": {
            "description": "The unique external transaction identifier provided with the initial request.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "OperationalContext": {
        "properties": {
          "line_of_business": {
            "description": "Classification of the business line this transaction belongs to. Used by Fonoa for\npre-agreed purposes such as separate billing or data routing.\n\nValidations:\n- Maximum length: 100",
            "example": "delivery",
            "type": "string"
          },
          "source_system": {
            "description": "Identifier for the internal system or application within the customer's organization that\noriginated this transaction.\n\nValidations:\n- Maximum length: 100",
            "example": "workday",
            "type": "string"
          }
        },
        "type": "object"
      },
      "PaymentDetailBankInfo": {
        "properties": {
          "account_holder_name": {
            "description": "The name of the account holder as registered with the bank.\n\nValidations:\n- Maximum length: 100",
            "example": "John Doe",
            "type": "string"
          },
          "account_number": {
            "description": "Bank account number used for the payment. e.g., 1234567890\n\nValidations:\n- Maximum length: 100",
            "example": "1234567890",
            "type": "string"
          },
          "bank_identifier": {
            "description": "Bank identifier used for the payment. e.g., ZABAHR2X\n\nValidations:\n- Maximum length: 100",
            "example": "ZABAHR2X",
            "type": "string"
          },
          "bank_name": {
            "description": "Name of the bank where the payment was made. e.g., Bank of America\n\nValidations:\n- Maximum length: 100",
            "example": "Bank of America",
            "type": "string"
          }
        },
        "type": "object"
      },
      "PaymentProcessor": {
        "properties": {
          "authorization_code": {
            "description": "Authorization code of the payment processor. e.g., 123456\n\nValidations:\n- Maximum length: 100",
            "example": "123456",
            "type": "string"
          },
          "integration_type": {
            "description": "Type of integration with the payment processor\n\nValidations:\n- Values allowed are (letter case matters): NOT_INTEGRATED, INTEGRATED",
            "example": "NOT_INTEGRATED",
            "type": "string"
          },
          "tax_number": {
            "description": "Tax number of the payment processor. e.g., 69061864-2-99\n\nValidations:\n- Maximum length: 100",
            "example": "69061864-2-99",
            "type": "string"
          },
          "terminal_id": {
            "description": "Terminal ID of the payment processor. e.g., 1234567890\n\nValidations:\n- Maximum length: 100",
            "example": "1234567890",
            "type": "string"
          }
        },
        "type": "object"
      },
      "PaymentSettlement": {
        "properties": {
          "instalment_number": {
            "description": "The sequential number of the instalment this settlement represents (e.g., 1 for the first payment, 2 for the second).",
            "example": "1",
            "type": "integer"
          },
          "outstanding_balance": {
            "description": "The remaining unpaid balance on the original transaction after this settlement is applied.",
            "example": "100.00",
            "type": "number"
          },
          "reference_transaction_id": {
            "description": "The external transaction identifier of the original transaction that this payment is settles.",
            "example": "MY_ORIGINAL_IDENTIFIER_0001",
            "type": "string"
          },
          "settled_amounts": {
            "description": "A list detailing how the payment amount is allocated - including the base (untaxed) amounts and any associated taxes.",
            "items": {
              "$ref": "#/components/schemas/SettledAmount"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "PosDevice": {
        "properties": {
          "code": {
            "description": "The code of the pos device.",
            "example": "SN1",
            "type": "string"
          }
        },
        "type": "object"
      },
      "SettledAmount": {
        "properties": {
          "base_amount": {
            "description": "The untaxed portion of the settled amount.",
            "example": "100.00",
            "type": "number"
          },
          "tax_breakdown": {
            "description": "A detailed list of applied taxes (e.g., VAT, withholding, etc.) corresponding to this settled base amount.",
            "items": {
              "$ref": "#/components/schemas/TransactionLineItemTaxBreakdown"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "TransactionAttachmentRequest": {
        "properties": {
          "content": {
            "description": "Base64 encoded content of the attachment.\n\nValidations:\n- Required property\n- Maximum length: 1398101\n- Must be a valid base64 encoded string.",
            "type": "string"
          },
          "kind": {
            "description": "Attachment kind. One of the following values: REPORT\n\nValidations:\n- Required property\n- Values allowed are (letter case matters): REPORT",
            "type": "string"
          },
          "name": {
            "description": "Name of the attachment.\n\nValidations:\n- Required property\n- Maximum length: 255\n- Must end with .xml when type is XML.\n- Must end with .json when type is JSON.",
            "type": "string"
          },
          "type": {
            "description": "Attachment type. One of the following values: XML, JSON\n\nValidations:\n- Required property\n- Values allowed are (letter case matters): XML, JSON",
            "type": "string"
          }
        },
        "required": [
          "content",
          "kind",
          "name",
          "type"
        ],
        "type": "object"
      },
      "TransactionEntityAddress": {
        "properties": {
          "address_line_1": {
            "description": "Street name and number of the company.\n\nValidations:\n- Length between 0 and 450",
            "example": "R. Augusta 2",
            "type": "string"
          },
          "address_line_2": {
            "description": "Validations:\n- Length between 0 and 450",
            "type": "string"
          },
          "canton": {
            "description": "Validations:\n- Length between 0 and 100",
            "type": "string"
          },
          "city": {
            "description": "The city where the legal entity that is being onboarded is registered.\n\nValidations:\n- Length between 0 and 100",
            "example": "Lisbon",
            "type": "string"
          },
          "city_code": {
            "description": "Validations:\n- Length between 0 and 20",
            "type": "string"
          },
          "country_code": {
            "description": "ISO 3166-1 alpha-2 uppercase country code of the country where entity is registered.\n\nValidations:\n- Required property\n- Country code must be uppercase ISO 3166-1 alpha-2.",
            "example": "PT",
            "type": "string"
          },
          "district": {
            "description": "Validations:\n- Length between 0 and 100",
            "type": "string"
          },
          "neighbourhood": {
            "description": "Validations:\n- Length between 0 and 100",
            "type": "string"
          },
          "number": {
            "description": "Validations:\n- Length between 0 and 20",
            "example": "2",
            "type": "string"
          },
          "postal_code": {
            "description": "Postal code of the city where the company is registered.\n\nValidations:\n- Length between 0 and 100",
            "example": "1100-053",
            "type": "string"
          },
          "prefix": {
            "description": "Validations:\n- Length between 0 and 20",
            "type": "string"
          },
          "province": {
            "description": "Validations:\n- Length between 0 and 100",
            "example": "Estremadura",
            "type": "string"
          },
          "region": {
            "description": "Validations:\n- Length between 0 and 100",
            "type": "string"
          },
          "state": {
            "description": "Validations:\n- Length between 0 and 100",
            "type": "string"
          },
          "suffix": {
            "description": "Validations:\n- Length between 0 and 20",
            "type": "string"
          }
        },
        "required": [
          "country_code"
        ],
        "type": "object"
      },
      "TransactionEntityContactDetails": {
        "properties": {
          "attention_to": {
            "description": "The person or department to direct the document to.",
            "type": "string"
          },
          "email": {
            "description": "Value to be used by the Tax Authority to forward messages to the customer.\n\nValidations:\n- Required property\n- Must be a valid email address.",
            "example": "someone@email.com",
            "type": "string"
          },
          "phone_number": {
            "description": "The customer's phone number.",
            "example": "+10023456789",
            "type": "string"
          }
        },
        "required": [
          "email"
        ],
        "type": "object"
      },
      "TransactionEntityTaxInformation": {
        "properties": {
          "activity_code": {
            "description": "Code representing the activity of the entity.\n\nValidations:\n- Maximum length: 50",
            "type": "string"
          },
          "additional_tax_numbers": {
            "description": "Additional tax numbers used by the entity in domestic or foreign operations\n\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "items": {
              "$ref": "#/components/schemas/TransactionEntityTaxNumberCountrySpecific"
            },
            "type": "array"
          },
          "distribution_address": {
            "description": "Value to be used by the Tax Authority to forward the reported invoice to the customer/buyer\n\nValidations:\n- Maximum length: 256",
            "example": "someone@email.com",
            "type": "string"
          },
          "regime": {
            "description": "Tax regime the entity is registered with. e.g., VAT\n\nValidations:\n- Maximum length: 10",
            "example": "VAT",
            "type": "string"
          },
          "tax_code": {
            "description": "Tax code that complements tax number.",
            "type": "string"
          },
          "tax_number": {
            "description": "Tax number of tax registered entity. e.g., 69061864-2-99\n\nValidations:\n- Maximum length: 50",
            "example": "69061864-2-99",
            "type": "string"
          }
        },
        "type": "object"
      },
      "TransactionEntityTaxNumberCountrySpecific": {
        "properties": {
          "business_model": {
            "description": "Applicable transaction business models (optional).",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "country_code": {
            "description": "Country where provided tax number should be used.",
            "example": "US",
            "type": "string"
          },
          "country_subdivision_code": {
            "description": "Country subdivision code where tax number should be used (optional).",
            "type": "string"
          },
          "tax_number": {
            "description": "Tax number.",
            "example": "123456789",
            "type": "string"
          },
          "type": {
            "description": "The tax number type (optional).",
            "type": "string"
          }
        },
        "type": "object"
      },
      "TransactionErrorResponse": {
        "properties": {
          "code": {
            "description": "Error code of the issue. e.g., field_not_valid",
            "type": "string"
          },
          "doc_link": {
            "description": "The link for the error documentation. Follow it to gather more details about the error",
            "type": "string"
          },
          "field": {
            "description": "Field from the input request that caused the error, in case of validation errors. e.g. transaction_date",
            "type": "string"
          },
          "message": {
            "description": "Error message of the issue. e.g., Date must be in RFC3339 format.",
            "type": "string"
          },
          "type": {
            "description": "Error type of the issue. e.g., warning, validation, general, tax_authority",
            "type": "string"
          }
        },
        "type": "object"
      },
      "TransactionItemAttribute": {
        "properties": {
          "name": {
            "description": "Name of the item attribute.\n\nValidations:\n- Required property",
            "type": "string"
          },
          "value": {
            "description": "Value of the item attribute.\n\nValidations:\n- Required property",
            "type": "string"
          }
        },
        "required": [
          "name",
          "value"
        ],
        "type": "object"
      },
      "TransactionLabel": {
        "properties": {
          "label": {
            "description": "The descriptive name of the label\n\nValidations:\n- Required property\n- Maximum length: 35",
            "example": "Purchase Order No.",
            "type": "string"
          },
          "value": {
            "description": "The value associated with the label\n\nValidations:\n- Required property\n- Maximum length: 35",
            "example": "12345/67890/X",
            "type": "string"
          }
        },
        "required": [
          "label",
          "value"
        ],
        "type": "object"
      },
      "TransactionLineItem": {
        "properties": {
          "attributes": {
            "description": "Additional name/value attributes describing the goods or services.\n\nThe property applies only for Saudi Arabia\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "items": {
              "$ref": "#/components/schemas/TransactionItemAttribute"
            },
            "type": "array"
          },
          "code": {
            "description": "Item code used by Tax Authorities to classify transaction items. For example HSN (Harmonized System of Nomenclature).\n\ne.g., 08081000 - Apple\n\nMore info can be found here - https://www.tariffnumber.com/\"\n\nValidations:\n- Maximum length: 60",
            "example": "08081000",
            "type": "string"
          },
          "description": {
            "description": "Description of an item required for SAF-T documents in PT. Not displayed on a visual document. e.g., Chocolate cookies taste better with milk.\n\nValidations:\n- Maximum length: 200",
            "example": "Chocolate cookies taste better with milk.",
            "type": "string"
          },
          "details": {
            "description": "Additional details describing the line item.\n\nValidations:\n- Transaction line item details are not supported.",
            "items": {
              "$ref": "#/components/schemas/TransactionLineItemDetail"
            },
            "type": "array"
          },
          "ean": {
            "description": "European article number (EAN) also known as International article number - EAN 13 - 13 digit barcode mandatory for PT reporting scenarios. e.g. 5012345678900.\n\nThe property applies only for Portugal,Kenya\nValidations:\n- Maximum length: 13",
            "example": "5012345678900",
            "type": "string"
          },
          "imported_content_code": {
            "description": "Code for import content declaration.\n\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "example": "FCI1234ABC567890XYZ",
            "type": "string"
          },
          "name": {
            "description": "Item name displayed on an invoice. e.g., Chocolate cookies\n\nValidations:\n- Required property\n- Maximum length: 200",
            "example": "Chocolate cookies",
            "type": "string"
          },
          "net_price": {
            "description": "A high precision decimal representing the item net price. If you are using the legacy integer representation for this field refer to this documentation on how to migrate to decimals: https://docs.fonoa.com/reference/amounts-and-rounding\n\nValidations:\n- Cannot exceed the maximum allowed precision of 9 decimals.",
            "example": "2.30",
            "type": "number"
          },
          "number": {
            "description": "Ordinal number of the item in a transaction. e.g., 1\n\nValidations:\n- Required property\n- Value must be greater than 0",
            "example": "1",
            "type": "integer"
          },
          "operation_nature_code": {
            "description": "The code of the nature of this item in the transaction.\n\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "example": "5102",
            "type": "string"
          },
          "origin_country_code": {
            "description": "ISO 3166-1 alpha-2 country code where the goods originated.\n\nThe property applies only for Saudi Arabia\nValidations:\n- Country code must be uppercase ISO 3166-1 alpha-2.\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "example": "IT",
            "type": "string"
          },
          "product_classification_code": {
            "description": "Identifies the product using a standardized classification system.\n\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "example": "84713012",
            "type": "string"
          },
          "quantity": {
            "description": "Non-zero high precision decimal representing the quantity of units of the line item. e.g., 3.1.\n\nValidations:\n- Required property\n- Value must be greater than 0",
            "example": "3.1",
            "type": "number"
          },
          "reason": {
            "description": "The reason this item is included on the invoice. Typically reserved for adjustments.\n\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "example": "Customer refund",
            "type": "string"
          },
          "reference_number": {
            "description": "Non-zero integer referring to one of the line items.\n\nCan be used only when item type is DISCOUNT indicating that the discount is applied to a specific item.\nIf not specified, the discount is applied to the entire transaction.\n\nItem cannot reference itself.\n\nValidations:\n- Item cannot reference itself.\n- Item reference number can be applied only when item type is discount.",
            "example": "1",
            "type": "integer"
          },
          "reference_transaction_id": {
            "description": "The external transaction identifier of the original transaction the adjustment is referencing.\n\nIt is used when attempting to create a unique adjustment with multiple references. Each reference\nbeing a single item.\n\nValidations:\n- Reference transaction id is not supported.",
            "example": "MY_ORIGINAL_IDENTIFIER_0001",
            "type": "string"
          },
          "reference_transaction_item_number": {
            "description": "Non-zero integer referring to the referenced transaction item the adjustment should be applied to.\n\nIf not specified, the adjustment is applied to the entire referenced transaction.\n\nValidations:\n- Reference transaction item number is not supported.",
            "example": "1",
            "type": "integer"
          },
          "tax_breakdown": {
            "description": "Taxes applied to a line item\n\nValidations:\n- Can contain only 1 tax breakdown when a breakdown with code=MARGIN is present.",
            "items": {
              "$ref": "#/components/schemas/TransactionLineItemTaxBreakdown"
            },
            "type": "array"
          },
          "tax_point_date": {
            "description": "Date when the tax point for this line item occurs.\n\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "type": "string"
          },
          "type": {
            "description": "Type of item in a transaction either GOODS, SERVICES, or DISCOUNT.\n\nValidations:\n- Values allowed are (letter case matters): GOODS, SERVICES, DISCOUNT",
            "example": "GOODS",
            "type": "string"
          },
          "unit": {
            "description": "Unit of measurement for the item. e.g., pcs.\n\nValidations:\n- Maximum length: 20",
            "example": "pcs",
            "type": "string"
          },
          "unit_price": {
            "description": "A high-precision decimal amount representing the price of a single unit.\nThe amount should not include any taxes calculated based on the item's net price. However, it should include any taxes calculated based on the item's total amount.          \n\nIf you are using the legacy integer representation for this field refer to this documentation on how to migrate to decimals: https://docs.fonoa.com/reference/amounts-and-rounding\n\nValidations:\n- Required property\n- Cannot exceed the maximum allowed precision of 9 decimals.",
            "example": "2.30",
            "type": "number"
          }
        },
        "required": [
          "name",
          "number",
          "quantity",
          "unit_price"
        ],
        "type": "object"
      },
      "TransactionLineItemDetail": {
        "properties": {
          "name": {
            "description": "Description of the line item detail that will be shared with the tax authority in supported countries.\n\nValidations:\n- Required property",
            "example": "Chocolate cookies",
            "type": "string"
          },
          "net_price": {
            "description": "Net price of the line item detail. Indicated price excludes Tax.\n\nValidations:\n- Cannot exceed the maximum allowed precision.",
            "example": "4.10",
            "type": "number"
          },
          "quantity": {
            "description": "Quantity of the line item detail.\n\nValidations:\n- Cannot exceed the maximum allowed precision.",
            "example": "2.50",
            "type": "number"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "TransactionLineItemTaxBreakdown": {
        "properties": {
          "amount": {
            "description": "A high precision decimal representing the tax amount. If you are using the legacy integer representation for this field refer to this documentation on how to migrate to decimals: https://docs.fonoa.com/reference/amounts-and-rounding\n\nValidations:\n- Cannot exceed the maximum allowed precision of 9 decimals.",
            "example": "2.30",
            "type": "number"
          },
          "application_mode": {
            "description": "Defines what's the tax basis for the tax calculation and how it is applied. \nADD_TO_UNIT_PRICE: uses the item's net price as the basis for tax calculation and adds to it.\nINCLUDED_IN_UNIT_PRICE: uses the item's total amount as the basis for tax calculation and doesn't add to it.\n\nWhen not specified, it is set to ADD_TO_UNIT_PRICE.\n\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.\n- Values allowed are (letter case matters): ADD_TO_UNIT_PRICE, INCLUDED_IN_UNIT_PRICE",
            "type": "string"
          },
          "code": {
            "description": "Tax code required by some tax authorities to justify the application of this tax, typically for items that are tax-exempt. The list of codes depends on the jurisdiction.\n\ne.g., M11 - Portuguese tobacco regime\n\nSet value MARGIN to indicate margin scheme items like second-hand goods, antiques and so on.\n\nValidations:\n- Maximum length: 10\n- margin scheme items must have 0 tax rate.\n- margin scheme items must have 0 tax amount.",
            "example": "M11",
            "type": "string"
          },
          "compound_base_types": {
            "description": "Defines which other taxes contribute to the base of the compound tax, with the taxable amount being calculated as `item.net_price + sum(compound_base_types[].amount)`. This allows for explicit modeling of dependencies between tax components where one tax is calculated on top of others.\n\n\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "description": {
            "description": "Description required by some tax authorities to justify the application of this tax, typically for items that are tax-exempt.\n\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "example": "Goods acquired with SST exemption under Sales Tax Act 2018. Reference No: ABC.TAX(S)012-3/4/56(7)",
            "type": "string"
          },
          "rate": {
            "description": "Non-negative tax rate percentage applied to an item. e.g. 25.\n\nValidations:\n- Required property\n- Value must be greater or equal to 0",
            "example": "25",
            "type": "number"
          },
          "regime": {
            "description": "Name of the tax regime. e.g., VAT\n\nValidations:\n- Required property\n- Maximum length: 10",
            "example": "VAT",
            "type": "string"
          },
          "type": {
            "description": "Tax type required by some tax authorities. e.g., PT tax authorities have different tax types per region. e.g., PT-MA - Madeira region tax type.\n\nValidations:\n- Maximum length: 10",
            "example": "PT-MA",
            "type": "string"
          }
        },
        "required": [
          "rate",
          "regime"
        ],
        "type": "object"
      },
      "TransactionNonOnboardedEntity": {
        "properties": {
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TransactionEntityAddress"
              }
            ],
            "description": "Address of an entity.",
            "type": "object"
          },
          "contact_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TransactionEntityContactDetails"
              }
            ],
            "description": "Contact details of an entity.",
            "type": "object"
          },
          "entity_number": {
            "description": "This is a company registration number if entity is a business or personal identifier if entity is an individual. e.g., 011589551\n\nValidations:\n- Maximum length: 50",
            "example": "011589551",
            "type": "string"
          },
          "entity_number_type": {
            "description": "This is company or individual number type. e.g., 93 (Argentina - birth certificate)\n\nValidations:\n- Maximum length: 50",
            "example": "93",
            "type": "string"
          },
          "legal_name": {
            "description": "Full legal name of the company (or the individual). e.g., Acme LLC; John Fitzgerald Kennedy\n\nValidations:\n- Required property\n- Maximum length: 450",
            "example": "Acme LLC; John Fitzgerald Kennedy",
            "type": "string"
          },
          "role": {
            "description": "Role of the entity in the transaction (e.g., RECIPIENT). Used to distinguish different types of secondary entities.\n\nValidations:\n- Must be provided for secondary entities.",
            "type": "string"
          },
          "tax_information": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TransactionEntityTaxInformation"
              }
            ],
            "description": "Tax information of an entity.",
            "type": "object"
          },
          "trade_name": {
            "description": "The name the company (or the individual) uses to do business. e.g., Acme; John F Kennedy\n\nValidations:\n- Maximum length: 450",
            "example": "Acme; John F Kennedy",
            "type": "string"
          },
          "type": {
            "description": "Entity type defining the type of the transaction (B2B, B2C, B2G).\n\nValidations:\n- Required property\n- Values allowed are (ignore case): BUSINESS, INDIVIDUAL, ECONOMIC_OPERATOR",
            "example": "BUSINESS",
            "type": "string"
          }
        },
        "required": [
          "legal_name",
          "role",
          "type"
        ],
        "type": "object"
      },
      "TransactionOnboardedEntity": {
        "properties": {
          "external_id": {
            "description": "External resource identifier provided by the customer. e.g., MY_EXTERNAL_ID_001\n\nValidations:\n- Maximum length: 150",
            "example": "MY_EXTERNAL_ID_001",
            "type": "string"
          },
          "id": {
            "description": "Fonoa id representing a resource within the system. e.g., a7cc64422fc247069aa64d4fe8b387c5\n\nValidations:\n- Exact length: 32\n- Supplier reference must be provided. Either supplier.id or supplier.external_id must be provided.",
            "example": "a7cc64422fc247069aa64d4fe8b387c5",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "TransactionPayment": {
        "properties": {
          "amount": {
            "description": "A high precision decimal representing the amount paid by the payment type. If you are using the legacy integer representation for this field refer to this documentation on how to migrate to decimals: https://docs.fonoa.com/reference/amounts-and-rounding\n\nValidations:\n- Cannot exceed the maximum allowed precision of 9 decimals.",
            "example": "122.00",
            "type": "number"
          },
          "card_brand": {
            "description": "Card brand used for the payment. e.g., Visa, MasterCard, Amex\n\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "example": "VISA",
            "type": "string"
          },
          "code": {
            "description": "Payment type code required by some tax authorities. e.g., single payment, deferred payment, installments... e.g., PUE - Mexican payment code for single payment.\n\nValidations:\n- Maximum length: 32",
            "example": "PUE",
            "type": "string"
          },
          "date_of_payment": {
            "description": "Date of the payment. e.g., 2021-01-01T00:00:00Z\n\nValidations:\n- Must be an RFC3339 format date",
            "example": "2021-01-01T00:00:00Z",
            "type": "string"
          },
          "payment_processor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentProcessor"
              }
            ],
            "description": "Payment processor information for the payment.\n\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "type": "object"
          },
          "payment_reference": {
            "description": "Visual representation of payment like payment ID or payment reference\n\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "type": "string"
          },
          "settlements": {
            "description": "A list of payment settlements representing how this payment is applied against one or more prior transactions.\n\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "items": {
              "$ref": "#/components/schemas/PaymentSettlement"
            },
            "type": "array"
          },
          "type": {
            "description": "Free text input or one of predefined values representing payment type. Predefined values (CARD, CASH, CHECK, TRANSACTION, CREDITCARD, DEBITCARD, OTHER) are localized. e.g., CARD ending in 2022\n\nValidations:\n- Maximum length: 32\n- Required property",
            "example": "CARD ending in 2022",
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "type": "object"
      },
      "TransactionPaymentDetail": {
        "properties": {
          "bank_info": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentDetailBankInfo"
              }
            ],
            "description": "Bank information of the account that will receive the payments.\n\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "type": "object"
          },
          "condition": {
            "description": "Indicates the structure of payment. Acceptable values are: FULL (One-time payment for the full amount), INSTALLMENTS (Multiple scheduled payments), or ADVANCE (Prepayment before goods/services are delivered). \n\nValidations:\n- Values allowed are (letter case matters): FULL, INSTALLMENTS, ADVANCE",
            "example": "FULL",
            "type": "string"
          },
          "payments": {
            "description": "The list of payments related to the condition specified.",
            "items": {
              "$ref": "#/components/schemas/TransactionPayment"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "TransactionReference": {
        "properties": {
          "transaction_id": {
            "description": "External transaction identifier provided by the customer. e.g., MY_CREDIT_IDENTIFIER_0001\n\nValidations:\n- Required property\n- Maximum length: 150",
            "type": "string"
          }
        },
        "required": [
          "transaction_id"
        ],
        "type": "object"
      },
      "TransactionRequest": {
        "properties": {
          "accounting_entry_date": {
            "description": "The date of the accounting entry for an Account payable (AP) invoice/transaction\n\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "type": "string"
          },
          "activity_code": {
            "description": "Activity code is a standard classification of productive economic activities. It can be used to represent EAC (Economic Activity code), a standard classification governed by ISIC and NACE (https://joinup.ec.europa.eu/collection/eu-semantic-interoperability-catalogue/solution/statistical-classification-economic-activities-european-community/about), or other similar concepts.\n\ne.g., 10.32 is Manufacture of fruit and vegetable juice\n\nValidations:\n- Maximum length: 20",
            "example": "10.32",
            "type": "string"
          },
          "attachments": {
            "description": "Attachments to be included in the transaction.\n\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "items": {
              "$ref": "#/components/schemas/TransactionAttachmentRequest"
            },
            "type": "array"
          },
          "business_location": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BusinessLocation"
              }
            ],
            "description": "Represents a distinct physical location where business activities, such as transactions, occur. This typically refers to stores, offices, or other defined spaces registered for fiscal purposes. Also known as business premise, business space, branch and more depending on the jurisdiction.\n\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "type": "object"
          },
          "country_code": {
            "description": "ISO 3166-1 alpha-2 uppercase country code the transaction is taking place in.\n\nValidations:\n- Country code must be uppercase ISO 3166-1 alpha-2.\n- Required property\n- Customer's address country code and transaction's country code must be different when operation regime is EXPORT.",
            "example": "PT",
            "type": "string"
          },
          "country_subdivision_code": {
            "description": "ISO 3166-2 uppercase code of the principal country subdivision (province, state, region) the transaction is taking place in.\n\nValidations:\n- Values allowed are (letter case matters): AB, BC, MB, NB, NL, NS, NT, NU, ON, PE, QC, SK, YT\n- Values allowed are (letter case matters): AL, AK, AZ, AR, CA, CO, CT, DE, FL, GA, HI, ID, IL, IN, IA, KS, KY, LA, ME, MD, MA, MI, MN, MS, MO, MT, NE, NV, NH, NJ, NM, NY, NC, ND, OH, OK, OR, PA, RI, SC, SD, TN, TX, UT, VT, VA, WA, WV, WI, WY, DC\n- Country subdivision code is only supported for US and Canada.",
            "example": "PT-02",
            "type": "string"
          },
          "currency_code": {
            "description": "Primary currency code of the transaction represented as ISO 4217 3 letter uppercase currency code e.g. `USD`.\n\nValidations:\n- Currency must be one of ISO 4217 codes.\n- Required property",
            "example": "USD",
            "type": "string"
          },
          "customer": {
            "description": "Customer (sometimes called buyer) in a transaction. Can be an individual or a business. Can be omitted for most jurisdictions depending on the transaction size. In self-billing regime the customer must be a pre-onboarded entity (TransactionOnboardedEntity).\n\nValidations:\n- Customer entity should be onboarded in case of self-billing. For more information about onboarding refer to the public documentation.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/TransactionOnboardedEntity"
              },
              {
                "$ref": "#/components/schemas/TransactionNonOnboardedEntity"
              }
            ],
            "type": "object"
          },
          "decimal_amounts": {
            "description": "A flag to be used in a migration phase. It signals in which format amounts should be parsed. If true amounts are parsed as decimals, if false amounts are parsed as an integer representing the minor currency unit.",
            "example": "false",
            "type": "boolean"
          },
          "direction": {
            "description": "Document representing a transaction can be sent or received. Allows businesses to report both inbound and outbound transactions for VAT deduction purposes. Default: `SENT`.\n\nValidations:\n- Maximum length: 20\n- Values allowed are (letter case matters): SENT, RECEIVED",
            "example": "SENT",
            "type": "string"
          },
          "document_format": {
            "description": "Format of the e-invoice to generate and exchange.\nIn Germany this selects Peppol BIS 3.0, XRechnung (UBL), or ZUGFeRD.\nWhen omitted, generation stays on the current Peppol BIS 3.0 behavior.\n\nThe property applies only for Germany\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "example": "PEPPOL_BIS_3",
            "type": "string"
          },
          "document_references": {
            "description": "List of document references related to the transaction, such as transport documents, customs documents, or other relevant references.\n\nThe property applies only for France,Germany,Costa Rica\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "items": {
              "$ref": "#/components/schemas/DocumentReference"
            },
            "type": "array"
          },
          "end_date": {
            "description": "RFC3339 datetime string representing an ending point in time.\n\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "example": "2021-01-08T01:00:00+00:00",
            "type": "string"
          },
          "frequency": {
            "description": "Describes the frequency of reporting invoices to tax authority, used with SUMMARY invoice types.",
            "example": "MONTHLY",
            "type": "string"
          },
          "issue_date": {
            "description": "The date when the transaction was issued by an external application.\n\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "type": "string"
          },
          "issuer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TransactionNonOnboardedEntity"
              }
            ],
            "description": "Entity issuing a transaction document (usually invoice) on behalf of supplier. This is typically used for marketplace scenarios.",
            "type": "object"
          },
          "items": {
            "description": "Goods, services, and discounts exchanged in a transaction.\n\nValidations:\n- Must not be empty.\n- Must be empty for PASS_THROUGH transactions.\n- Reference Item Number must reference actual Item Number.\n- Transaction item numbers must be unique.\n- Discount and fee tax rates must match the referenced item tax rates.\n- Discount items must be margin when referencing margin line items or when all line items are margin.\n- All or no items should reference a transaction.\n- Discount and fee items applied to this transactions must reference items that are not a discount or fee item.\n- The transaction may not have more than {{.max}} items. Please reach out to Fonoa support to learn about the alternatives.\n- A transaction with item level references may not have more than {{.max}} items. Please reach out to Fonoa support to learn about the alternatives.",
            "items": {
              "$ref": "#/components/schemas/TransactionLineItem"
            },
            "type": "array"
          },
          "labels": {
            "description": "A list of transaction labels to be applied to the generated document.\nLabels are not supported in all countries, please see the Country Integration Guides for details.\n\nValidations:\n- Cannot contain more than {{.max}} labels, provided {{.actual}}.",
            "items": {
              "$ref": "#/components/schemas/TransactionLabel"
            },
            "type": "array"
          },
          "language_code": {
            "description": "Language of the transaction document represented as ISO 639-1 uppercase language code. Required when document generation is enabled. Defaults to EN (English) if not provided.\n\nValidations:\n- Language of the transaction must be uppercase ISO 639-1.\n- Required property",
            "example": "EN",
            "type": "string"
          },
          "note": {
            "description": "A text note attached to a transaction. Notes are HTML enabled and will be displayed on the visual document.\n\nValidations:\n- Maximum length: 3000",
            "example": "This is my HTML <e>enabled</e> note.",
            "type": "string"
          },
          "operation_regime": {
            "description": "A value describing the operation regime for the transaction if applicable. e.g., export - indicating the transaction should be reported as cross-border transaction.\n\nValidations:\n- Values allowed are (letter case matters): GENERAL, SELF_BILLING",
            "example": "GENERAL",
            "type": "string"
          },
          "operation_regime_details": {
            "description": "A value providing additional information on the specified operation regime. e.g., providing a tax authority supported export type.\n\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "type": "string"
          },
          "operational_context": {
            "allOf": [
              {
                "$ref": "#/components/schemas/OperationalContext"
              }
            ],
            "description": "Operational context for the transaction. Fields in this object are usually not used for compliance reporting or document generation. Examples include your internal line of business\nor the source system of the transaction.",
            "type": "object"
          },
          "operator": {
            "description": "Operator in a transaction. Usually the individual (employee) responsible for creating the transaction.\n\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/TransactionOnboardedEntity"
              },
              {
                "$ref": "#/components/schemas/TransactionNonOnboardedEntity"
              }
            ],
            "type": "object"
          },
          "payment_details": {
            "description": "Payment details for the transaction.\n\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "items": {
              "$ref": "#/components/schemas/TransactionPaymentDetail"
            },
            "type": "array"
          },
          "payment_due_date": {
            "description": "RFC3339 datetime string representing the deadline until which the payment must be made.\n\nValidations:\n- payment_due_date is not supported for the provided country",
            "example": "2021-01-15T01:00:00+00:00",
            "type": "string"
          },
          "payments": {
            "description": "A list of transaction payments. The sum of all payment amounts must match the total transaction amount.\ni.e., sum(payments[].amount) == sum(items[].quantity * items[].unit_price * (1 + sum(tax_breakdown[].rate)/100))\n\nValidations:\n- Sum of payment amounts must be equal to total transaction amount.",
            "items": {
              "$ref": "#/components/schemas/TransactionPayment"
            },
            "type": "array"
          },
          "place_of_supply": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TransactionEntityAddress"
              }
            ],
            "description": "Location of the place of supply for the transaction, as determined by local rules in respect of supply of goods/services and business model (B2B/B2C/B2G)",
            "type": "object"
          },
          "pos_device": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PosDevice"
              }
            ],
            "description": "POS (Point of Sale) devices are systems used at sales points, such as retail outlets, to generate, sign, and send e-invoices as per regulatory requirements. The pos device must be unique for a given business location. They are also known as cash register, billing device, payment device and more depending on the jurisdiction.\n\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "type": "object"
          },
          "purchase_orders": {
            "description": "Buyer’s purchase orders information (e.g., PO number) this document relates to.\n\nThe property applies only for Ghana,Italy,Nigeria\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "items": {
              "$ref": "#/components/schemas/DocumentReference"
            },
            "type": "array"
          },
          "reference_transaction_id": {
            "description": "The external transaction identifier of the original transaction the credit is referencing. e.g., MY_ORIGINAL_IDENTIFIER_0001\n\nValidations:\n- Maximum length: 150\n- And other transaction refences (in items and payments) cannot be provided together.",
            "example": "MY_ORIGINAL_IDENTIFIER_0001",
            "type": "string"
          },
          "reference_transactions": {
            "description": "The referenced transactions for the transaction.\n\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "items": {
              "$ref": "#/components/schemas/TransactionReference"
            },
            "type": "array"
          },
          "secondary_currency": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TransactionSecondaryCurrency"
              }
            ],
            "description": "Secondary currency exchange information. Secondary currency displayed on the visual document.",
            "type": "object"
          },
          "secondary_entities": {
            "description": "Secondary entities involved in the transaction. e.g., buyer agency, buyer branch information, supplier payee, etc.\n\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "items": {
              "$ref": "#/components/schemas/TransactionNonOnboardedEntity"
            },
            "type": "array"
          },
          "series": {
            "description": "A pool of transaction numbers issued by tax authorities to pick the transaction number from.\n\nThe transaction shall be assigned one of the numbers from this pool when reporting it to the tax authorities.\n\nUsually series can be opened and closed at any time and there can be multiple open series at the same time.\n\ne.g., 2022_01\n\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "example": "2022_01",
            "type": "string"
          },
          "signature": {
            "description": "The transaction signature generated by an external application.\n\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "type": "string"
          },
          "signature_date": {
            "description": "The date of the transaction signature generated by an external application.\n\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "type": "string"
          },
          "start_date": {
            "description": "RFC3339 datetime string representing a starting point in time.\n\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "example": "2021-01-07T01:00:00+00:00",
            "type": "string"
          },
          "supplier": {
            "description": "Supplier entity referenced by either Fonoa ID or customer provided ID. If both values are provided, Fonoa ID has precedance over external ID. In self-billing regime supplier can be non onboarded (TransactionNonOnboardedEntity).\n\nValidations:\n- Required property\n- Supplier entity should be onboarded in any case other than self-billing. For more information about onboarding refer to the public documentation.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/TransactionOnboardedEntity"
              },
              {
                "$ref": "#/components/schemas/TransactionNonOnboardedEntity"
              }
            ],
            "type": "object"
          },
          "tax_authority_id_1": {
            "description": "Main transaction identifier returned by or to be provided to the tax authorities. e.g., JIR in Croatia.\n\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "example": "JIR",
            "type": "string"
          },
          "tax_authority_id_2": {
            "description": "Secondary transaction identifier returned by or to be provided to the tax authorities. e.g., ZKI in Croatia.\n\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "example": "ZKI",
            "type": "string"
          },
          "tax_reason": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TransactionTaxReason"
              }
            ],
            "description": "A value describing the utility that will be attributed to the transaction for tax deduction purposes.\n\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "type": "object"
          },
          "total_amount": {
            "description": "A high precision decimal representing the total amount. If you are using the legacy integer representation for this field refer to this documentation on how to migrate to decimals: https://docs.fonoa.com/reference/amounts-and-rounding\n\nValidations:\n- Cannot exceed the maximum allowed precision of 9 decimals.\n- Please provide either all amounts (totals and line item's) or only the items unit price.\n- Line item values and total amounts must add up.",
            "example": "122.00",
            "type": "number"
          },
          "total_net_amount": {
            "description": "A high precision decimal representing the total net amount. If you are using the legacy integer representation for this field refer to this documentation on how to migrate to decimals: https://docs.fonoa.com/reference/amounts-and-rounding\n\nValidations:\n- Cannot exceed the maximum allowed precision of 9 decimals.",
            "example": "100.00",
            "type": "number"
          },
          "total_tax_amount": {
            "description": "A high precision decimal representing the total tax amount. If you are using the legacy integer representation for this field refer to this documentation on how to migrate to decimals: https://docs.fonoa.com/reference/amounts-and-rounding\n\nValidations:\n- Cannot exceed the maximum allowed precision of 9 decimals.",
            "example": "22.00",
            "type": "number"
          },
          "total_tax_amounts": {
            "description": "A list of total tax amounts broken down by tax regime. Each entry represents the total for a specific tax regime (e.g., ISH, VAT).\n\nThe property applies only for Mexico\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "items": {
              "$ref": "#/components/schemas/TransactionTotalTaxAmount"
            },
            "type": "array"
          },
          "transaction_channel": {
            "description": "The channel through which the transaction was conducted, such as in-person, online, telephone order, etc.\n\nThe property applies only for Brazil\nValidations:\n- Values allowed are (letter case matters): IN_PERSON_AT_ESTABLISHMENT, ONLINE, TELEPHONE, IN_PERSON_OUTSIDE_ESTABLISHMENT, OTHER, NOT_APPLICABLE\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "example": "ONLINE",
            "type": "string"
          },
          "transaction_date": {
            "description": "RFC3339 datetime string representing the point in time when transaction is executed.\n\nValidations:\n- Required property\n- Must be an RFC3339 format date",
            "example": "2021-01-07T01:00:00+00:00",
            "type": "string"
          },
          "transaction_id": {
            "description": "Unique external transaction identifier provided by the customer. Used as idempotency key. e.g., MY_EXTERNAL_IDENTIFIER_0001.\n\nValidations:\n- Maximum length: 150\n- Required property",
            "example": "Reference101",
            "type": "string"
          },
          "transaction_number": {
            "description": "Unique and usually sequential identifier of a transaction displayed on the document and reported to tax authorities. e.g., invoice number for debit scenario or credit note number for credit scenario. e.g., IE00000001\n\nValidations:\n- Maximum length: 50\n- Is required when Fonoa is not managing transaction numbers.\n- Must be empty when Fonoa is managing transaction numbers.",
            "example": "IE00000001",
            "type": "string"
          },
          "transaction_scenario": {
            "description": "The scenario type for a corrective invoice. Describes the type of correction being applied to the original transaction.\n\nThe property applies only for France,Germany\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "example": "REPLACEMENT",
            "type": "string"
          },
          "transport_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TransactionTransportData"
              }
            ],
            "description": "Transport data for the transaction usually used when submitting invoices with transportation data and standalone transport documents.\n\nThe property applies only for Portugal,Brazil,Saudi Arabia\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "type": "object"
          },
          "type": {
            "description": "Type of the transaction that usually depends on transaction value and business model (B2B or B2C).\n\nThe most common types are FULL, SIMPLIFIED, RECEIPT, RECEIPT_INVOICE.\n\nValidations:\n- Values allowed are (letter case matters): FULL, SIMPLIFIED, RECEIPT, RECEIPT_INVOICE, BILLING_STATEMENT, DRAFT_INVOICE",
            "example": "FULL",
            "type": "string"
          }
        },
        "required": [
          "country_code",
          "currency_code",
          "items",
          "language_code",
          "supplier",
          "transaction_date",
          "transaction_id",
          "transaction_number"
        ],
        "type": "object"
      },
      "TransactionSecondaryCurrency": {
        "properties": {
          "currency_code": {
            "description": "ISO 4217 currency code of the secondary transaction currency. e.g., MXN\n\nValidations:\n- Currency must be one of ISO 4217 codes.\n- Required property",
            "example": "MXN",
            "type": "string"
          },
          "exchange_date": {
            "description": "Date of the currency exchange rate. e.g., 2021-01-01T00:00:00Z\n\nValidations:\n- Must be an RFC3339 format date",
            "example": "2021-01-01T00:00:00Z",
            "type": "string"
          },
          "exchange_rate": {
            "description": "Currency exchange rate between main and secondary transaction currency. Example: main currency USD, secondary currency MXN. Exchange rate is 18.38 because 1 USD is 18.38 MXN as of today.\n\nValidations:\n- Required property\n- Value must be greater than 0",
            "example": "18.38",
            "type": "number"
          }
        },
        "required": [
          "currency_code",
          "exchange_rate"
        ],
        "type": "object"
      },
      "TransactionTaxReason": {
        "properties": {
          "code": {
            "description": "The specific code to be used as the tax reason for the transaction. e.g., S01 - indicating no tax effect in Mexican jurisdiction\n\nValidations:\n- Maximum length: 15\n- Required property",
            "example": "S01",
            "type": "string"
          },
          "description": {
            "description": "Further explanation of the tax reason for the code provided\n\nValidations:\n- Maximum length: 450",
            "example": "S01",
            "type": "string"
          },
          "tax_reason_details": {
            "description": "Additional details to be provided for the tax reason code.\n\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "items": {
              "$ref": "#/components/schemas/TransactionTaxReasonDetail"
            },
            "type": "array"
          }
        },
        "required": [
          "code"
        ],
        "type": "object"
      },
      "TransactionTaxReasonDetail": {
        "properties": {
          "code": {
            "description": "Additional code that complements the tax reason code. For example, specific refusal code for refusal tax reason.\n\nValidations:\n- Maximum length: 30",
            "example": "S01",
            "type": "string"
          },
          "note": {
            "description": "Further explanation of the tax reason detail for the code provided\n\nValidations:\n- Maximum length: 450",
            "example": "S01",
            "type": "string"
          }
        },
        "type": "object"
      },
      "TransactionTotalTaxAmount": {
        "properties": {
          "amount": {
            "description": "The total tax amount for this regime.\n\nValidations:\n- Cannot exceed the maximum allowed precision of 9 decimals.",
            "example": "30",
            "type": "number"
          },
          "regime": {
            "description": "Name of the tax regime. e.g., VAT, ISH\n\nValidations:\n- Required property\n- Maximum length: 10",
            "example": "ISH",
            "type": "string"
          }
        },
        "required": [
          "regime"
        ],
        "type": "object"
      },
      "TransactionTransportData": {
        "properties": {
          "delivery_terms": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DeliveryTerms"
              }
            ],
            "description": "Delivery terms associated with the transport, including the Incoterm code and any special terms.\n\nThe property applies only for Saudi Arabia\nValidations:\n- This field is only supported in specific use cases, refer to country-specific integration guides in the Fonoa dashboard.",
            "type": "object"
          },
          "recipient": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TransactionNonOnboardedEntity"
              }
            ],
            "description": "Recipient (sometimes called receiver) of the transported goods. Can be an individual or a business.",
            "type": "object"
          },
          "shipping_from": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TransactionEntityAddress"
              }
            ],
            "description": "The origin address from where the goods will be transported.",
            "type": "object"
          },
          "shipping_to": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TransactionEntityAddress"
              }
            ],
            "description": "The destination address to where the goods will be transported.",
            "type": "object"
          },
          "transport_mode": {
            "description": "Defines how the transport was managed.\n\nValidations:\n- Values allowed are (letter case matters): WITHOUT_CHARGE, HIRED_BY_SENDER, HIRED_BY_RECIPIENT, HIRED_BY_THIRD_PARTY, OWNED_BY_SENDER, OWNED_BY_RECIPIENT",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "securitySchemes": {
      "ApiKeyAuth": {
        "in": "header",
        "name": "Ocp-Apim-Subscription-Key",
        "type": "apiKey"
      }
    }
  },
  "info": {
    "title": "Fonoa E-invoicing",
    "version": "1.0.0"
  },
  "openapi": "3.0.0",
  "paths": {
    "/v1/transactions": {
      "post": {
        "description": "Submit a transaction to fulfill digital reporting requirements. Depending on the configuration one or more operations may be executed",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TransactionRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OperationResultResponse"
                }
              }
            },
            "description": "Accepted - transaction was successfully submitted for processing."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OperationResultResponse"
                }
              }
            },
            "description": "Bad customer request - some of the provided information is incorrect or mandatory data is missing. Check the message and errors section of the response for more details."
          },
          "401": {
            "description": "Authentication failed - missing or incorrect subscription key"
          },
          "429": {
            "description": "Too many requests were sent for a short period of time. Try again a bit later."
          },
          "5XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OperationResultResponse"
                }
              }
            },
            "description": "Internal server error. Its not you, its us! We are experiencing a rare and unexpected system disruption. Retry again later. The message field of the response will contain more information for the cause. Feel free to contact us."
          }
        },
        "summary": "Submit a transaction",
        "tags": [
          "Transactions"
        ]
      }
    }
  },
  "security": [
    {
      "ApiKeyAuth": []
    }
  ],
  "tags": [
    {
      "name": "Transactions"
    }
  ]
}
```