Anrok Transactions API

This documentation describes how to use Anrok's Transactions API to synchronize transactions between Anrok and your billing system, as well as calculate sales tax for new invoices. Use of this API is generally recommended for sellers with custom billing systems or workflows that prevent you from using one of our pre-built platform integrations. Sellers utilizing Stripe Subscriptions or Checkout may also use this API to calculate and add tax on initial invoices, while continuing to use Anrok's Stripe integration to manage tax for subsequent billing cycles. # Invoice lifecycle 1. When an invoice is created: the billing system should call the `createEphemeral` endpoint to calculate the sales tax amount. 1. When an invoice is updated: same as above. 1. When an invoice is finalized and ready to send to the customer: the billing system should call the `createOrUpdate` endpoint so that the transaction is recorded in Anrok. 1. When an invoice is paid: Anrok does not need to be notified. Sellers are required to remit sales tax to a state upon invoice, not receipt of payment. While the above covers a standard invoice lifecycle, the Transactions API also includes endpoints for exceptional states like voiding and negating invoices, which are described below.

Operations 5

POST /v1/seller/transactions/createOrUpdate Create or update transaction #
POST /v1/seller/transactions/createEphemeral Create ephemeral transaction #
POST /v1/seller/transactions/createNegation Create negation #
POST /v1/seller/transactions/id:{transactionId}/void Void transaction #
POST /v1/seller/transactions/list List transactions #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/anrok-transactions-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

anrok-transactions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Anrok Customer certificates Transactions API
  version: '1.1'
  termsOfService: https://www.anrok.com/privacy-terms
  contact:
    email: support@anrok.com
  license:
    name: All rights reserved
    url: https://www.anrok.com
  x-logo:
    url: https://global-uploads.webflow.com/632add85afcd1ac30aa74675/6357842d130e1f3e0e23d1fe_anrok_logo.svg
  description: '# API reference


    The Anrok API server is accessible at `https://api.anrok.com`.


    All requests are HTTP POSTs with JSON in the body.


    Authentication is via an HTTP header `Authorization: Bearer {apiKey}`.


    The default rate limit for a seller account is 10 API requests per second.

    '
servers:
- url: https://api.anrok.com
security:
- http: []
tags:
- name: Transactions
  description: 'This documentation describes how to use Anrok''s Transactions API to synchronize transactions between Anrok and your billing system, as well as calculate sales tax for new invoices. Use of this API is generally recommended for sellers with custom billing systems or workflows that prevent you from using one of our pre-built platform integrations. Sellers utilizing Stripe Subscriptions or Checkout may also use this API to calculate and add tax on initial invoices, while continuing to use Anrok''s Stripe integration to manage tax for subsequent billing cycles.


    # Invoice lifecycle

    1. When an invoice is created: the billing system should call the `createEphemeral` endpoint to calculate the sales tax amount.

    1. When an invoice is updated: same as above.

    1. When an invoice is finalized and ready to send to the customer: the billing system should call the `createOrUpdate` endpoint so that the transaction is recorded in Anrok.

    1. When an invoice is paid: Anrok does not need to be notified. Sellers are required to remit sales tax to a state upon invoice, not receipt of payment.


    While the above covers a standard invoice lifecycle, the Transactions API also includes endpoints for exceptional states like voiding and negating invoices, which are described below.

    '
paths:
  /v1/seller/transactions/createOrUpdate:
    post:
      tags:
      - Transactions
      summary: Create or update transaction
      description: Given the details of an invoice, calculate sales tax and save it as a transaction in Anrok. Saved transactions are used by Anrok to file sales tax returns and monitor sales thresholds.
      operationId: transactionsCreateOrUpdate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateOrUpdateTransaction'
            example:
              id: stripe:in_1JSW342eZvKYlo2C
              currencyCode: usd
              accountingTime: '2022-01-02T03:30:00Z'
              accountingTimeZone: UTC
              lineItems:
              - id: item-1
                productExternalId: saas-product-1
                amount: 15000
                isTaxIncludedInAmount: false
                quantity: '1'
              - id: item-2
                productExternalId: saas-product-2
                amount: 31000
                isTaxIncludedInAmount: true
                quantity: '12.3'
              - id: item-3
                productExternalId: not-taxable-3
                amount: 24000
              customerAddress:
                country: us
                line1: 1450 Cherokee St
                city: Denver
                region: CO
                postalCode: '80204'
              shipFromAddress:
                country: us
                line1: 230 S LaSalle St
                city: Chicago
                region: IL
                postalCode: '60604'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateOrUpdateTransactionSuccess'
              example:
                version: 1
                taxAmountToCollect: 722
                lineItems:
                - id: item-1
                  taxAmountToCollect: 722
                  preTaxAmount: '15000'
                  jurises:
                  - name: Colorado
                    taxes: null
                    notTaxedReason:
                      type: productNotTaxed
                  - name: Denver (local)
                    taxes:
                    - taxName: Tax
                      taxableAmount: '15000'
                      taxAmount: '721.5'
                      taxRate: '0.0481'
                    notTaxedReason: null
                - id: item-2
                  taxAmountToCollect: 0
                  preTaxAmount: '29577.3304'
                  jurises:
                  - name: Colorado
                    taxes: null
                    notTaxedReason:
                      type: productNotTaxed
                  - name: Denver (local)
                    taxes:
                    - taxName: Tax
                      taxableAmount: '29577.3304'
                      taxAmount: '1422.6696'
                      taxRate: '0.0481'
                    notTaxedReason: null
                - id: item-3
                  taxAmountToCollect: 0
                  preTaxAmount: '24000'
                  jurises:
                  - name: Colorado
                    taxes: null
                    notTaxedReason:
                      type: productNotTaxed
                preTaxAmount: '68577.3304'
                jurisSummaries:
                - name: Colorado
                  notTaxedReasons:
                  - type: productNotTaxed
                - name: Denver (local)
                  notTaxedReasons: null
        '400':
          $ref: '#/components/responses/CreateTransactionBadRequest'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/CreateTransactionCannotComputeTaxAmount'
                - $ref: '#/components/schemas/CreateTransactionCannotUpdate'
              examples:
                taxDateTooFarInFuture:
                  $ref: '#/components/examples/ConflictTaxDateTooFarInFuture'
                taxDateTooFarInPast:
                  $ref: '#/components/examples/ConflictTaxDateTooFarInPast'
                accoutingTimeZoneNotSetForSeller:
                  $ref: '#/components/examples/ConflictAccountingTimeZoneNotSetForSeller'
                productExternalIdUnknown:
                  $ref: '#/components/examples/ConflictProductExternalIdUnknown'
        '429':
          $ref: '#/components/responses/RateLimit'
      x-codeSamples:
      - lang: cURL
        source: "apiToken='sxxx/saxxx/secret.xxx'\n\ncurl -X POST https://api.anrok.com/v1/seller/transactions/createOrUpdate \\\n  -H 'Content-Type: application/json' \\\n  -H \"Authorization: Bearer $apiToken\" \\\n  -d '{\n    \"id\": \"stripe:in_1JSW342eZvKYlo2C\",\n    \"currencyCode\": \"usd\",\n    \"accountingTime\": \"2022-01-02T03:30:00Z\",\n    \"accountingTimeZone\": \"UTC\",\n    \"lineItems\": [{\n      \"id\": \"item-1\",\n      \"productExternalId\": \"saas-product-1\",\n      \"amount\": 15000,\n      \"isTaxIncludedInAmount\": false,\n      \"quantity\": \"1\"\n    },\n    {\n      \"id\": \"item-2\",\n      \"productExternalId\": \"saas-product-2\",\n      \"amount\": 31000,\n      \"isTaxIncludedInAmount\": true,\n      \"quantity\": \"12.3\"\n    },\n    {\n      \"id\": \"item-3\",\n      \"productExternalId\": \"not-taxable-3\",\n      \"amount\": 24000\n    }],\n    \"customerAddress\": {\n      \"country\": \"us\",\n      \"line1\": \"1450 Cherokee St\",\n      \"city\": \"Denver\",\n      \"region\": \"CO\",\n      \"postalCode\": \"80204\"\n    },\n    \"shipFromAddress\": {\n      \"country\": \"us\",\n      \"line1\": \"230 S LaSalle St\",\n      \"city\": \"Chicago\",\n      \"region\": \"IL\",\n      \"postalCode\": \"60604\"\n    }\n  }'\n"
  /v1/seller/transactions/createEphemeral:
    post:
      tags:
      - Transactions
      summary: Create ephemeral transaction
      description: Given the details of an invoice, calculate sales tax without saving the transaction in Anrok. Ephemeral transactions are not used by Anrok to file sales tax returns or monitor sales thresholds.
      operationId: transactionsCreateEphemeral
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateEphemeralTransaction'
            example:
              currencyCode: usd
              accountingTime: '2022-01-02T03:30:00Z'
              accountingTimeZone: UTC
              lineItems:
              - id: item-1
                productExternalId: saas-product-1
                amount: 15000
                isTaxIncludedInAmount: false
                quantity: '1'
              - id: item-2
                productExternalId: saas-product-2
                amount: 31000
                isTaxIncludedInAmount: true
                quantity: '12.3'
              - id: item-3
                productExternalId: not-taxable-3
                amount: 24000
              customerAddress:
                country: us
                line1: 1450 Cherokee St
                city: Denver
                region: CO
                postalCode: '80204'
              shipFromAddress:
                country: us
                line1: 230 S LaSalle St
                city: Chicago
                region: IL
                postalCode: '60604'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateEphemeralTransactionSuccess'
              example:
                taxAmountToCollect: 722
                lineItems:
                - id: item-1
                  taxAmountToCollect: 722
                  preTaxAmount: '15000'
                  jurises:
                  - name: Colorado
                    taxes: null
                    notTaxedReason:
                      type: productNotTaxed
                  - name: Denver (local)
                    taxes:
                    - taxName: Tax
                      taxableAmount: '15000'
                      taxAmount: '721.5'
                      taxRate: '0.0481'
                    notTaxedReason: null
                - id: item-2
                  taxAmountToCollect: 0
                  preTaxAmount: '29577.3304'
                  jurises:
                  - name: Colorado
                    taxes: null
                    notTaxedReason:
                      type: productNotTaxed
                  - name: Denver (local)
                    taxes:
                    - taxName: Tax
                      taxableAmount: '29577.3304'
                      taxAmount: '1422.6696'
                      taxRate: '0.0481'
                    notTaxedReason: null
                - id: item-3
                  taxAmountToCollect: 0
                  preTaxAmount: '24000'
                  jurises:
                  - name: Colorado
                    taxes: null
                    notTaxedReason:
                      type: productNotTaxed
                preTaxAmount: '68577.3304'
                jurisSummaries:
                - name: Colorado
                  notTaxedReasons:
                  - type: productNotTaxed
                - name: Denver (local)
                  notTaxedReasons: null
        '400':
          $ref: '#/components/responses/CreateTransactionBadRequest'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateTransactionCannotComputeTaxAmount'
              examples:
                taxDateTooFarInFuture:
                  $ref: '#/components/examples/ConflictTaxDateTooFarInFuture'
                taxDateTooFarInPast:
                  $ref: '#/components/examples/ConflictTaxDateTooFarInPast'
                accoutingTimeZoneNotSetForSeller:
                  $ref: '#/components/examples/ConflictAccountingTimeZoneNotSetForSeller'
                productExternalIdUnknown:
                  $ref: '#/components/examples/ConflictProductExternalIdUnknown'
        '429':
          $ref: '#/components/responses/RateLimit'
      x-codeSamples:
      - lang: cURL
        source: "apiToken='sxxx/saxxx/secret.xxx'\n\ncurl -X POST https://api.anrok.com/v1/seller/transactions/createEphemeral \\\n  -H 'Content-Type: application/json' \\\n  -H \"Authorization: Bearer $apiToken\" \\\n  -d '{\n    \"currencyCode\": \"usd\",\n    \"accountingTime\": \"2022-01-02T03:30:00Z\",\n    \"accountingTimeZone\": \"UTC\",\n    \"lineItems\": [{\n      \"id\": \"item-1\",\n      \"productExternalId\": \"saas-product-1\",\n      \"amount\": 15000,\n      \"isTaxIncludedInAmount\": false,\n      \"quantity\": \"1\"\n    },\n    {\n      \"id\": \"item-2\",\n      \"productExternalId\": \"saas-product-2\",\n      \"amount\": 31000,\n      \"isTaxIncludedInAmount\": true,\n      \"quantity\": \"12.3\"\n    },\n    {\n      \"id\": \"item-3\",\n      \"productExternalId\": \"not-taxable-3\",\n      \"amount\": 24000\n    }],\n    \"customerAddress\": {\n      \"country\": \"us\",\n      \"line1\": \"1450 Cherokee St\",\n      \"city\": \"Denver\",\n      \"region\": \"CO\",\n      \"postalCode\": \"80204\"\n    },\n    \"shipFromAddress\": {\n      \"country\": \"us\",\n      \"line1\": \"230 S LaSalle St\",\n      \"city\": \"Chicago\",\n      \"region\": \"IL\",\n      \"postalCode\": \"60604\"\n    }\n  }'\n"
  /v1/seller/transactions/createNegation:
    post:
      tags:
      - Transactions
      summary: Create negation
      description: Creates a new transaction that is the exact inverse of the given transaction. The sale prices and tax amounts will add up to zero.
      operationId: transactionsCreateNegation
      requestBody:
        $ref: '#/components/requestBodies/CreateNegation'
      responses:
        '200':
          $ref: '#/components/responses/EmptyResponse'
        '400':
          $ref: '#/components/responses/CreateNegationBadRequest'
        '409':
          $ref: '#/components/responses/CreateNegationConflict'
        '429':
          $ref: '#/components/responses/RateLimit'
      x-codeSamples:
      - lang: cURL
        source: "apiToken='sxxx/saxxx/secret.xxx'\n\ncurl -X POST https://api.anrok.com/v1/seller/transactions/createRefund \\\n  -H 'Content-Type: application/json' \\\n  -H \"Authorization: Bearer $apiToken\" \\\n  -d '{\n    \"originalTransactionId\": \"stripe:in_1JSW342eZvKYlo2C\",\n    \"newTransactionId\": \"stripe:in_1JSW342eZvKYlo2C_refund\"\n  }'"
  /v1/seller/transactions/id:{transactionId}/void:
    parameters:
    - $ref: '#/components/parameters/TransactionId'
    post:
      tags:
      - Transactions
      summary: Void transaction
      description: Mark a previously-created transaction as void. It will no longer be included in returns or sales totals.
      operationId: transactionsVoid
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                transactionExpectedVersion:
                  description: The expected transaction version. The void will fail if this is not the latest version of the transaction.
                  type: integer
                  format: int32
            examples:
              emptyExample:
                value: {}
                summary: Empty request body
              expectVersion:
                value:
                  transactionExpectedVersion: 1
                summary: Expected transaction version
        required: true
      responses:
        '200':
          $ref: '#/components/responses/EmptyResponse'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - transactionIdNotFound
                    - transactionExpectedVersionMismatch
                    - transactionFrozenForFiling
              example:
                type: transactionIdNotFound
        '429':
          $ref: '#/components/responses/RateLimit'
      x-codeSamples:
      - lang: cURL
        source: "apiToken='sxxx/saxxx/secret.xxx'\n\ncurl -X POST https://api.anrok.com/v1/seller/transactions/id:stripe:in_1JSW342eZvKYlo2C/void \\\n  -H 'Content-Type: application/json' \\\n  -H \"Authorization: Bearer $apiToken\" \\\n  -d '{}'"
  /v1/seller/transactions/list:
    post:
      tags:
      - Transactions
      summary: List transactions
      description: 'Lists transactions in Anrok. These can be filtered by the time they were last modified or by the filing they are associated with.

        This endpoint is a premium feature. Please contact hello@anrok.com for more information to enable this on your seller account.

        '
      operationId: transactionsList
      requestBody:
        $ref: '#/components/requestBodies/ListTransactions'
      responses:
        '200':
          $ref: '#/components/responses/ListTransactionsSuccess'
        '400':
          $ref: '#/components/responses/ListTransactionsBadRequest'
        '409':
          $ref: '#/components/responses/ListTransactionsConflict'
        '429':
          $ref: '#/components/responses/RateLimit'
      x-codeSamples:
      - lang: cURL
        source: "apiToken='sxxx/saxxx/secret.xxx'\n\ncurl -X POST https://api.anrok.com/v1/seller/transactions/list \\\n  -H 'Content-Type: application/json' \\\n  -H \"Authorization: Bearer $apiToken\" \\\n  -d '{\n    \"filter\": {\n        \"type\": \"lastModifiedAfter\",\n        \"value\": \"2025-08-08T16:00:00.000Z\"\n    }\n  }'\n"
components:
  schemas:
    LineItem:
      description: Line item details
      type: object
      properties:
        id:
          description: The ID of the line item in the source billing system, if available.
          type:
          - string
          - 'null'
          example: li_1234567890
        product:
          type: object
          properties:
            internalId:
              description: The internal ID of the product.
              type: string
              example: saas-product-1
            externalId:
              description: The external ID of the product.
              type: string
              example: product-1234567890
            name:
              description: The name of the product.
              type: string
              example: Product 1
            productTaxCategory:
              description: The tax category of the product.
              type: object
              properties:
                type:
                  description: The type of the product tax category.
                  type: string
                  enum:
                  - standard
                  - custom
                id:
                  description: The ID of the product tax category.
                  type: string
                  example: saasBusiness
                name:
                  description: The name of the product tax category.
                  type: string
                  example: SaaS - General, B2B
        quantity:
          description: The quantity of the line item.
          type:
          - string
          - 'null'
          format: Decimal
          example: '1'
        unitPrice:
          description: The unit price of the line item in the smallest denomination of the currency (e.g. cents or pennies).
          type:
          - string
          - 'null'
          format: Decimal
          example: '100.00'
        inputAmount:
          description: The input amount of the line item in the smallest denomination of the currency (e.g. cents or pennies).
          type: integer
          format: int64
          example: 10000
        preTaxAmount:
          description: The pre-tax amount of the line item in the smallest denomination of the currency (e.g. cents or pennies).
          type: string
          format: Decimal
          example: '100.00'
        taxAmountDue:
          $ref: '#/components/schemas/TaxAmountDue'
        jurises:
          type: array
          items:
            type: object
            properties:
              name:
                description: The name of the jurisdiction.
                type: string
                example: Texas
              id:
                description: The ID of the jurisdiction.
                type: string
                example: us-TX
              calc:
                oneOf:
                - title: TaxCalcRemitting
                  type: object
                  properties:
                    isRemitting:
                      description: Whether the seller is remitting tax to the jurisdiction.
                      type: boolean
                      enum:
                      - true
                    taxes:
                      description: The taxes for each line item for the jurisdiction.
                      type: array
                      items:
                        $ref: '#/components/schemas/LineItemJurisTax'
                - title: TaxCalcIfWereRemitting
                  type: object
                  properties:
                    isRemitting:
                      description: Whether the seller is remitting tax to the jurisdiction.
                      type: boolean
                      enum:
                      - false
                    taxesIfWereRemitting:
                      description: The taxes for each line item for the jurisdiction if the seller were remitting tax.
                      type: array
                      items:
                        $ref: '#/components/schemas/LineItemJurisTax'
    CreateEphemeralTransaction:
      allOf:
      - $ref: '#/components/schemas/Transaction'
      - type: object
        properties:
          customerId:
            description: "The Anrok customer ID used to link transactions for the same customer and to look up tax exemption certificates for a customer. This is typically the billing system's customer ID with a prefix to disambiguate.\n- If customerId is provided without customerName, that customer object must\n  already exist in Anrok.\n- Customer IDs are unique across the entire seller account.\n"
            type: string
            examples:
            - v1:1292
            - stripe:cus_K39sWBu92Lo
    FilingInfoFilter:
      type: object
      properties:
        type:
          type: string
          enum:
          - filingInfo
        value:
          type: object
          description: Only return transactions that are associated with the specified filing.
          properties:
            filingAssociationStatus:
              type: string
              enum:
              - associated
            jurisId:
              type: string
              examples:
              - us-MA
            jurisFilingId:
              type: string
              examples:
              - 2025-01
    LineItemJurisTax:
      description: Taxes for a line item for a jurisdiction or region.
      type: object
      properties:
        id:
          description: The ID of the jurisdiction or region.
          type: string
          example: '4109000'
        name:
          description: The name of the jurisdiction or region.
          type: string
          example: Hill County
        nonTaxableAmount:
          description: The non-taxable amount of the line item in the smallest denomination of the currency (e.g. cents or pennies).
          type: string
          format: Decimal
          example: '100.00'
        exemptions:
          type: array
          items:
            type: object
            properties:
              reason:
                description: The reason for the exemption.
                type: string
                enum:
                - reverseCharge
                - customerExempt
                - transactionExempt
              amount:
                description: The amount of the exemption in the smallest denomination of the currency (e.g. cents or pennies).
                type: string
                format: Decimal
                example: '100.00'
        taxableAmount:
          description: The taxable amount of the line item in the smallest denomination of the currency (e.g. cents or pennies).
          type: string
          format: Decimal
          example: '100.00'
        rate:
          description: The tax rate.
          type:
          - string
          - 'null'
          format: Decimal
          example: '0.05'
        taxAmount:
          description: The tax amount of the line item in the smallest denomination of the currency (e.g. cents or pennies).
          type: object
          properties:
            inclusive:
              description: The inclusive tax amount in the smallest denomination of the currency (e.g. cents or pennies).
              type: string
              format: Decimal
              example: '100.00'
            exclusive:
              description: The exclusive tax amount in the smallest denomination of the currency (e.g. cents or pennies).
              type: string
              format: Decimal
              example: '10.00'
    CreateOrUpdateTransaction:
      allOf:
      - $ref: '#/components/schemas/Transaction'
      - type: object
        properties:
          customerId:
            $ref: '#/components/schemas/CustomerId'
          id:
            description: The ID of the new transaction. This must be unique across the entire seller account. This is typically the billing system's invoice ID with some prefix to disambiguate different systems.
            type: string
            examples:
            - v1:2706174
            - stripe:in_1JSW342eZvKYlo2C
        required:
        - id
    JurisSummary:
      description: Summary of the tax amount due and tax ID validation for a jurisdiction.
      type: object
      properties:
        id:
          description: The ID of the jurisdiction.
          type: string
          example: us-TX
        name:
          description: The name of the jurisdiction.
          type: string
          example: Texas
        preTaxAmount:
          description: The pre-tax amount in the smallest denomination of the currency (e.g. cents or pennies).
          type: string
          format: Decimal
          example: '100.00'
        taxAmountDue:
          $ref: '#/components/schemas/TaxAmountDue'
        taxIdValidation:
          type: object
          properties:
            processedTaxIds:
              description: The tax IDs that were processed.
              type: array
              items:
                type: object
                properties:
                  taxId:
                    description: The tax ID.
                    type: string
                    example: '1234567890'
                  isValid:
                    description: Whether the tax ID is valid.
                    type: boolean
    LastModifiedAfterFilter:
      type: object
      properties:
        type:
          type: string
          enum:
          - lastModifiedAfter
        value:
          type: string
          format: date-time
          description: Only return transactions that were last modified after this time in Anrok. Must be an ISO 8601 date-time in UTC.
          example: '2025-01-01T00:00:00Z'
    NormalTransactionBody:
      type: object
      properties:
        accountingDate:
          description: The date that this transaction occurred, for accounting purposes.
          type: string
          format: date
          example: '2025-01-01'
        taxDate:
          description: The date to use for tax calculations.
          type: string
          format: date
          example: '2025-01-01'
        currencyCode:
          description: Three letter ISO currency code (case insensitive).
          type: string
          minLength: 3
          maxLength: 3
          examples:
          - USD
          - GBP
          - EUR
        customer:
          type:
          - object
          - 'null'
          properties:
            id:
              description: The Anrok customer ID.
              type: string
              example: cus_1234567890
            name:
              description: The name of the customer.
              type:
              - string
              - 'null'
              example: John Doe
        addresses:
          type: array
          items:
            type: object
            properties:
              address:
                $ref: '#/components/schemas/CustomerAddress'
            example:
              address:
                city: null
                line1: null
                region: TX
                country: US
                postalCode: '10101'
        inputAmount:
          type: integer
          format: int64
          description: The input amount in the smallest denomination of the currency (e.g. cents or pennies).
          example: 39800
        preTaxAmount:
          type: string
          format: Decimal
          description: The pre-tax amount in the smallest denomination of the currency (e.g. cents or pennies).
          example: '39800'
        taxAmountDue:
          allOf:
          - $ref: '#/components/schemas/TaxAmountDue'
          - example:
              inclusive: '0'
              exclusive: '2467.6'
              total: '2467.6'
        taxAmountAdded:
          type: object
          properties:
            expected:
              type: integer
              format: int64
              description: The expected tax amount to add in the smallest denomination of the currency (e.g. cents or pennies).
              example: 2468
            seen:
              type: integer
              format: int64
              description: The tax amount that Anrok saw was added in the smallest denomination of the currency (e.g. cents or pennies).
              example: 2468
        invoiceTotalAmountExpected:
          type: integer
          format: int64
          description: The expected total amount of the invoice in the smallest denomination of the currency (e.g. cents or pennies).
          example: 42268
        jurisSummaries:
          type: array
          items:
            allOf:
            - $ref: '#/components/schemas/JurisSummary'
            - example:
                id: us-TX
                name: Texas
                preTaxAmount: '39800'
                taxAmountDue:
                  inclusive: '0'
                  exclusive: '2467.6'
                  total: '2467.6'
                taxIdValidation:
                  processedTaxIds:
                  - taxId: '1234567890'
                    isValid: true
        lineItems:
          type: array
          items:
            allOf:
            - $ref: '#/components/schemas/LineItem'
            - example:
                id: li_1234567890
                product:
                  internalId: sp3hgz76gve3
                  externalId: PLU1
                  name: Product 1
                  productTaxCategory:
                    type: standard
                    id: saasBusiness
                    name: SaaS - General, B2B
                quantity: null
                unitPrice: null
                inputAmount: 39800
                preTaxAmount: '39800'
                taxAmountDue:
                  inclusive: '0'
                  exclusive: '2467.6'
                  total: '2467.6'
                jurises:
                - id: us-TX
                  name: Texas
                  calc:
                    isRemitting: true
                    taxes:
                    - id: ''
                      name: Texas
                      nonTaxableAmount: '7960'
                      exemptions: []
                      taxableAmount: '31840'
                      rate: '0.0625'
                      taxAmount:
                        inclusive: '0'
                        exclusive: '1990'
                    - id: '4109000'
                      name: Hill County
                      nonTaxableAmount: '7960'
                      exemptions: []
                      taxableAmount: '31840'
                      rate: '0.005'
                      taxAmount:
                        inclusive: '0'
                        exclusive: '159.2'
                    - id: '2109108'
                     

# --- truncated at 32 KB (57 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/anrok/refs/heads/main/openapi/anrok-transactions-api-openapi.yml