swagger: "2.0"
schemes:
  - https
host: api.taxamo.com
basePath: /
info:
  description: Taxamo’s elegant suite of APIs and comprehensive reporting dashboard enables digital merchants to easily comply with EU regulatory requirements on tax calculation, evidence collection, tax return creation and data storage.
  title: Taxamo
  version: "1"
  x-apisguru-categories:
    - payment
  x-logo:
    url: http://i.imgur.com/C7ouKJt.png
  x-origin:
    - format: swagger
      url: https://api.taxamo.com/swagger
      version: "1.2"
  x-providerName: taxamo.com
consumes:
  - application/json
produces:
  - application/json
securityDefinitions:
  apiKey:
    in: header
    name: Token
    type: apiKey
tags:
  - description: Dictionaries
    name: dictionaries
  - description: GeoIP
    name: geoip
  - description: Invoices
    name: invoices
  - description: Payments
    name: payments
  - description: Refunds
    name: refunds
  - description: Reporting
    name: reporting
  - description: Settlement
    name: settlement
  - description: Statistics
    name: statistics
  - description: Tax
    name: tax
  - description: Transactions
    name: transactions
  - description: Verification
    name: verification
paths:
  /api/v1/dictionaries/countries:
    get:
      operationId: getCountriesDict
      parameters:
        - description: Should only countries with tax supported be listed?
          in: query
          name: tax_supported
          required: false
          type: boolean
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/getCountriesDictOut"
        "400":
          description: Validation failed, see JSON body response for details.
        "401":
          description: Incorrect token
      summary: Countries
      tags:
        - dictionaries
  /api/v1/dictionaries/currencies:
    get:
      operationId: getCurrenciesDict
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/getCurrenciesDictOut"
        "400":
          description: Validation failed, see JSON body response for details.
        "401":
          description: Incorrect token
      summary: Currencies
      tags:
        - dictionaries
  /api/v1/dictionaries/product_types:
    get:
      operationId: getProductTypesDict
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/getProductTypesDictOut"
        "400":
          description: Validation failed, see JSON body response for details.
        "401":
          description: Incorrect token
      summary: Product types
      tags:
        - dictionaries
  /api/v1/geoip:
    get:
      operationId: locateMyIP
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/locateMyIPOut"
        "400":
          description: Validation failed, see JSON body response for details.
        "401":
          description: Incorrect token
      summary: Locate IP
      tags:
        - geoip
  "/api/v1/geoip/{ip}":
    get:
      operationId: locateGivenIP
      parameters:
        - description: IP address.
          in: path
          name: ip
          required: true
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/locateGivenIPOut"
        "400":
          description: Validation failed, see JSON body response for details.
        "401":
          description: Incorrect token
      summary: Locate provided IP
      tags:
        - geoip
  /api/v1/reports/domestic/summary:
    get:
      operationId: getDomesticSummaryReport
      parameters:
        - description: Output format. 'xml' and 'csv' values are accepted. Default format - json
          in: query
          name: format
          required: false
          type: string
        - description: ISO 2-letter country code which will be used for determining which country is domestic.
          in: query
          name: country_code
          required: true
          type: string
        - description: ISO 3-letter currency code, e.g. EUR or USD. Defaults to the one assigned to MOSS calculations for a given country code.
          in: query
          name: currency_code
          required: false
          type: string
        - description: Period start month in yyyy-MM format.
          in: query
          name: start_month
          required: true
          type: string
        - description: Period end month in yyyy-MM format.
          in: query
          name: end_month
          required: true
          type: string
        - description: Which date should be used for FX.
          in: query
          name: fx_date_type
          required: false
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/getDomesticSummaryReportOut"
        "400":
          description: Validation failed, see JSON body response for details.
        "401":
          description: Incorrect token
      summary: Calculate domestic summary
      tags:
        - reporting
  /api/v1/reports/eu/vies:
    get:
      operationId: getEuViesReport
      parameters:
        - description: Length of report period. 'month', 'quarter' and 'year' values are accepted. Required only if Large Filer Format is requested.
          in: query
          name: period_length
          required: false
          type: string
        - description: Sequence number used to generate report in Large Filer Format. If not specified then '0000000001' will be used.
          in: query
          name: lff_sequence_number
          required: false
          type: string
        - description: Which transformation should be applied. Please note that transformation will be applied only for xml and csv formats.
          in: query
          name: transformation
          required: false
          type: string
        - description: ISO 3-letter currency code, e.g. EUR or USD. Defaults to the one assigned to MOSS calculations for a given country code.
          in: query
          name: currency_code
          required: false
          type: string
        - description: Period end month in yyyy-MM format.
          in: query
          name: end_month
          required: true
          type: string
        - description: MOSS-assigned tax ID - if not provided, merchant's national tax number will be used.
          in: query
          name: tax_id
          required: false
          type: string
        - description: Period start month in yyyy-MM format.
          in: query
          name: start_month
          required: true
          type: string
        - description: ISO 2-letter country code which will be used for determining which country is domestic.
          in: query
          name: eu_country_code
          required: true
          type: string
        - description: Which date should be used for FX.
          in: query
          name: fx_date_type
          required: false
          type: string
        - description: Output format. 'xml', 'csv' and 'lff' (only for Ireland) values are accepted as well
          in: query
          name: format
          required: false
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/getEuViesReportOut"
        "400":
          description: Validation failed, see JSON body response for details.
        "401":
          description: Incorrect token
      summary: Calculate EU VIES report
      tags:
        - reporting
  /api/v1/settlement/detailed_refunds:
    get:
      operationId: getDetailedRefunds
      parameters:
        - description: Output format. 'json' or 'csv'. Default value is 'json'
          in: query
          name: format
          required: false
          type: string
        - description: Comma separated list of 2-letter country codes
          in: query
          name: country_codes
          required: false
          type: string
        - description: "Take only refunds issued at or after the date. Format: yyyy-MM-dd"
          in: query
          name: date_from
          required: false
          type: string
        - description: "Take only refunds issued at or before the date. Format: yyyy-MM-dd"
          in: query
          name: date_to
          required: false
          type: string
        - description: Limit (no more than 1000, defaults to 100).
          in: query
          name: limit
          required: false
          type: number
        - description: Offset. Defaults to 0
          in: query
          name: offset
          required: false
          type: number
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/getDetailedRefundsOut"
        "400":
          description: Validation failed, see JSON body response for details.
        "401":
          description: Incorrect token
      summary: Detailed refunds
      tags:
        - settlement
  /api/v1/settlement/refunds:
    get:
      operationId: getRefunds
      parameters:
        - description: Output format. 'csv' value is accepted as well
          in: query
          name: format
          required: false
          type: string
        - description: MOSS country code, used to determine currency. If ommited, merchant default setting is used.
          in: query
          name: moss_country_code
          required: false
          type: string
        - description: Tax region key, defaults to EU for backwards compatibility.
          in: query
          name: tax_region
          required: false
          type: string
        - description: "Take only refunds issued at or after the date. Format: yyyy-MM-dd"
          in: query
          name: date_from
          required: true
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/getRefundsOut"
        "400":
          description: Validation failed, see JSON body response for details.
        "401":
          description: Incorrect token
      summary: Fetch refunds
      tags:
        - settlement
  "/api/v1/settlement/summary/{quarter}":
    get:
      operationId: getSettlementSummary
      parameters:
        - description: MOSS country code, used to determine currency. If ommited, merchant default setting is used.
          in: query
          name: moss_country_code
          required: false
          type: string
        - description: Tax region key
          in: query
          name: tax_region
          required: false
          type: string
        - description: Period start month in yyyy-MM format. Either quarter or start-month and end-month have to be provided.
          in: query
          name: start_month
          required: false
          type: string
        - description: Period end month in yyyy-MM format. Either quarter or start-month and end-month have to be provided.
          in: query
          name: end_month
          required: false
          type: string
        - description: Quarter in yyyy-MM format. If start-date and end-date are provided, quarter is ignored and should be set to 'range'.
          in: path
          name: quarter
          required: true
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/getSettlementSummaryOut"
        "400":
          description: Validation failed, see JSON body response for details.
        "401":
          description: Incorrect token
      summary: Fetch summary
      tags:
        - settlement
  "/api/v1/settlement/{quarter}":
    get:
      operationId: getSettlement
      parameters:
        - description: MOSS-assigned tax ID - if not provided, merchant's national tax number will be used. Deprecated, please use tax-id.
          in: query
          name: moss_tax_id
          required: false
          type: string
        - description: ISO 3-letter currency code, e.g. EUR or USD. If provided, all amounts will be coerced for this currency. Defaults to region's currency code.
          in: query
          name: currency_code
          required: false
          type: string
        - description: Period end month in yyyy-MM format. Either quarter or start-month and end-month have to be provided.
          in: query
          name: end_month
          required: false
          type: string
        - description: MOSS-assigned tax ID - if not provided, merchant's national tax number will be used. Deprecated, please use tax-id.
          in: query
          name: tax_id
          required: false
          type: string
        - description: Set to 'order_date' to show only refunds for the transactions in the selected reporting period. Set to 'refund_timestamp' to show refunds that were created in the selected reporting period. Do not set to use the default region's setting.
          in: query
          name: refund_date_kind_override
          required: false
          type: string
        - description: Period start month in yyyy-MM format. Either quarter or start-month and end-month have to be provided.
          in: query
          name: start_month
          required: false
          type: string
        - description: "MOSS country code, used to determine currency/region. If ommited, merchant default setting is used. Deprecated: please use tax-country-code."
          in: query
          name: moss_country_code
          required: false
          type: string
        - description: Output format. 'csv' value is accepted as well
          in: query
          name: format
          required: false
          type: string
        - description: "Tax entity country code, used to determine currency/region. "
          in: query
          name: tax_country_code
          required: false
          type: string
        - description: Quarter in yyyy-MM format. If start-date and end-date are provided, quarter is ignored and should be set to 'range'.
          in: path
          name: quarter
          required: true
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/getSettlementOut"
        "400":
          description: Validation failed, see JSON body response for details.
        "401":
          description: Incorrect token
      summary: Fetch settlement
      tags:
        - settlement
  /api/v1/stats/settlement/by_country:
    get:
      operationId: getSettlementStatsByCountry
      parameters:
        - description: Date from in yyyy-MM format.
          in: query
          name: date_from
          required: true
          type: string
        - description: Date to in yyyy-MM format.
          in: query
          name: date_to
          required: true
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/getSettlementStatsByCountryOut"
        "400":
          description: Validation failed, see JSON body response for details.
        "401":
          description: Incorrect token
      summary: Settlement by country
      tags:
        - statistics
  /api/v1/stats/settlement/by_taxation_type:
    get:
      operationId: getSettlementStatsByTaxationType
      parameters:
        - description: Date from in yyyy-MM format.
          in: query
          name: date_from
          required: true
          type: string
        - description: Date to in yyyy-MM format.
          in: query
          name: date_to
          required: true
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/getSettlementStatsByTaxationTypeOut"
        "400":
          description: Validation failed, see JSON body response for details.
        "401":
          description: Incorrect token
      summary: Settlement by tax type
      tags:
        - statistics
  /api/v1/stats/settlement/daily:
    get:
      operationId: getDailySettlementStats
      parameters:
        - description: Interval type - day, week, month.
          in: query
          name: interval
          required: true
          type: string
        - description: Date from in yyyy-MM format.
          in: query
          name: date_from
          required: true
          type: string
        - description: Date to in yyyy-MM format.
          in: query
          name: date_to
          required: true
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/getDailySettlementStatsOut"
        "400":
          description: Validation failed, see JSON body response for details.
        "401":
          description: Incorrect token
      summary: Settlement stats over time
      tags:
        - statistics
  /api/v1/stats/transactions:
    get:
      operationId: getTransactionsStats
      parameters:
        - description: Date from in yyyy-MM format.
          in: query
          name: date_from
          required: true
          type: string
        - description: Date to in yyyy-MM format.
          in: query
          name: date_to
          required: true
          type: string
        - description: Interval. Accepted values are 'day', 'week' and 'month'.
          in: query
          name: interval
          required: false
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/getTransactionsStatsOut"
        "400":
          description: Validation failed, see JSON body response for details.
        "401":
          description: Incorrect token
      summary: Transaction stats
      tags:
        - statistics
  /api/v1/stats/transactions/by_country:
    get:
      operationId: getTransactionsStatsByCountry
      parameters:
        - description: Global currency code to use for conversion - in addition to country's currency if rate is available. Conversion is indicative and based on most-recent rate from ECB.
          in: query
          name: global_currency_code
          required: false
          type: string
        - description: Date from in yyyy-MM format.
          in: query
          name: date_from
          required: true
          type: string
        - description: Date to in yyyy-MM format.
          in: query
          name: date_to
          required: true
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/getTransactionsStatsByCountryOut"
        "400":
          description: Validation failed, see JSON body response for details.
        "401":
          description: Incorrect token
      summary: Settlement by country
      tags:
        - statistics
  /api/v1/tax/calculate:
    get:
      operationId: calculateSimpleTax
      parameters:
        - description: "Product type, according to dictionary /dictionaries/product_types. "
          in: query
          name: product_type
          required: false
          type: string
        - description: Invoice address/postal_code
          in: query
          name: invoice_address_city
          required: false
          type: string
        - description: First 6 digits of buyer's credit card prefix.
          in: query
          name: buyer_credit_card_prefix
          required: false
          type: string
        - description: Currency code for transaction - e.g. EUR.
          in: query
          name: currency_code
          required: true
          type: string
        - description: Invoice address/region
          in: query
          name: invoice_address_region
          required: false
          type: string
        - description: Unit price.
          in: query
          name: unit_price
          required: false
          type: number
        - description: Quantity Defaults to 1.
          in: query
          name: quantity
          required: false
          type: number
        - description: " Buyer's tax number - EU VAT number for example. If using EU VAT number, it is possible to provide country code in it (e.g. IE1234567X) or simply use billing_country_code field for that. In the first case, if billing_country_code value was provided, it will be overwritten with country code value extracted from VAT number - but only if the VAT has been verified properly."
          in: query
          name: buyer_tax_number
          required: false
          type: string
        - description: Two-letter ISO country code, e.g. FR. Use it to force country code for tax calculation.
          in: query
          name: force_country_code
          required: false
          type: string
        - description: Order date in yyyy-MM-dd format, in merchant's timezone. If provided by the API caller, no timezone conversion is performed. Default value is current date and time. When using public token, the default value is used.
          in: query
          name: order_date
          required: false
          type: string
        - description: Amount. Required if total amount or both unit price and quantity are not provided.
          in: query
          name: amount
          required: false
          type: number
        - description: Billing two letter ISO country code.
          in: query
          name: billing_country_code
          required: false
          type: string
        - description: Invoice address/postal_code
          in: query
          name: invoice_address_postal_code
          required: false
          type: string
        - description: Total amount. Required if amount or both unit price and quantity are not provided.
          in: query
          name: total_amount
          required: false
          type: number
        - description: If the transaction is in a country supported by Taxamo, but the tax is not calculated due to merchant settings or EU B2B transaction for example.
          in: query
          name: tax_deducted
          required: false
          type: boolean
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/calculateSimpleTaxOut"
        "400":
          description: Validation failed, see JSON body response for details.
        "401":
          description: Incorrect token
      summary: Simple tax
      tags:
        - tax
    post:
      operationId: calculateTax
      parameters:
        - description: Input
          in: body
          name: input
          required: true
          schema:
            $ref: "#/definitions/calculateTaxIn"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/calculateTaxOut"
        "400":
          description: Validation failed, see JSON body response for details.
        "401":
          description: Incorrect token
      summary: Calculate tax
      tags:
        - tax
  /api/v1/tax/location/calculate:
    get:
      operationId: calculateTaxLocation
      parameters:
        - description: Billing two letter ISO country code.
          in: query
          name: billing_country_code
          required: false
          type: string
        - description: First 6 digits of buyer's credit card prefix.
          in: query
          name: buyer_credit_card_prefix
          required: false
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/calculateTaxLocationOut"
        "400":
          description: Validation failed, see JSON body response for details.
        "401":
          description: Incorrect token
      summary: Calculate location
      tags:
        - tax
  "/api/v1/tax/vat_numbers/{tax_number}/validate":
    get:
      operationId: validateTaxNumber
      parameters:
        - description: Two-letter ISO country code.
          in: query
          name: country_code
          required: false
          type: string
        - description: Tax number
          in: path
          name: tax_number
          required: true
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/validateTaxNumberOut"
        "400":
          description: Validation failed, see JSON body response for details.
        "401":
          description: Incorrect token
      summary: Validate VAT number
      tags:
        - tax
  /api/v1/transactions:
    get:
      operationId: listTransactions
      parameters:
        - description: Filtering expression
          in: query
          name: filter_text
          required: false
          type: string
        - description: Offset
          in: query
          name: offset
          required: false
          type: integer
        - description: Return only transactions with a note field set.
          in: query
          name: has_note
          required: false
          type: boolean
        - description: Taxamo provided transaction key or custom id
          in: query
          name: key_or_custom_id
          required: false
          type: string
        - description: Three letter ISO currency code.
          in: query
          name: currency_code
          required: false
          type: string
        - description: Order date to in yyyy-MM-dd format.
          in: query
          name: order_date_to
          required: false
          type: string
        - description: If true, results are sorted in descending order.
          in: query
          name: sort_reverse
          required: false
          type: boolean
        - description: Limit (no more than 1000, defaults to 100).
          in: query
          name: limit
          required: false
          type: integer
        - description: Transaction invoice number.
          in: query
          name: invoice_number
          required: false
          type: string
        - description: Comma separated list of two letter ISO tax country codes.
          in: query
          name: tax_country_codes
          required: false
          type: string
        - description: Comma separated list of of transaction statuses. 'N' - unconfirmed transaction, 'C' - confirmed transaction.
          in: query
          name: statuses
          required: false
          type: string
        - description: Taxamo provided original transaction key
          in: query
          name: original_transaction_key
          required: false
          type: string
        - description: Order date from in yyyy-MM-dd format.
          in: query
          name: order_date_from
          required: false
          type: string
        - description: Return only transactions with total amount greater than given number. Transactions with total amount equal to a given number (e.g. 0) are not returned.
          in: query
          name: total_amount_greater_than
          required: false
          type: string
        - description: Output format - supports 'csv' value for this operation.
          in: query
          name: format
          required: false
          type: string
        - description: Return only transactions with total amount less than a given number. Transactions with total amount equal to a given number (e.g. 1) are not returned.
          in: query
          name: total_amount_less_than
          required: false
          type: string
        - description: Two letter ISO tax country code.
          in: query
          name: tax_country_code
          required: false
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/listTransactionsOut"
        "400":
          description: Validation failed, see JSON body response for details.
        "401":
          description: Incorrect token
      summary: Browse transactions
      tags:
        - transactions
    post:
      operationId: createTransaction
      parameters:
        - description: Input
          in: body
          name: input
          required: true
          schema:
            $ref: "#/definitions/createTransactionIn"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/createTransactionOut"
        "400":
          description: Validation failed, see JSON body response for details.
        "401":
          description: Incorrect token
      summary: Store transaction
      tags:
        - transactions
  "/api/v1/transactions/{key}":
    delete:
      operationId: cancelTransaction
      parameters:
        - description: Transaction key
          in: path
          name: key
          required: true
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/cancelTransactionOut"
        "400":
          description: Validation failed, see JSON body response for details.
        "401":
          description: Incorrect token
      summary: Delete transaction
      tags:
        - transactions
    get:
      operationId: getTransaction
      parameters:
        - description: Transaction key
          in: path
          name: key
          required: true
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/getTransactionOut"
        "400":
          description: Validation failed, see JSON body response for details.
        "401":
          description: Incorrect token
      summary: Retrieve transaction data.
      tags:
        - transactions
    put:
      operationId: updateTransaction
      parameters:
        - description: Transaction key.
          in: path
          name: key
          required: true
          type: string
        - description: Input
          in: body
          name: input
          required: true
          schema:
            $ref: "#/definitions/updateTransactionIn"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/updateTransactionOut"
        "400":
          description: Validation failed, see JSON body response for details.
        "401":
          description: Incorrect token
      summary: Update transaction
      tags:
        - transactions
  "/api/v1/transactions/{key}/confirm":
    post:
      operationId: confirmTransaction
      parameters:
        - description: Transaction key.
          in: path
          name: key
          required: true
          type: string
        - description: Input
          in: body
          name: input
          required: true
          schema:
            $ref: "#/definitions/confirmTransactionIn"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/confirmTransactionOut"
        "400":
          description: Validation failed, see JSON body response for details.
        "401":
          description: Incorrect token
      summary: Confirm transaction
      tags:
        - transactions
  "/api/v1/transactions/{key}/invoice/refunds/{refund_note_number}/send_email":
    post:
      operationId: emailRefund
      parameters:
        - description: Transaction key.
          in: path
          name: key
          required: true
          type: string
        - description: Refund note id.
          in: path
          name: refund_note_number
          required: true
          type: string
        - description: Input
          in: body
          name: input
          required: true
          schema:
            $ref: "#/definitions/emailRefundIn"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/emailRefundOut"
        "400":
          description: Validation failed, see JSON body response for details.
        "401":
          description: Incorrect token
      summary: Email credit note
      tags:
        - invoices
  "/api/v1/transactions/{key}/invoice/send_email":
    post:
      operationId: emailInvoice
      parameters:
        - description: Transaction key.
          in: path
          name: key
          required: true
          type: string
        - description: Input
          in: body
          name: input
          required: true
          schema:
            $ref: "#/definitions/emailInvoiceIn"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/emailInvoiceOut"
        "400":
          description: Validation failed, see JSON body response for details.
        "401":
          description: Incorrect token
      summary: Email invoice
      tags:
        - invoices
  "/api/v1/transactions/{key}/payments":
    get:
      operationId: listPayments
      parameters:
        - description: Max record count (no more than 100, defaults to 10).
          in: query
          name: limit
          required: false
          type: string
        - description: How many records need to be skipped, defaults to 0.
          in: query
          name: offset
          required: false
          type: string
        - description: Transaction key.
          in: path
          name: key
          required: true
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/listPaymentsOut"
        "400":
          description: Validation failed, see JSON body response for details.
        "401":
          description: Incorrect token
      summary: List payments
      tags:
        - payments
    post:
      operationId: createPayment
      parameters:
        - description: Transaction key.
          in: path
          name: key
          required: true
          type: string
        - description: Input
          in: body
          name: input
          required: true
          schema:
            $ref: "#/definitions/createPaymentIn"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/createPaymentOut"
        "400":
          description: Validation failed, see JSON body response for details.
        "401":
          description: Incorrect token
      summary: Register a payment
      tags:
        - payments
  "/api/v1/transactions/{key}/payments/capture":
    post:
      operationId: capturePayment
      parameters:
        - description: Transaction key.
          in: path
          name: key
          required: true
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/capturePaymentOut"
        "400":
          description: Validation failed, see JSON body response for details.
        "401":
          description: Incorrect token
      summary: Capture payment
      tags:
        - payments
  "/api/v1/transactions/{key}/refunds":
    get:
      operationId: listRefunds
      parameters:
        - description: Transaction key.
          in: path
          name: key
          required: true
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/listRefundsOut"
        "400":
          description: Validation failed, see JSON body response for details.
        "401":
          description: Incorrect token
      summary: Get transaction refunds
      tags:
        - refunds
    post:
      operationId: createRefund
      parameters:
        - description: Transaction key.
          in: path
          name: key
          required: true
          type: string
        - description: Input
          in: body
          name: input
          required: true
          schema:
            $ref: "#/definitions/createRefundIn"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/createRefundOut"
        "400":
          description: Validation failed, see JSON body response for details.
        "401":
          description: Incorrect token
      summary: Create a refund
      tags:
        - refunds
  "/api/v1/transactions/{key}/unconfirm":
    post:
      operationId: unconfirmTransaction
      parameters:
        - description: Transaction key.
          in: path
          name: key
          required: true
          type: string
        - description: Input
          in: body
          name: input
          required: true
          schema:
            $ref: "#/definitions/unconfirmTransactionIn"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/unconfirmTransactionOut"
        "400":
          description: Validation failed, see JSON body response for details.
        "401":
          description: Incorrect token
      summary: Un-confirm the transaction
      tags:
        - transactions
  /api/v1/verification/sms:
    post:
      operationId: createSMSToken
      parameters:
        - description: Input
          in: body
          name: input
          required: true
          schema:
            $ref: "#/definitions/createSMSTokenIn"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/createSMSTokenOut"
        "400":
          description: Validation failed, see JSON body response for details.
        "401":
          description: Incorrect token
      summary: Create SMS token
      tags:
        - verification
  "/api/v1/verification/sms/{token}":
    get:
      operationId: verifySMSToken
      parameters:
        - description: Provided token.
          in: path
          name: token
          required: true
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/verifySMSTokenOut"
        "400":
          description: Validation failed, see JSON body response for details.
        "401":
          description: Incorrect token
      summary: Verify SMS token
      tags:
        - verification
definitions:
  C:
    properties:
      day:
        description: Date for stats in yyyy-MM-dd format.
        type: string
      day_raw:
        description: Date for stats in yyyy-MM-dd'T'hh:mm:ss'Z' format.
        type: string
      status:
        description: Transaction status (C or N).
        type: string
      value:
        description: Transaction count.
        type: number
    type: object
  N:
    properties:
      day:
        description: Date for stats in yyyy-MM-dd format.
        type: string
      day_raw:
        description: Date for stats in yyyy-MM-dd'T'hh:mm:ss'Z' format.
        type: string
      status:
        description: Transaction status (C or N).
        type: string
      value:
        description: Transaction count.
        type: number
    type: object
  additional_currencies:
    properties:
      invoice:
        $ref: "#/definitions/additional_currency"
        description: Invoicing currency information.
    type: object
  additional_currency:
    properties:
      amount:
        description: Amount (w/o TAX) in designated currency.
        type: number
      currency_code:
        description: 3-letter ISO currency code.
        type: string
      fx_rate:
        description: Foreign exchange rate used in calculation
        type: number
      tax_amount:
        description: Tax amount in designated currency.
        type: number
      total_amount:
        description: Total amount in designated currency.
        type: number
    type: object
  by_country:
    properties:
      currency_code:
        description: Three-letter ISO currency code.
        type: string
      tax_country_code:
        description: Two letter ISO country code.
        type: string
      tax_country_name:
        description: Country name
        type: string
      value:
        description: Tax amount
        type: number
    type: object
  by_status:
    properties:
      C:
        description: Confirmed transactions
        items:
          $ref: "#/definitions/C"
        type: array
      N:
        description: New transactions
        items:
          $ref: "#/definitions/N"
        type: array
    type: object
  by_taxation_type:
    properties:
      deducted_count:
        description: Number of tax deducted transactions.
        type: number
      eu_b2b:
        description: Total EU B2B transaction count.
        type: integer
      eu_taxed:
        description: Total EU Taxed transaction count.
        type: integer
      taxed_count:
        description: Number of taxed transactions.
        type: number
      transactions_count:
        description: Total number of transactions
        type: number
    type: object
  calculateSimpleTaxIn:
    properties:
      amount:
        description: Amount. Required if total amount or both unit price and quantity are not provided.
        type: number
      billing_country_code:
        description: Billing two letter ISO country code.
        type: string
      buyer_credit_card_prefix:
        description: First 6 digits of buyer's credit card prefix.
        type: string
      buyer_tax_number:
        description: " Buyer's tax number - EU VAT number for example. If using EU VAT number, it is possible to provide country code in it (e.g. IE1234567X) or simply use billing_country_code field for that. In the first case, if billing_country_code value was provided, it will be overwritten with country code value extracted from VAT number - but only if the VAT has been verified properly."
        type: string
      currency_code:
        description: Currency code for transaction - e.g. EUR.
        type: string
      force_country_code:
        description: Two-letter ISO country code, e.g. FR. Use it to force country code for tax calculation.
        type: string
      invoice_address_city:
        description: Invoice address/postal_code
        type: string
      invoice_address_postal_code:
        description: Invoice address/postal_code
        type: string
      invoice_address_region:
        description: Invoice address/region
        type: string
      order_date:
        description: Order date in yyyy-MM-dd format, in merchant's timezone. If provided by the API caller, no timezone conversion is performed. Default value is current date and time. When using public token, the default value is used.
        type: string
      product_type:
        description: "Product type, according to dictionary /dictionaries/product_types. "
        type: string
      quantity:
        description: Quantity Defaults to 1.
        type: number
      tax_deducted:
        description: If the transaction is in a country supported by Taxamo, but the tax is not calculated due to merchant settings or EU B2B transaction for example.
        type: boolean
      total_amount:
        description: Total amount. Required if amount or both unit price and quantity are not provided.
        type: number
      unit_price:
        description: Unit price.
        type: number
    required:
      - currency_code
    type: object
  calculateSimpleTaxOut:
    properties:
      storage_required_fields:
        description: Fields required for transaction storage (can be added later - it's up to merchant software). Depends on the region/transaction type.
        items:
          $ref: "#/definitions/storage_required_fields"
        type: array
      tax_required_fields:
        description: Fields required for tax calculation. Depends on the region/transaction type.
        items:
          $ref: "#/definitions/tax_required_fields"
        type: array
      transaction:
        $ref: "#/definitions/transaction"
        description: Transaction data
    type: object
  calculateTaxIn:
    properties:
      transaction:
        $ref: "#/definitions/input_transaction"
        description: Transaction data.
    required:
      - transaction
    type: object
  calculateTaxLocationIn:
    properties:
      billing_country_code:
        description: Billing two letter ISO country code.
        type: string
      buyer_credit_card_prefix:
        description: First 6 digits of buyer's credit card prefix.
        type: string
    type: object
  calculateTaxLocationOut:
    properties:
      billing_country_code:
        description: Billing two letter ISO country code.
        type: string
      buyer_credit_card_prefix:
        description: First 6 digits of buyer's credit card prefix.
        type: string
      buyer_ip:
        description: IP address of the buyer in dotted decimal (IPv4) or text format (IPv6).
        type: string
      countries:
        $ref: "#/definitions/countries"
        description: Map of countries calculated from evidence provided. This value is not stored and is available only upon tax calculation.
      evidence:
        $ref: "#/definitions/evidence"
        description: Tax country of residence evidence.
      tax_country_code:
        description: Two-letter ISO country code, e.g. FR. This code applies to detected/set country for transaction, but can be set using manual mode.
        type: string
      tax_deducted:
        description: If the transaction is in a country supported by Taxamo, but the tax is not calculated due to merchant settings or EU B2B transaction for example.
        type: boolean
      tax_supported:
        description: Is tax calculation supported for a detected tax location?
        type: boolean
    type: object
  calculateTaxOut:
    properties:
      storage_required_fields:
        description: Fields required for transaction storage (can be added later - it's up to merchant software). Depends on the region/transaction type.
        items:
          $ref: "#/definitions/storage_required_fields"
        type: array
      tax_required_fields:
        description: Fields required for tax calculation. Depends on the region/transaction type.
        items:
          $ref: "#/definitions/tax_required_fields"
        type: array
      transaction:
        $ref: "#/definitions/transaction"
        description: Transaction data
    type: object
  cancelTransactionOut:
    properties:
      success:
        description: Was operation successful?
        type: boolean
    type: object
  capturePaymentOut:
    properties:
      success:
        description: Was the operation successful?
        type: boolean
    type: object
  confirmTransactionIn:
    properties:
      transaction:
        $ref: "#/definitions/input_transaction_update"
        description: Transaction.
    type: object
  confirmTransactionOut:
    properties:
      storage_required_fields:
        description: Fields required for transaction storage (can be added later - it's up to merchant software). Depends on the region/transaction type.
        items:
          $ref: "#/definitions/storage_required_fields"
        type: array
      tax_required_fields:
        description: Fields required for tax calculation. Depends on the region/transaction type.
        items:
          $ref: "#/definitions/tax_required_fields"
        type: array
      transaction:
        $ref: "#/definitions/transaction"
        description: Transaction data
    type: object
  countries:
    properties:
      by_2003_rules:
        $ref: "#/definitions/country_schema"
        description: Used when merchant uses 2003 EU VAT rules.
      by_billing:
        $ref: "#/definitions/country_schema"
        description: Country detected by billing country code
      by_cc:
        $ref: "#/definitions/country_schema"
        description: Country detected by credit card number prefix
      by_ip:
        $ref: "#/definitions/country_schema"
        description: Country detected by IP
      by_tax_number:
        $ref: "#/definitions/country_schema"
        description: Country detected from EU TAX number
      by_token:
        $ref: "#/definitions/country_schema"
        description: Country detected from SMS token
      detected:
        $ref: "#/definitions/country_schema"
        description: Country detected from other evidence
      forced:
        $ref: "#/definitions/country_schema"
        description: Country forced by paramters
      guessed_from_ip:
        $ref: "#/definitions/country_schema"
        description: Country guessed from IP due to lack of other evidence
      other_commercially_relevant_info:
        $ref: "#/definitions/country_schema"
        description: Additional evidence held by the merchant.
      self_declaration:
        $ref: "#/definitions/country_schema"
        description: Self declared country as evidence.
    type: object
  country:
    properties:
      callingCode:
        description: List of phone number calling codes.
        items:
          type: string
        type: array
      cca2:
        description: Two letter ISO country code.
        type: string
      cca3:
        description: Three letter ISO country code.
        type: string
      ccn3:
        description: Country ISO 3-digit code.
        type: string
      code:
        description: Two letter ISO country code.
        type: string
      code_long:
        description: Three letter ISO country code.
        type: string
      codenum:
        description: Country ISO 3-digit code.
        type: string
      currency:
        description: List of currencies.
        items:
          type: string
        type: array
      name:
        description: Country name.
        type: string
      tax_number_country_code:
        description: VAT number country code. Important for Greece.
        type: string
      tax_region:
        description: Tax region code - e.g. EU, US, NO, JP...
        type: string
      tax_supported:
        description: True if tax calculation supported for this country.
        type: boolean
    type: object
  country_schema:
    properties:
      callingCode:
        description: List of phone number calling codes.
        items:
          type: string
        type: array
      cca2:
        description: Two letter ISO country code.
        type: string
      cca3:
        description: Three letter ISO country code.
        type: string
      ccn3:
        description: Country ISO 3-digit code.
        type: string
      code:
        description: Two letter ISO country code.
        type: string
      code_long:
        description: Three letter ISO country code.
        type: string
      codenum:
        description: Country ISO 3-digit code.
        type: string
      currency:
        description: List of currencies.
        items:
          type: string
        type: array
      name:
        description: Country name.
        type: string
      tax_number_country_code:
        description: VAT number country code. Important for Greece.
        type: string
      tax_region:
        description: Tax region code - e.g. EU, US, NO, JP...
        type: string
      tax_supported:
        description: True if tax calculation supported for this country.
        type: boolean
    type: object
  createPaymentIn:
    properties:
      amount:
        description: Amount that has been paid. Use negative value to register refunds.
        type: number
      payment_information:
        description: Additional payment information.
        type: string
      payment_timestamp:
        description: When the payment was received in yyyy-MM-dd'T'HH:mm:ss(.SSS)'Z' format (24 hour, UTC timezone). Defaults to current date and time.
        type: string
    required:
      - amount
    type: object
  createPaymentOut:
    properties:
      success:
        description: Was the operation successful?
        type: boolean
    type: object
  createRefundIn:
    properties:
      amount:
        description: Amount (without tax) to be refunded. Either amount or total amount is required. In case of line key and custom id missing, only total_amount can be used.
        type: number
      custom_id:
        description: Line custom identifier. If neither line key or custom id is provided, the refund amount will be assigned to lines in order.
        type: string
      line_key:
        description: Line identifier. If neither line key or custom id is provided, the refund amount will be assigned to lines in order.
        type: string
      refund_reason:
        description: Refund reason, displayed on the credit note.
        type: string
      total_amount:
        description: Total amount, including tax, to be refunded. Either amount or total amount is required. In case of line key and custom id missing, only total_amount can be used.
        type: number
    type: object
  createRefundOut:
    properties:
      refunded_tax_amount:
        description: Total tax amount, that was refunded for this line.
        type: number
      refunded_total_amount:
        description: Total amount, including tax, that was refunded for this line.
        type: number
      tax_amount:
        description: Calculated tax amount, that was refunded in this call.
        type: number
      total_amount:
        description: Total amount, including tax, that was refunded in this call.
        type: number
    type: object
  createSMSTokenIn:
    properties:
      country_code:
        description: Two letter ISO country code.
        type: string
      recipient:
        description: Recipient phone number.
        type: string
    required:
      - country_code
      - recipient
    type: object
  createSMSTokenOut:
    properties:
      success:
        description: Always set to true. Success means that the message has been queued for delivery. In some cases message may be undelivered at the end, e.g. mobile number is blacklisted. API errors are signalled with appropriate error codes.
        type: boolean
    type: object
  createTransactionIn:
    properties:
      manual_mode:
        description: Use manual mode, bypassing country detection. Only allowed with private token. This flag allows to use original_transaction_key field
        type: boolean
      transaction:
        $ref: "#/definitions/input_transaction"
        description: Transaction.
    required:
      - transaction
    type: object
  createTransactionOut:
    properties:
      storage_required_fields:
        description: Fields required for transaction storage (can be added later - it's up to merchant software). Depends on the region/transaction type.
        items:
          $ref: "#/definitions/storage_required_fields"
        type: array
      tax_required_fields:
        description: Fields required for tax calculation. Depends on the region/transaction type.
        items:
          $ref: "#/definitions/tax_required_fields"
        type: array
      transaction:
        $ref: "#/definitions/transaction"
        description: Transaction data
    type: object
  currency_schema:
    properties:
      code:
        description: Currency 3-letter ISO code.
        type: string
      description:
        description: Currency description.
        type: string
      isocode:
        description: Currency 3-letter ISO code.
        type: string
      isonum:
        description: Currency iso numeric code.
        type: integer
      minorunits:
        description: Number of minor units for currency.
        type: integer
    type: object
  custom_fields:
    properties:
      key:
        description: Field's key.
        type: string
      value:
        description: Field's value.
        type: string
    type: object
  emailInvoiceIn:
    properties:
      buyer_email:
        description: Email to send the invoice. If not provided, transaction.buyer_email will be used.
        type: string
    type: object
  emailInvoiceOut:
    properties:
      success:
        description: Was operation successful?
        type: boolean
    type: object
  emailRefundIn:
    properties:
      buyer_email:
        description: Email to send the credit note/refund note. If not provided, transaction.buyer_email will be used.
        type: string
    type: object
  emailRefundOut:
    properties:
      success:
        description: Was operation successful?
        type: boolean
    type: object
  evidence:
    properties:
      by_2003_rules:
        $ref: "#/definitions/evidence_schema"
        description: Used when merchant uses 2003 EU VAT rules.
      by_billing:
        $ref: "#/definitions/evidence_schema"
        description: Country detected by billing country code
      by_cc:
        $ref: "#/definitions/evidence_schema"
        description: Country detected by credit card number prefix
      by_ip:
        $ref: "#/definitions/evidence_schema"
        description: Country detected by IP
      by_payment_method:
        $ref: "#/definitions/evidence_schema"
        description: Country detected by payment method.
      by_tax_number:
        $ref: "#/definitions/evidence_schema"
        description: Country detected from EU TAX number
      by_token:
        $ref: "#/definitions/evidence_schema"
        description: Country detected from SMS token
      forced:
        $ref: "#/definitions/evidence_schema"
        description: Country forced by paramters
      guessed_from_ip:
        $ref: "#/definitions/evidence_schema"
        description: Country guessed from IP due to lack of other evidence
      other_commercially_relevant_info:
        $ref: "#/definitions/evidence_schema"
        description: Additional evidence held by the merchant. Can be used only with a private token.
      self_declaration:
        $ref: "#/definitions/evidence_schema"
        description: Self declared country as evidence. Requires merchant setting to be active.
    type: object
  evidence_schema:
    properties:
      evidence_type:
        description: Type of evidence.
        type: string
      evidence_value:
        description: Value provided as evidence - for example IP address.
        type: string
      resolved_country_code:
        description: Country code that was resolved using this evidence.
        type: string
      used:
        description: If the evidence was used to match the actual country.
        type: boolean
    type: object
  getCountriesDictIn:
    properties:
      tax_supported:
        description: Should only countries with tax supported be listed?
        type: boolean
    type: object
  getCountriesDictOut:
    properties:
      dictionary:
        description: Countries dictionary.
        items:
          $ref: "#/definitions/country_schema"
        type: array
    type: object
  getCurrenciesDictOut:
    properties:
      dictionary:
        description: Currency dictionary.
        items:
          $ref: "#/definitions/currency_schema"
        type: array
    type: object
  getDailySettlementStatsIn:
    properties:
      date_from:
        description: Date from in yyyy-MM format.
        type: string
      date_to:
        description: Date to in yyyy-MM format.
        type: string
      interval:
        description: Interval type - day, week, month.
        type: string
    required:
      - date_from
      - date_to
      - interval
    type: object
  getDailySettlementStatsOut:
    properties:
      settlement_daily:
        description: Daily settlement stats
        items:
          $ref: "#/definitions/settlement_daily_stats_schema"
        type: array
    type: object
  getDetailedRefundsIn:
    properties:
      country_codes:
        description: Comma separated list of 2-letter country codes
        type: string
      date_from:
        description: "Take only refunds issued at or after the date. Format: yyyy-MM-dd"
        type: string
      date_to:
        description: "Take only refunds issued at or before the date. Format: yyyy-MM-dd"
        type: string
      format:
        description: Output format. 'json' or 'csv'. Default value is 'json'
        type: string
      limit:
        description: Limit (no more than 1000, defaults to 100).
        type: number
      offset:
        description: Offset. Defaults to 0
        type: number
    type: object
  getDetailedRefundsOut:
    properties:
      report:
        description: Detailed refunds report
        items:
          $ref: "#/definitions/report"
        type: array
    type: object
  getDomesticSummaryReportIn:
    properties:
      country_code:
        description: ISO 2-letter country code which will be used for determining which country is domestic.
        type: string
      currency_code:
        description: ISO 3-letter currency code, e.g. EUR or USD. Defaults to the one assigned to MOSS calculations for a given country code.
        type: string
      end_month:
        description: Period end month in yyyy-MM format.
        type: string
      format:
        description: Output format. 'xml' and 'csv' values are accepted. Default format - json
        type: string
      fx_date_type:
        description: Which date should be used for FX.
        type: string
      start_month:
        description: Period start month in yyyy-MM format.
        type: string
    required:
      - country_code
      - end_month
      - start_month
    type: object
  getDomesticSummaryReportOut:
    properties:
      currency_code:
        description: Three-letter ISO currency code.
        type: string
      domestic_refunds_amount:
        description: Domestic sales refunds amount.
        type: number
      domestic_refunds_tax_amount:
        description: Domestic sales refunds tax amout.
        type: number
      domestic_sales_amount:
        description: Domestic sales amount.
        type: number
      domestic_tax_amount:
        description: Domestic sales tax amout.
        type: number
      end_date:
        description: Period end date in yyyy-MM-dd'T'hh:mm:ss'Z' format.
        type: string
      eu_tax_deducted_refunds:
        description: EU deducted tax sales.
        type: number
      eu_tax_deducted_sales:
        description: EU deducted tax sales.
        type: number
      global_refunds_amount:
        description: Global sales refunds amount. This includes refunds from domestic country too.
        type: number
      global_refunds_tax_amount:
        description: Global sales refunds amount. This includes refunds from domestic country too.
        type: number
      global_sales_amount:
        description: Global sales amount. This includes sales from domestic country too.
        type: number
      global_sales_tax_amount:
        description: Global sales amount. This includes sales from domestic country too.
        type: number
      start_date:
        description: Period start date in yyyy-MM-dd'T'hh:mm:ss'Z' format.
        type: string
    type: object
  getEuViesReportIn:
    properties:
      currency_code:
        description: ISO 3-letter currency code, e.g. EUR or USD. Defaults to the one assigned to MOSS calculations for a given country code.
        type: string
      end_month:
        description: Period end month in yyyy-MM format.
        type: string
      eu_country_code:
        description: ISO 2-letter country code which will be used for determining which country is domestic.
        type: string
      format:
        description: Output format. 'xml', 'csv' and 'lff' (only for Ireland) values are accepted as well
        type: string
      fx_date_type:
        description: Which date should be used for FX.
        type: string
      lff_sequence_number:
        description: Sequence number used to generate report in Large Filer Format. If not specified then '0000000001' will be used.
        type: string
      period_length:
        description: Length of report period. 'month', 'quarter' and 'year' values are accepted. Required only if Large Filer Format is requested.
        type: string
      start_month:
        description: Period start month in yyyy-MM format.
        type: string
      tax_id:
        description: MOSS-assigned tax ID - if not provided, merchant's national tax number will be used.
        type: string
      transformation:
        description: Which transformation should be applied. Please note that transformation will be applied only for xml and csv formats.
        type: string
    required:
      - end_month
      - eu_country_code
      - start_month
    type: object
  getEuViesReportOut:
    properties:
      currency_code:
        description: Three-letter ISO currency code.
        type: string
      end_date:
        description: Period end date in yyyy-MM-dd'T'hh:mm:ss'Z' format.
        type: string
      report:
        description: Settlement report.
        items:
          $ref: "#/definitions/report"
        type: array
      start_date:
        description: Period start date in yyyy-MM-dd'T'hh:mm:ss'Z' format.
        type: string
    type: object
  getProductTypesDictOut:
    properties:
      dictionary:
        description: Product type dictionary.
        items:
          $ref: "#/definitions/product_type_schema"
        type: array
    type: object
  getRefundsIn:
    properties:
      date_from:
        description: "Take only refunds issued at or after the date. Format: yyyy-MM-dd"
        type: string
      format:
        description: Output format. 'csv' value is accepted as well
        type: string
      moss_country_code:
        description: MOSS country code, used to determine currency. If ommited, merchant default setting is used.
        type: string
      tax_region:
        description: Tax region key, defaults to EU for backwards compatibility.
        type: string
    required:
      - date_from
    type: object
  getRefundsOut:
    properties:
      report:
        description: Refunds report.
        items:
          $ref: "#/definitions/report"
        type: array
    type: object
  getSettlementIn:
    properties:
      currency_code:
        description: ISO 3-letter currency code, e.g. EUR or USD. If provided, all amounts will be coerced for this currency. Defaults to region's currency code.
        type: string
      end_month:
        description: Period end month in yyyy-MM format. Either quarter or start-month and end-month have to be provided.
        type: string
      format:
        description: Output format. 'csv' value is accepted as well
        type: string
      moss_country_code:
        description: "MOSS country code, used to determine currency/region. If ommited, merchant default setting is used. Deprecated: please use tax-country-code."
        type: string
      moss_tax_id:
        description: MOSS-assigned tax ID - if not provided, merchant's national tax number will be used. Deprecated, please use tax-id.
        type: string
      refund_date_kind_override:
        description: Set to 'order_date' to show only refunds for the transactions in the selected reporting period. Set to 'refund_timestamp' to show refunds that were created in the selected reporting period. Do not set to use the default region's setting.
        type: string
      start_month:
        description: Period start month in yyyy-MM format. Either quarter or start-month and end-month have to be provided.
        type: string
      tax_country_code:
        description: "Tax entity country code, used to determine currency/region. "
        type: string
      tax_id:
        description: MOSS-assigned tax ID - if not provided, merchant's national tax number will be used. Deprecated, please use tax-id.
        type: string
    type: object
  getSettlementOut:
    properties:
      end_date:
        description: Period end date in yyyy-MM-dd'T'hh:mm:ss'Z' format.
        type: string
      fx_rate_date:
        description: "Date of ECB FX rate used for conversions in yyyy-MM-dd'T'hh:mm:ss'Z' format. Applies to tax regions where "
        type: string
      indicative:
        description: If the quarter isn't closed yet, tax amount is indicative, as we cannot determine FX rate or all transactions yet.
        type: boolean
      report:
        description: Settlement report.
        items:
          $ref: "#/definitions/report"
        type: array
      start_date:
        description: Period start date in yyyy-MM-dd'T'hh:mm:ss'Z' format.
        type: string
    type: object
  getSettlementStatsByCountryIn:
    properties:
      date_from:
        description: Date from in yyyy-MM format.
        type: string
      date_to:
        description: Date to in yyyy-MM format.
        type: string
    required:
      - date_from
      - date_to
    type: object
  getSettlementStatsByCountryOut:
    properties:
      by_country:
        description: Settlement stats.
        items:
          $ref: "#/definitions/by_country"
        type: array
    type: object
  getSettlementStatsByTaxationTypeIn:
    properties:
      date_from:
        description: Date from in yyyy-MM format.
        type: string
      date_to:
        description: Date to in yyyy-MM format.
        type: string
    required:
      - date_from
      - date_to
    type: object
  getSettlementStatsByTaxationTypeOut:
    properties:
      by_taxation_type:
        $ref: "#/definitions/by_taxation_type"
        description: Settlements stats by taxation type.
    type: object
  getSettlementSummaryIn:
    properties:
      end_month:
        description: Period end month in yyyy-MM format. Either quarter or start-month and end-month have to be provided.
        type: string
      moss_country_code:
        description: MOSS country code, used to determine currency. If ommited, merchant default setting is used.
        type: string
      start_month:
        description: Period start month in yyyy-MM format. Either quarter or start-month and end-month have to be provided.
        type: string
      tax_region:
        description: Tax region key
        type: string
    type: object
  getSettlementSummaryOut:
    properties:
      summary:
        $ref: "#/definitions/summary"
        description: Settlement summary.
    type: object
  getTransactionOut:
    properties:
      storage_required_fields:
        description: Fields required for transaction storage (can be added later - it's up to merchant software). Depends on the region/transaction type.
        items:
          $ref: "#/definitions/storage_required_fields"
        type: array
      tax_required_fields:
        description: Fields required for tax calculation. Depends on the region/transaction type.
        items:
          $ref: "#/definitions/tax_required_fields"
        type: array
      transaction:
        $ref: "#/definitions/transaction"
        description: Transaction data
    type: object
  getTransactionsStatsByCountryIn:
    properties:
      date_from:
        description: Date from in yyyy-MM format.
        type: string
      date_to:
        description: Date to in yyyy-MM format.
        type: string
      global_currency_code:
        description: Global currency code to use for conversion - in addition to country's currency if rate is available. Conversion is indicative and based on most-recent rate from ECB.
        type: string
    required:
      - date_from
      - date_to
    type: object
  getTransactionsStatsByCountryOut:
    properties:
      by_country:
        description: Settlement stats.
        items:
          $ref: "#/definitions/by_country"
        type: array
    type: object
  getTransactionsStatsIn:
    properties:
      date_from:
        description: Date from in yyyy-MM format.
        type: string
      date_to:
        description: Date to in yyyy-MM format.
        type: string
      interval:
        description: Interval. Accepted values are 'day', 'week' and 'month'.
        type: string
    required:
      - date_from
      - date_to
    type: object
  getTransactionsStatsOut:
    properties:
      by_status:
        $ref: "#/definitions/by_status"
        description: Transaction stats grouped by status.
    type: object
  input_transaction:
    properties:
      additional_currencies:
        $ref: "#/definitions/additional_currencies"
        description: Additional currency information - can be used to receive additional information about invoice in another currency.
      billing_country_code:
        description: Billing two letter ISO country code.
        type: string
      buyer_credit_card_prefix:
        description: First 6 digits of buyer's credit card prefix.
        type: string
      buyer_email:
        description: Buyer's declared email address.
        type: string
      buyer_ip:
        description: IP address of the buyer in dotted decimal (IPv4) or text format (IPv6).
        type: string
      buyer_name:
        description: Buyer's name - first name and last name or company name.
        type: string
      buyer_tax_number:
        description: " Buyer's tax number - EU VAT number for example. If using EU VAT number, it is possible to provide country code in it (e.g. IE1234567X) or simply use billing_country_code field for that. In the first case, if billing_country_code value was provided, it will be overwritten with country code value extracted from VAT number - but only if the VAT has been verified properly."
        type: string
      comments:
        description: Additional information about the transaction - for example if the evidence has been amended.
        type: string
      currency_code:
        description: Currency code for transaction - e.g. EUR.
        type: string
      custom_data:
        description: Custom data related to transaction.
        type: string
      custom_fields:
        description: Custom fields, stored as key-value pairs. This property is not processed and used mostly with Taxamo-built helpers.
        items:
          $ref: "#/definitions/custom_fields"
        type: array
      custom_id:
        description: Custom identifier provided upon transaction creation.
        type: string
      customer_id:
        description: Free-form field for storing customer id.
        type: string
      description:
        description: Transaction description.
        type: string
      evidence:
        $ref: "#/definitions/evidence"
        description: Tax country of residence evidence.
      force_country_code:
        description: Two-letter ISO country code, e.g. FR. Use it to force country code for tax calculation.
        type: string
      invoice_address:
        $ref: "#/definitions/invoice_address"
        description: Invoice address.
      invoice_date:
        description: Invoice date of issue.
        type: string
      invoice_number:
        description: Invoice number.
        type: string
      invoice_place:
        description: Invoice place of issue.
        type: string
      note:
        description: Additional note related to transaction state - for example if the transaction was created in a 'catch-all' mode or the VAT number re-check for subscriptions has failed.
        type: string
      order_date:
        description: Order date in yyyy-MM-dd format, in merchant's timezone. If provided by the API caller, no timezone conversion is performed. Default value is current date and time. When using public token, the default value is used.
        type: string
      original_transaction_key:
        description: Use data and evidence from original transaction. Tax will be re-calculated, but evidence won't be re-checked. This parameter is taken into account only when 'manual' flag is raised.
        type: string
      status:
        description: "Transaction status: 'N' - new, 'C' - confirmed. Can use 'C' in store-transaction! with private-token to create confirmed transaction, otherwise 'N' is default status. Not applicable for update-transaction!."
        type: string
      sub_account_id:
        description: Sub account identifier.
        type: string
      supply_date:
        description: Supply date in yyyy-MM-dd format.
        type: string
      tax_country_code:
        description: Two-letter ISO country code, e.g. FR. This code applies to detected/set country for transaction, but can be set using manual mode.
        type: string
      tax_data:
        $ref: "#/definitions/tax_data_schema"
        description: Tax additional information - e.g. US sales tax exemption certificate data.
      tax_deducted:
        description: True if the transaction is deducted from tax and no tax is applied (it is untaxed). Either set automatically when VAT number validates with VIES correctly, but can also be provided in manual mode.
        type: boolean
      transaction_lines:
        description: Transaction lines.
        items:
          $ref: "#/definitions/input_transaction_line"
        type: array
      verification_token:
        description: Verification token
        type: string
    required:
      - currency_code
      - transaction_lines
    type: object
  input_transaction_line:
    properties:
      amount:
        description: Amount. Required if total amount or both unit price and quantity are not provided.
        type: number
      custom_fields:
        description: Custom fields, stored as key-value pairs. This property is not processed and used mostly with Taxamo-built helpers.
        items:
          $ref: "#/definitions/custom_fields"
        type: array
      custom_id:
        description: Custom id, provided by ecommerce software.
        type: string
      deducted_tax_rate:
        description: Deducted tax rate, calculated by taxamo.
        type: number
      description:
        description: Line contents description.
        type: string
      informative:
        description: If the line is provided for informative purposes. Such line must have :tax-rate and optionally :tax-name - if not, API validation will fail for this line.
        type: boolean
      line_key:
        description: Generated line key.
        type: string
      product_code:
        description: Internal product code, used for invoicing for example.
        type: string
      product_tax_code:
        description: External product tax code for a line, for example TIC in US Sales tax.
        type: string
      product_type:
        description: "Product type, according to dictionary /dictionaries/product_types. "
        type: string
      quantity:
        description: Quantity Defaults to 1.
        type: number
      supply_date:
        description: Date of supply in yyyy-MM-dd format.
        type: string
      tax_name:
        description: Tax name, calculated by taxamo.  Can be overwritten when informative field is true.
        type: string
      tax_rate:
        description: Tax rate, calculated by taxamo. Must be provided when informative field is true.
        type: number
      total_amount:
        description: Total amount. Required if amount or both unit price and quantity are not provided.
        type: number
      unit_of_measure:
        description: Unit of measure.
        type: string
      unit_price:
        description: Unit price.
        type: number
    required:
      - custom_id
    type: object
  input_transaction_update:
    properties:
      additional_currencies:
        $ref: "#/definitions/additional_currencies"
        description: Additional currency information - can be used to receive additional information about invoice in another currency.
      billing_country_code:
        description: Billing two letter ISO country code.
        type: string
      buyer_credit_card_prefix:
        description: First 6 digits of buyer's credit card prefix.
        type: string
      buyer_email:
        description: Buyer's declared email address.
        type: string
      buyer_ip:
        description: IP address of the buyer in dotted decimal (IPv4) or text format (IPv6).
        type: string
      buyer_name:
        description: Buyer's name - first name and last name or company name.
        type: string
      buyer_tax_number:
        description: " Buyer's tax number - EU VAT number for example. If using EU VAT number, it is possible to provide country code in it (e.g. IE1234567X) or simply use billing_country_code field for that. In the first case, if billing_country_code value was provided, it will be overwritten with country code value extracted from VAT number - but only if the VAT has been verified properly."
        type: string
      comments:
        description: Additional information about the transaction - for example if the evidence has been amended.
        type: string
      currency_code:
        description: Currency code for transaction - e.g. EUR.
        type: string
      custom_data:
        description: Custom data related to transaction.
        type: string
      custom_fields:
        description: Custom fields, stored as key-value pairs. This property is not processed and used mostly with Taxamo-built helpers.
        items:
          $ref: "#/definitions/custom_fields"
        type: array
      custom_id:
        description: Custom identifier provided upon transaction creation.
        type: string
      customer_id:
        description: Free-form field for storing customer id.
        type: string
      description:
        description: Transaction description.
        type: string
      evidence:
        $ref: "#/definitions/evidence"
        description: Tax country of residence evidence.
      force_country_code:
        description: Two-letter ISO country code, e.g. FR. Use it to force country code for tax calculation.
        type: string
      invoice_address:
        $ref: "#/definitions/invoice_address"
        description: Invoice address.
      invoice_date:
        description: Invoice date of issue.
        type: string
      invoice_number:
        description: Invoice number.
        type: string
      invoice_place:
        description: Invoice place of issue.
        type: string
      note:
        description: Additional note related to transaction state - for example if the transaction was created in a 'catch-all' mode or the VAT number re-check for subscriptions has failed.
        type: string
      order_date:
        description: Order date in yyyy-MM-dd format, in merchant's timezone. If provided by the API caller, no timezone conversion is performed. Default value is current date and time. When using public token, the default value is used.
        type: string
      original_transaction_key:
        description: Use data and evidence from original transaction. Tax will be re-calculated, but evidence won't be re-checked. This parameter is taken into account only when 'manual' flag is raised.
        type: string
      status:
        description: "Transaction status: 'N' - new, 'C' - confirmed. Can use 'C' in store-transaction! with private-token to create confirmed transaction, otherwise 'N' is default status. Not applicable for update-transaction!."
        type: string
      sub_account_id:
        description: Sub account identifier.
        type: string
      supply_date:
        description: Supply date in yyyy-MM-dd format.
        type: string
      tax_country_code:
        description: Two-letter ISO country code, e.g. FR. This code applies to detected/set country for transaction, but can be set using manual mode.
        type: string
      tax_data:
        $ref: "#/definitions/tax_data_schema"
        description: Tax additional information - e.g. US sales tax exemption certificate data.
      tax_deducted:
        description: True if the transaction is deducted from tax and no tax is applied (it is untaxed). Either set automatically when VAT number validates with VIES correctly, but can also be provided in manual mode.
        type: boolean
      transaction_lines:
        description: Transaction lines.
        items:
          $ref: "#/definitions/input_transaction_line"
        type: array
      verification_token:
        description: Verification token
        type: string
    type: object
  invoice_address:
    properties:
      address_detail:
        description: Address details - for example apartament number.
        type: string
      building_number:
        description: Building number.
        type: string
      city:
        description: City name.
        type: string
      country:
        description: 2-letter ISO country code.
        type: string
      freeform_address:
        description: Freeform address. Use when structured data is not available. Will be used in SAF-MOSS file if other fields are not provided.
        type: string
      postal_code:
        description: Postal code.
        type: string
      region:
        description: Region, for United States - state code - e.g. NJ.
        type: string
      street_name:
        description: " Street name."
        type: string
    type: object
  listPaymentsIn:
    properties:
      limit:
        description: Max record count (no more than 100, defaults to 10).
        type: string
      offset:
        description: How many records need to be skipped, defaults to 0.
        type: string
    type: object
  listPaymentsOut:
    properties:
      payments:
        description: Payments.
        items:
          $ref: "#/definitions/payments"
        type: array
    type: object
  listRefundsOut:
    properties:
      refunds:
        description: Refunds
        items:
          $ref: "#/definitions/refunds"
        type: array
    type: object
  listTransactionsIn:
    properties:
      currency_code:
        description: Three letter ISO currency code.
        type: string
      filter_text:
        description: Filtering expression
        type: string
      format:
        description: Output format - supports 'csv' value for this operation.
        type: string
      has_note:
        description: Return only transactions with a note field set.
        type: boolean
      invoice_number:
        description: Transaction invoice number.
        type: string
      key_or_custom_id:
        description: Taxamo provided transaction key or custom id
        type: string
      limit:
        description: Limit (no more than 1000, defaults to 100).
        type: integer
      offset:
        description: Offset
        type: integer
      order_date_from:
        description: Order date from in yyyy-MM-dd format.
        type: string
      order_date_to:
        description: Order date to in yyyy-MM-dd format.
        type: string
      original_transaction_key:
        description: Taxamo provided original transaction key
        type: string
      sort_reverse:
        description: If true, results are sorted in descending order.
        type: boolean
      statuses:
        description: Comma separated list of of transaction statuses. 'N' - unconfirmed transaction, 'C' - confirmed transaction.
        type: string
      tax_country_code:
        description: Two letter ISO tax country code.
        type: string
      tax_country_codes:
        description: Comma separated list of two letter ISO tax country codes.
        type: string
      total_amount_greater_than:
        description: Return only transactions with total amount greater than given number. Transactions with total amount equal to a given number (e.g. 0) are not returned.
        type: string
      total_amount_less_than:
        description: Return only transactions with total amount less than a given number. Transactions with total amount equal to a given number (e.g. 1) are not returned.
        type: string
    type: object
  listTransactionsOut:
    properties:
      transactions:
        description: Transactions matching the criteria.
        items:
          $ref: "#/definitions/transactions"
        type: array
    type: object
  locateGivenIPOut:
    properties:
      country:
        $ref: "#/definitions/country"
        description: Detected country details
      country_code:
        description: Detected country code.
        type: string
      remote_addr:
        description: Remote IP address.
        type: string
    type: object
  locateMyIPOut:
    properties:
      country:
        $ref: "#/definitions/country"
        description: Detected country details
      country_code:
        description: Detected country code.
        type: string
      remote_addr:
        description: Remote IP address.
        type: string
    type: object
  payments:
    properties:
      amount:
        description: Amount that has been paid. Use negative value to register refunds.
        type: number
      payment_information:
        description: Additional payment information.
        type: string
      payment_timestamp:
        description: When the payment was received in yyyy-MM-dd HH:mm:ss (24 hour format, UTC+0 timezone).
        type: string
    type: object
  product_type_schema:
    properties:
      code:
        description: Product type code.
        type: string
    type: object
  refunds:
    properties:
      amount:
        description: Amount, excluding tax, that was refunded.
        type: number
      informative:
        description: Was this refund applied to an informative line?
        type: boolean
      line_key:
        description: Line identifier. If neither line key or custom id is provided, the refund amount will be assigned to lines in order.
        type: string
      refund_note_number:
        description: Sequential refund note number.
        type: string
      refund_note_url:
        description: Refund note image url.
        type: string
      refund_reason:
        description: Refund reason, displayed on the credit note.
        type: string
      refund_timestamp:
        description: Refund timestamp in UTC timezone.
        type: string
      tax_amount:
        description: Calculated tax amount, that was refunded.
        type: number
      tax_rate:
        description: Tax rate for the line that was used for the refund calculation.
        type: number
      total_amount:
        description: Total amount, including tax, that was refunded.
        type: number
    type: object
  report:
    properties:
      amount:
        description: Amount w/o tax
        type: number
      country_code:
        description: Two letter ISO country code.
        type: string
      country_name:
        description: Country name
        type: string
      country_subdivision:
        description: Country subdivision (e.g. state or provice or county)
        type: string
      currency_code:
        description: Three-letter ISO currency code.
        type: string
      skip_moss:
        description: If true, this line should not be entered into MOSS and is provided for informative purposes only. For example because the country is the same as MOSS registration country and merchant country.
        type: boolean
      tax_amount:
        description: Tax amount
        type: number
      tax_rate:
        description: Tax rate
        type: number
      tax_region:
        description: Tax region key
        type: string
    type: object
  settlement_daily_stats_schema:
    properties:
      b2b:
        description: B2B transaction count.
        type: integer
      b2c:
        description: B2C transaction count.
        type: integer
      count:
        description: Total transaction count.
        type: integer
      day:
        description: Date for stats in yyyy-MM-dd format.
        type: string
      day_raw:
        description: Date for stats in yyyy-MM-dd'T'hh:mm:ss'Z' format.
        type: string
      eu_b2b:
        description: Total EU B2B transaction count.
        type: integer
      eu_taxed:
        description: Total EU Taxed transaction count.
        type: integer
      eu_total:
        description: Total EU transaction count.
        type: integer
      untaxed:
        description: Untaxed transaction count.
        type: integer
    type: object
  storage_required_fields:
    properties:
      field_name:
        description: Required field name.
        type: string
    type: object
  summary:
    properties:
      currency_code:
        description: In which currency code the settlement was calculated.
        type: string
      end_date:
        description: Period end date in yyyy-MM-dd'T'hh:mm:ss'Z' format.
        type: string
      fx_rate_date:
        description: Date of ECB FX rate used for conversions in yyyy-MM-dd'T'hh:mm:ss'Z' format.
        type: string
      indicative:
        description: If the quarter isn't closed yet, tax amount is indicative, as we cannot determine FX rate or all transactions yet.
        type: boolean
      quarter:
        description: Quarter that this summary applies to.
        type: string
      start_date:
        description: Period start date in yyyy-MM-dd'T'hh:mm:ss'Z' format.
        type: string
      tax_amount:
        description: Tax amount due in this quarter.
        type: number
      tax_entity_name:
        description: Tax entity that the tax is due.
        type: string
    type: object
  tax_data_schema:
    properties:
      us_tax_exemption_certificate:
        $ref: "#/definitions/us_tax_exemption_certificate_schema"
        description: US sales tax exemption certificate.
    type: object
  tax_required_fields:
    properties:
      field_name:
        description: Required field name.
        type: string
    type: object
  transaction:
    properties:
      additional_currencies:
        $ref: "#/definitions/additional_currencies"
        description: Additional currency information - can be used to receive additional information about invoice in another currency.
      amount:
        description: Amount of transaction without tax.
        type: number
      billing_country_code:
        description: Billing two letter ISO country code.
        type: string
      buyer_credit_card_prefix:
        description: First 6 digits of buyer's credit card prefix.
        type: string
      buyer_email:
        description: Buyer's declared email address.
        type: string
      buyer_ip:
        description: IP address of the buyer in dotted decimal (IPv4) or text format (IPv6).
        type: string
      buyer_name:
        description: Buyer's name - first name and last name or company name.
        type: string
      buyer_tax_number:
        description: " Buyer's tax number - EU VAT number for example. If using EU VAT number, it is possible to provide country code in it (e.g. IE1234567X) or simply use billing_country_code field for that. In the first case, if billing_country_code value was provided, it will be overwritten with country code value extracted from VAT number - but only if the VAT has been verified properly."
        type: string
      buyer_tax_number_valid:
        description: If the buyer tax number has been provided and was validated successfully. Always true for domestic transactions (billing country same as merchant's country), tax number doesn't get validated in that case.
        type: boolean
      comments:
        description: Additional information about the transaction - for example if the evidence has been amended.
        type: string
      confirm_timestamp:
        description: Date and time of transaction confirmation.
        type: string
      countries:
        $ref: "#/definitions/countries"
        description: Map of countries calculated from evidence provided. This value is not stored and is available only upon tax calculation.
      create_timestamp:
        description: Date and time of transaction creation.
        type: string
      currency_code:
        description: Currency code for transaction - e.g. EUR.
        type: string
      custom_data:
        description: Custom data related to transaction.
        type: string
      custom_fields:
        description: Custom fields, stored as key-value pairs. This property is not processed and used mostly with Taxamo-built helpers.
        items:
          $ref: "#/definitions/custom_fields"
        type: array
      custom_id:
        description: Custom identifier provided upon transaction creation.
        type: string
      customer_id:
        description: Free-form field for storing customer id.
        type: string
      deducted_tax_amount:
        description: How much tax has been deducted.
        type: number
      description:
        description: Transaction description.
        type: string
      evidence:
        $ref: "#/definitions/evidence"
        description: Tax country of residence evidence.
      external_key:
        description: Transaction external key
        type: string
      force_country_code:
        description: Two-letter ISO country code, e.g. FR. Use it to force country code for tax calculation.
        type: string
      fully_informative:
        description: Set to true if transaction has only informative lines.
        type: boolean
      invoice_address:
        $ref: "#/definitions/invoice_address"
        description: Invoice address.
      invoice_date:
        description: Invoice date of issue.
        type: string
      invoice_image_url:
        description: Invoice image URL - provided by Taxamo.
        type: string
      invoice_number:
        description: Invoice number.
        type: string
      invoice_place:
        description: Invoice place of issue.
        type: string
      key:
        description: Id generated by taxamo.
        type: string
      kind:
        description: "Transaction kind: eu-b2c, eu-b2b, domestic, untaxed"
        type: string
      manual:
        description: Is the transaction created manually - using private token. In manual mode, it is the merchant who calculates tax country and validates evidence. If you need API to do that when accessing the API with private token, just skip the 'manual' flag or use false value there and provide customer's ip address through buyer_ip field. Manual mode is also used when using original_transaction_key field.
        type: boolean
      note:
        description: Additional note related to transaction state - for example if the transaction was created in a 'catch-all' mode or the VAT number re-check for subscriptions has failed.
        type: string
      order_date:
        description: Order date in yyyy-MM-dd format, in merchant's timezone. If provided by the API caller, no timezone conversion is performed. Default value is current date and time. When using public token, the default value is used.
        type: string
      original_transaction_key:
        description: Use data and evidence from original transaction. Tax will be re-calculated, but evidence won't be re-checked. This parameter is taken into account only when 'manual' flag is raised.
        type: string
      refunded_tax_amount:
        description: Refunded tax amount.
        type: number
      refunded_total_amount:
        description: Total amount refunde (including tax).
        type: number
      source:
        description: Transaction source software - e.g. plugin
        type: string
      status:
        description: "Transaction status: 'N' - new, 'C' - confirmed. Can use 'C' in store-transaction! with private-token to create confirmed transaction, otherwise 'N' is default status. Not applicable for update-transaction!."
        type: string
      sub_account_id:
        description: Sub account identifier.
        type: string
      supply_date:
        description: Supply date in yyyy-MM-dd format.
        type: string
      tax_amount:
        description: Tax amount of transaction.
        type: number
      tax_country_code:
        description: Two-letter ISO country code, e.g. FR. This code applies to detected/set country for transaction, but can be set using manual mode.
        type: string
      tax_data:
        $ref: "#/definitions/tax_data_schema"
        description: Tax additional information - e.g. US sales tax exemption certificate data.
      tax_deducted:
        description: If the transaction is in a country supported by Taxamo, but the tax is not calculated due to merchant settings or EU B2B transaction for example.
        type: boolean
      tax_entity_name:
        description: To which entity is the tax due.
        type: string
      tax_number_service:
        description: Tax number service identifier - if available for a given region and the region is enabled.
        type: string
      tax_supported:
        description: Is tax calculation supported for a detected tax location?
        type: boolean
      tax_timezone:
        description: Timezone name for tax transaction.
        type: string
      test:
        description: Was this transaction created in test mode?
        type: boolean
      total_amount:
        description: Total amount of transaction.
        type: number
      transaction_lines:
        description: Transaction lines.
        items:
          $ref: "#/definitions/transaction_lines"
        type: array
      verification_token:
        description: Verification token
        type: string
    required:
      - currency_code
      - transaction_lines
    type: object
  transaction_lines:
    properties:
      additional_currencies:
        $ref: "#/definitions/additional_currencies"
        description: Additional currency information - can be used to receive additional information about invoice in another currency.
      amount:
        description: Amount. Required if total amount or both unit price and quantity are not provided.
        type: number
      custom_fields:
        description: Custom fields, stored as key-value pairs. This property is not processed and used mostly with Taxamo-built helpers.
        items:
          $ref: "#/definitions/custom_fields"
        type: array
      custom_id:
        description: Custom id, provided by ecommerce software.
        type: string
      deducted_tax_amount:
        description: Deducted tax amount, calculated by taxmo.
        type: number
      deducted_tax_rate:
        description: Deducted tax rate, calculated by taxamo.
        type: number
      description:
        description: Line contents description.
        type: string
      id:
        description: Generated id.
        type: number
      informative:
        description: If the line is provided for informative purposes. Such line must have :tax-rate and optionally :tax-name - if not, API validation will fail for this line.
        type: boolean
      line_key:
        description: Generated line key.
        type: string
      product_code:
        description: Internal product code, used for invoicing for example.
        type: string
      product_tax_code:
        description: External product tax code for a line, for example TIC in US Sales tax.
        type: string
      product_type:
        description: "Product type, according to dictionary /dictionaries/product_types. "
        type: string
      quantity:
        description: Quantity Defaults to 1.
        type: number
      refunded_tax_amount:
        description: Refunded tax amount, calculated by taxmo.
        type: number
      refunded_total_amount:
        description: Refunded total amount, calculated by taxmo.
        type: number
      supply_date:
        description: Date of supply in yyyy-MM-dd format.
        type: string
      tax_amount:
        description: Tax amount, calculated by taxamo.
        type: number
      tax_name:
        description: Tax name, calculated by taxamo.  Can be overwritten when informative field is true.
        type: string
      tax_rate:
        description: Tax rate, calculated by taxamo. Must be provided when informative field is true.
        type: number
      total_amount:
        description: Total amount. Required if amount or both unit price and quantity are not provided.
        type: number
      unit_of_measure:
        description: Unit of measure.
        type: string
      unit_price:
        description: Unit price.
        type: number
    required:
      - custom_id
    type: object
  transactions:
    properties:
      additional_currencies:
        $ref: "#/definitions/additional_currencies"
        description: Additional currency information - can be used to receive additional information about invoice in another currency.
      amount:
        description: Amount of transaction without tax.
        type: number
      billing_country_code:
        description: Billing two letter ISO country code.
        type: string
      buyer_credit_card_prefix:
        description: First 6 digits of buyer's credit card prefix.
        type: string
      buyer_email:
        description: Buyer's declared email address.
        type: string
      buyer_ip:
        description: IP address of the buyer in dotted decimal (IPv4) or text format (IPv6).
        type: string
      buyer_name:
        description: Buyer's name - first name and last name or company name.
        type: string
      buyer_tax_number:
        description: " Buyer's tax number - EU VAT number for example. If using EU VAT number, it is possible to provide country code in it (e.g. IE1234567X) or simply use billing_country_code field for that. In the first case, if billing_country_code value was provided, it will be overwritten with country code value extracted from VAT number - but only if the VAT has been verified properly."
        type: string
      buyer_tax_number_valid:
        description: If the buyer tax number has been provided and was validated successfully. Always true for domestic transactions (billing country same as merchant's country), tax number doesn't get validated in that case.
        type: boolean
      comments:
        description: Additional information about the transaction - for example if the evidence has been amended.
        type: string
      confirm_timestamp:
        description: Date and time of transaction confirmation.
        type: string
      countries:
        $ref: "#/definitions/countries"
        description: Map of countries calculated from evidence provided. This value is not stored and is available only upon tax calculation.
      create_timestamp:
        description: Date and time of transaction creation.
        type: string
      currency_code:
        description: Currency code for transaction - e.g. EUR.
        type: string
      custom_data:
        description: Custom data related to transaction.
        type: string
      custom_fields:
        description: Custom fields, stored as key-value pairs. This property is not processed and used mostly with Taxamo-built helpers.
        items:
          $ref: "#/definitions/custom_fields"
        type: array
      custom_id:
        description: Custom identifier provided upon transaction creation.
        type: string
      customer_id:
        description: Free-form field for storing customer id.
        type: string
      deducted_tax_amount:
        description: How much tax has been deducted.
        type: number
      description:
        description: Transaction description.
        type: string
      evidence:
        $ref: "#/definitions/evidence"
        description: Tax country of residence evidence.
      external_key:
        description: Transaction external key
        type: string
      force_country_code:
        description: Two-letter ISO country code, e.g. FR. Use it to force country code for tax calculation.
        type: string
      fully_informative:
        description: Set to true if transaction has only informative lines.
        type: boolean
      invoice_address:
        $ref: "#/definitions/invoice_address"
        description: Invoice address.
      invoice_date:
        description: Invoice date of issue.
        type: string
      invoice_image_url:
        description: Invoice image URL - provided by Taxamo.
        type: string
      invoice_number:
        description: Invoice number.
        type: string
      invoice_place:
        description: Invoice place of issue.
        type: string
      key:
        description: Id generated by taxamo.
        type: string
      kind:
        description: "Transaction kind: eu-b2c, eu-b2b, domestic, untaxed"
        type: string
      manual:
        description: Is the transaction created manually - using private token. In manual mode, it is the merchant who calculates tax country and validates evidence. If you need API to do that when accessing the API with private token, just skip the 'manual' flag or use false value there and provide customer's ip address through buyer_ip field. Manual mode is also used when using original_transaction_key field.
        type: boolean
      note:
        description: Additional note related to transaction state - for example if the transaction was created in a 'catch-all' mode or the VAT number re-check for subscriptions has failed.
        type: string
      order_date:
        description: Order date in yyyy-MM-dd format, in merchant's timezone. If provided by the API caller, no timezone conversion is performed. Default value is current date and time. When using public token, the default value is used.
        type: string
      original_transaction_key:
        description: Use data and evidence from original transaction. Tax will be re-calculated, but evidence won't be re-checked. This parameter is taken into account only when 'manual' flag is raised.
        type: string
      refunded_tax_amount:
        description: Refunded tax amount.
        type: number
      refunded_total_amount:
        description: Total amount refunde (including tax).
        type: number
      source:
        description: Transaction source software - e.g. plugin
        type: string
      status:
        description: "Transaction status: 'N' - new, 'C' - confirmed. Can use 'C' in store-transaction! with private-token to create confirmed transaction, otherwise 'N' is default status. Not applicable for update-transaction!."
        type: string
      sub_account_id:
        description: Sub account identifier.
        type: string
      supply_date:
        description: Supply date in yyyy-MM-dd format.
        type: string
      tax_amount:
        description: Tax amount of transaction.
        type: number
      tax_country_code:
        description: Two-letter ISO country code, e.g. FR. This code applies to detected/set country for transaction, but can be set using manual mode.
        type: string
      tax_data:
        $ref: "#/definitions/tax_data_schema"
        description: Tax additional information - e.g. US sales tax exemption certificate data.
      tax_deducted:
        description: If the transaction is in a country supported by Taxamo, but the tax is not calculated due to merchant settings or EU B2B transaction for example.
        type: boolean
      tax_entity_name:
        description: To which entity is the tax due.
        type: string
      tax_number_service:
        description: Tax number service identifier - if available for a given region and the region is enabled.
        type: string
      tax_supported:
        description: Is tax calculation supported for a detected tax location?
        type: boolean
      tax_timezone:
        description: Timezone name for tax transaction.
        type: string
      test:
        description: Was this transaction created in test mode?
        type: boolean
      total_amount:
        description: Total amount of transaction.
        type: number
      transaction_lines:
        description: Transaction lines.
        items:
          $ref: "#/definitions/transaction_lines"
        type: array
      verification_token:
        description: Verification token
        type: string
    required:
      - currency_code
      - transaction_lines
    type: object
  unconfirmTransactionIn:
    properties:
      transaction:
        $ref: "#/definitions/input_transaction_update"
        description: Transaction.
    type: object
  unconfirmTransactionOut:
    properties:
      storage_required_fields:
        description: Fields required for transaction storage (can be added later - it's up to merchant software). Depends on the region/transaction type.
        items:
          $ref: "#/definitions/storage_required_fields"
        type: array
      tax_required_fields:
        description: Fields required for tax calculation. Depends on the region/transaction type.
        items:
          $ref: "#/definitions/tax_required_fields"
        type: array
      transaction:
        $ref: "#/definitions/transaction"
        description: Transaction data
    type: object
  updateTransactionIn:
    properties:
      transaction:
        $ref: "#/definitions/transaction"
        description: Transaction.
    type: object
  updateTransactionOut:
    properties:
      storage_required_fields:
        description: Fields required for transaction storage (can be added later - it's up to merchant software). Depends on the region/transaction type.
        items:
          $ref: "#/definitions/storage_required_fields"
        type: array
      tax_required_fields:
        description: Fields required for tax calculation. Depends on the region/transaction type.
        items:
          $ref: "#/definitions/tax_required_fields"
        type: array
      transaction:
        $ref: "#/definitions/transaction"
        description: Transaction data
    type: object
  us_tax_exempt_state:
    properties:
      identifier_for_exemption_reason:
        description: Identifier for exemption reason.
        type: string
      reason_for_exemption:
        description: Exemption reason
        type: string
      state_abbr:
        description: Two character state abbreviation.
        type: string
    required:
      - state_abbr
    type: object
  us_tax_exemption_certificate_details_schema:
    properties:
      exempt_states:
        description: List of states where the certificate is valid.
        items:
          $ref: "#/definitions/us_tax_exempt_state"
        type: array
      purchaser_address1:
        description: Purchaser's first address line.
        type: string
      purchaser_address2:
        description: Purchaser's second address line.
        type: string
      purchaser_business_type:
        description: Purchaser business type.
        type: string
      purchaser_business_type_other_value:
        description: If business type is other, a short description must be provided.
        type: string
      purchaser_city:
        description: Purchaser's city.
        type: string
      purchaser_exemption_reason:
        description: The reason for exemption reason.
        type: string
      purchaser_exemption_reason_value:
        description: The value of exemption reason.
        type: string
      purchaser_first_name:
        description: Purchaser's first name.
        type: string
      purchaser_last_name:
        description: Purchaser's last name.
        type: string
      purchaser_state:
        description: Purchaser's state.
        type: string
      purchaser_tax_id:
        $ref: "#/definitions/us_tax_id"
        description: Purchaser's TAX ID.
      purchaser_title:
        description: Purchaser's title.
        type: string
      purchaser_zip:
        description: Purchaser's zip code.
        type: string
      single_purchase:
        description: Set to true if this certificate is valid for single purchase only.
        type: boolean
      single_purchase_order_identifier:
        description: Purchase/order identifier for single purchase.
        type: string
    required:
      - exempt_states
      - purchaser_address1
      - purchaser_business_type
      - purchaser_city
      - purchaser_exemption_reason
      - purchaser_exemption_reason_value
      - purchaser_first_name
      - purchaser_last_name
      - purchaser_state
      - purchaser_tax_id
      - purchaser_zip
    type: object
  us_tax_exemption_certificate_schema:
    properties:
      certificate_id:
        description: The exemption certificate number.
        type: string
      detail:
        $ref: "#/definitions/us_tax_exemption_certificate_details_schema"
        description: US tax exemption ertificate detail.
    type: object
  us_tax_id:
    properties:
      state_of_issue:
        description: State of issue
        type: string
      tax_id:
        description: Tax ID
        type: string
      tax_id_type:
        description: Tax id type.
        type: string
    required:
      - tax_id_type
    type: object
  validateTaxNumberIn:
    properties:
      country_code:
        description: Two-letter ISO country code.
        type: string
    type: object
  validateTaxNumberOut:
    properties:
      billing_country_code:
        description: Billing two letter ISO country code.
        type: string
      buyer_tax_number:
        description: " Buyer's tax number - EU VAT number for example. If using EU VAT number, it is possible to provide country code in it (e.g. IE1234567X) or simply use billing_country_code field for that. In the first case, if billing_country_code value was provided, it will be overwritten with country code value extracted from VAT number - but only if the VAT has been verified properly."
        type: string
      buyer_tax_number_valid:
        description: If the buyer tax number has been provided and was validated successfully. Always true for domestic transactions (billing country same as merchant's country), tax number doesn't get validated in that case.
        type: boolean
      tax_deducted:
        description: If the transaction is in a country supported by Taxamo, but the tax is not calculated due to merchant settings or EU B2B transaction for example.
        type: boolean
    type: object
  verifySMSTokenOut:
    properties:
      country_code:
        description: Verified country code, returned if operation was successful.
        type: string
    type: object
