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

# Create Transactions

> Record a completed sale

## Transaction Endpoint (2026-01-01)

Record a completed sale using a previously created calculation.

<Note>
  Remember to include the `X-API-Version: 2026-01-01` header in your request to use this API version.
</Note>


## OpenAPI

````yaml POST /tax/transactions
openapi: 3.0.1
info:
  title: Numeral API
  description: API for sales tax calculations
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.numeralhq.com/
security:
  - bearerAuth: []
paths:
  /tax/transactions:
    post:
      description: Record a completed sale
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransactionRequest'
        required: true
      responses:
        '200':
          description: Transaction response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionResponse'
        '400':
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Calculation not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CalculationNotFoundError'
components:
  schemas:
    TransactionRequest:
      type: object
      properties:
        calculation_id:
          type: string
          description: The ID of the `calculation` that you want to record as a sale
          example: calc_123456789
        reference_order_id:
          type: string
          description: >-
            The ID of this order in your system. Must be unique among all your
            `transactions`
          example: 343-45836
        transaction_processed_at:
          type: number
          description: >-
            Unix timestamp in **seconds** representing the date and time your
            sale was made. If not provided, the current date and time will be
            used.
          example: 1714787673
        metadata:
          $ref: '#/components/schemas/Metadata'
      required:
        - calculation_id
        - reference_order_id
    TransactionResponse:
      type: object
      properties:
        id:
          type: string
          description: >-
            The ID of the `transaction`. We highly recommend you store this
            value. If you need to refund or query the data from this
            transaction, you will use this ID as a reference.
          example: tr_123456789
        object:
          type: string
          description: 'The type of object: `tax.transaction`.'
          example: tax.transaction
        calculation_id:
          type: string
          description: The ID of the `calculation` that was used to create this transaction
          example: calc_123456789
        reference_order_id:
          type: string
          description: The unique order ID you provided when creating the `transaction`
          example: 343-45836
        transaction_processed_at:
          type: number
          description: >-
            Unix timestamp in **seconds** representing the date and time your
            sale was made. If not provided, the date and time this `transaction`
            was created
          example: 1714787673
        customer_currency_code:
          type: string
          description: The ISO-4217 currency code of the transaction
          example: USD
        filing_currency_code:
          type: string
          description: >-
            The currency code of the filing that will be used to remit taxes
            collected on this transaction
          example: USD
        line_items:
          type: array
          items:
            $ref: '#/components/schemas/TransactionLineItem'
        testmode:
          type: boolean
          description: >-
            `True` if using a production API key. If `true`, Numeral will record
            this `transaction` towards your nexus totals. If you're registered
            and collecting in the relevant jurisdiction, we'll file the tax.
          example: 'false'
        metadata:
          $ref: '#/components/schemas/Metadata'
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            error_code:
              type: string
            error_message:
              type: string
            error_meta:
              type: object
              properties:
                field:
                  type: string
                expected:
                  type: string
                received:
                  type: string
        request_id:
          type: string
          description: The ID of the request
          example: req_123456789
      example:
        error:
          error_code: missing_field
          error_message: Field is required
          error_meta:
            field: path.to.fieldname
            expected: string
            received: undefined
    CalculationNotFoundError:
      type: object
      properties:
        error:
          type: object
          properties:
            error_code:
              type: string
            error_message:
              type: string
            error_meta:
              type: object
              properties:
                field:
                  type: string
                expected:
                  type: string
                received:
                  type: string
      example:
        error:
          error_code: calculation_not_found
          error_message: Unable to find calculation {calculation_id}.
    Metadata:
      type: object
      description: >-
        You can store arbitrary keys and values in the metadata. Any valid JSON
        object whose values are less than 255 characters long is accepted.
      properties:
        example_key:
          type: string
          description: >-
            Storing things like an order number may be useful for reporting and
            reconciliation.
          example: example_value
    TransactionLineItem:
      type: object
      properties:
        product:
          type: object
          properties:
            reference_product_name:
              type: string
              example: Widget
            reference_line_item_id:
              type: string
              example: line_987654321
            reference_product_id:
              type: string
              example: p-1233543
            product_tax_code:
              type: string
              example: GENERAL_MERCHANDISE
        tax_jurisdictions:
          type: array
          items:
            type: object
            properties:
              tax_rate:
                description: The tax rate percentage applied to this transaction.
                type: number
                example: 0.07
              tax_due_decimal:
                type: number
                description: >-
                  Tax amount due for this jurisdiction in the currency's
                  smallest unit.
                example: 700
              rate_type:
                type: string
                description: Descriptive rate classification for this jurisdiction.
                example: GENERAL STATE SALES TAX
              fee_amount:
                description: >-
                  The flat fee that is added to this transaction. Like all
                  numeric values, this will be returned in cents and should be
                  added directly to the tax amount independent of other
                  percentages. For example, a $100 transaction taxed at 5% and
                  with a `fee_amount: 50` will lead to `($100 * 5% + 0.50) =
                  $5.50` in tax being charged 
                type: number
                example: 0
              tax_authority_name:
                type: string
                description: Name of the tax authority.
                example: Tennessee
              tax_authority_type:
                type: string
                description: Type of tax authority (e.g., STATE, COUNTY, CITY, DISTRICT).
                example: ''
              tax_type:
                type: string
                description: 'Type of tax: SALES, USE, VAT, or GST.'
                example: SALES
            nullable: true
        quantity:
          type: number
          format: int32
          example: 2
        tax_amount:
          type: number
          format: int32
          example: 14
        amount_excluding_tax:
          type: number
          format: int32
          example: 200
        amount_including_tax:
          type: number
          format: int32
          example: 214
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````