Finix Transfers API
{'$ref': 'api-descriptions/tags/transfers.md'}
{'$ref': 'api-descriptions/tags/transfers.md'}
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/finix-transfers-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Finix Authorizations Transfers API
description:
$ref: api-descriptions/main.md
contact:
name: Finix
url: https://finix.com
email: support@finixpayments.com
version: '2022-02-01'
servers:
- description: Sandbox server to be used for testing and development
url: https://finix.sandbox-payments-api.com
security:
- BasicAuth: []
tags:
- name: Transfers
description:
$ref: api-descriptions/tags/transfers.md
paths:
/transfers:
post:
tags:
- Transfers
description: Create a `Transfer`.
summary: Create a Transfer
operationId: createTransfer
requestBody:
$ref: '#/components/requestBodies/CreateTransferRequest'
responses:
'201':
$ref: '#/components/responses/Transfer'
'400':
$ref: '#/components/responses/ErrorUnprocessableEntity'
'401':
$ref: '#/components/responses/ErrorUnauthorized'
'402':
$ref: '#/components/responses/ErrorTransfers402'
'403':
$ref: '#/components/responses/ErrorForbidden403'
'404':
$ref: '#/components/responses/ErrorNotFound'
'406':
$ref: '#/components/responses/Error406NotAcceptable'
'422':
$ref: '#/components/responses/Error422InvalidField'
x-java-method-name: create
parameters:
- schema:
type: string
default: '2018-01-01'
example: '2022-02-01'
in: header
name: Finix-Version
description: Specify the API version of your request. For more details, see [Versioning.](/guides/developers/versioning/)
x-python-method-name: create
get:
tags:
- Transfers
description: Retrieve a list of `Transfers`.
summary: List Transfers
operationId: listTransfers
parameters:
- $ref: '#/components/parameters/QueryAfterCursor'
- $ref: '#/components/parameters/QueryLimit'
- $ref: '#/components/parameters/QueryAmountFilter'
- $ref: '#/components/parameters/QueryAmountGteFilter'
- $ref: '#/components/parameters/QueryAmountGtFilter'
- $ref: '#/components/parameters/QueryAmountLteFilter'
- $ref: '#/components/parameters/QueryAmountLtFilter'
- $ref: '#/components/parameters/QueryCreatedAtGteFilter'
- $ref: '#/components/parameters/QueryCreatedAtLteFilter'
- $ref: '#/components/parameters/QueryIdempotencyIdFilter'
- $ref: '#/components/parameters/QueryIdFilter'
- $ref: '#/components/parameters/QuerySettlementReadyToSettleAtGteFilter'
- $ref: '#/components/parameters/QuerySettlementReadyToSettleAtLteFilter'
- in: query
name: state
description: Filter by Transaction state.
schema:
enum:
- ALL
- SUCCEEDED
- FAILED
- PENDING
- CANCELED
- $ref: '#/components/parameters/QueryStatementDescriptorFilter'
- $ref: '#/components/parameters/QueryTraceIdFilter'
- $ref: '#/components/parameters/QueryUpdatedAtGteFilter'
- $ref: '#/components/parameters/QueryUpdatedAtLteFilter'
- in: query
name: instrument_bin
description: Filter by Bank Identification Number (BIN). The BIN is the first 6 digits of the masked number.
schema:
type: string
- schema:
type: string
in: query
name: instrument_account_last4
description: "Filter Transactions by the last 4 digits of the bank account. The bank account last 4 are the last 4 digits of the masked number\tinstrument_account_last4=9444 BIN."
- schema:
type: string
in: query
name: instrument_brand_type
description: Filter by card brand. Available card brand types can be found in the drop-down.
- schema:
type: string
in: query
name: merchant_identity_id
description: Filter by `Identity` ID.
- schema:
type: string
in: query
name: merchant_identity_name
description: Filter Transactions by `Identity` name. The name is not case-sensitive.
- schema:
type: string
in: query
name: instrument_name
description: Filter Transactions by `Payment Instrument` name.
- schema:
type: string
in: query
name: instrument_type
description: 'Filter Transactions by `Payment Instrument` type. Available instrument types include: Bank Account or Payment Card'
- schema:
type: string
in: query
name: merchant_id
description: Filter by `Merchant` ID.
- schema:
type: string
in: query
name: merchant_mid
description: Filter by Merchant Identification Number (MID).
- schema:
type: string
in: query
name: instrument_card_last4
description: Filter by the payment card last 4 digits.
- schema:
type: string
in: query
name: merchant_processor_id
description: Filter by `Processor` ID.
- schema:
type: string
enum:
- ALL
- DEBITS
- CREDITS
- REVERSAL
- SETTLEMENT
example: REVERSAL
in: query
name: type
description: 'Filter by `Transfer` type. Available type filters include: All, Debits, Refunds, or Credits.'
- $ref: '#/components/parameters/QueryBeforeCursor'
- $ref: '#/components/parameters/TagsKey'
- $ref: '#/components/parameters/TagsValue'
responses:
'200':
$ref: '#/components/responses/TransfersList'
'401':
$ref: '#/components/responses/ErrorUnauthorized'
'403':
$ref: '#/components/responses/ErrorForbidden403'
'404':
$ref: '#/components/responses/ErrorNotFound'
'406':
$ref: '#/components/responses/Error406NotAcceptable'
x-java-method-name: list
x-group-parameters: true
x-codeSamples:
- lang: cURL
label: curl
source: "curl \"https://finix.sandbox-payments-api.com/transfers\" \\\n -H \"Finix-Version: 2022-02-01\" \\\n -u USsRhsHYZGBPnQw8CByJyEQW:8a14c2f9-d94b-4c72-8f5c-a62908e5b30e\n"
x-python-method-name: list
x-returns-list: true
/transfers/{transfer_id}:
parameters:
- description: ID of `Transfer` resource.
required: true
in: path
name: transfer_id
schema:
type: string
get:
tags:
- Transfers
description: Retrieve a `Transfer`.
summary: Fetch a Transfer
operationId: getTransfer
responses:
'200':
$ref: '#/components/responses/Transfer'
'401':
$ref: '#/components/responses/ErrorUnauthorized'
'403':
$ref: '#/components/responses/ErrorForbidden403'
'404':
$ref: '#/components/responses/ErrorNotFound'
'406':
$ref: '#/components/responses/Error406NotAcceptable'
x-java-method-name: get
x-codeSamples:
- lang: cURL
label: curl
source: "curl \"https://finix.sandbox-payments-api.com/transfers/TRvypRNBeqM597Zi4DcqJ2Vh\" \\\n -H \"Content-Type: application/json\" \\\n -H \"Finix-Version: 2022-02-01\" \\\n -u USsRhsHYZGBPnQw8CByJyEQW:8a14c2f9-d94b-4c72-8f5c-a62908e5b30e\n"
x-python-method-name: get
put:
tags:
- Transfers
description: Update a `Transfer`.
summary: Update a Transfer
operationId: updateTransfer
responses:
'200':
$ref: '#/components/responses/Transfer'
'401':
$ref: '#/components/responses/ErrorUnauthorized'
'403':
$ref: '#/components/responses/ErrorForbidden403'
'404':
$ref: '#/components/responses/ErrorNotFound'
'406':
$ref: '#/components/responses/Error406NotAcceptable'
requestBody:
$ref: '#/components/requestBodies/UpdateTransferRequest'
x-java-method-name: update
x-codeSamples:
- lang: cURL
label: curl
source:
$ref: xcode/curl/transfers/updatetransfer.md
x-python-method-name: update
/transfers/{transfer_id}/reversals:
parameters:
- description: ID of `Transfer` object.
required: true
in: path
name: transfer_id
schema:
type: string
post:
tags:
- Transfers
description: "Reverse a transfer with a `type` of **DEBIT**. This reversal creates a new `Transfer` resource with a `type` of **REVERSAL**. \n\nRelated Guides: [Refunding Payments](/guides/after-the-payment/refunding-and-cancelling-payments/)"
summary: Refund or Reverse a Transfer
operationId: createTransferReversal
requestBody:
$ref: '#/components/requestBodies/CreateReversalRequest'
responses:
'201':
$ref: '#/components/responses/Transfer'
'400':
$ref: '#/components/responses/ErrorUnprocessableEntity'
'401':
$ref: '#/components/responses/ErrorUnauthorized'
'403':
$ref: '#/components/responses/ErrorForbidden403'
'404':
$ref: '#/components/responses/ErrorNotFound'
'406':
$ref: '#/components/responses/Error406NotAcceptable'
'422':
$ref: '#/components/responses/ErrorUnprocessableEntity'
parameters:
- schema:
type: string
default: '2018-01-01'
example: '2022-02-01'
in: header
name: Finix-Version
description: Specify the API version of your request. For more details, see [Versioning.](/guides/developers/versioning/)
x-java-method-name: create_transfer_reversal
x-python-method-name: create_transfer_reversal
get:
tags:
- Transfers
description: Retrieve a list of reversals for a `Transfer`.
summary: List Reversals on a Transfer
operationId: listTransferReversals
parameters:
- required: false
in: query
name: limit
schema:
type: integer
format: int64
description: The number of entries to return.
- $ref: '#/components/parameters/QueryAfterCursor'
- $ref: '#/components/parameters/QueryBeforeCursor'
responses:
'200':
$ref: '#/components/responses/ReversalsList'
'401':
$ref: '#/components/responses/ErrorUnauthorized'
'403':
$ref: '#/components/responses/ErrorForbidden403'
'404':
$ref: '#/components/responses/ErrorNotFound'
'406':
$ref: '#/components/responses/Error406NotAcceptable'
x-java-method-name: listTransfersReversals
x-group-parameters: true
x-codeSamples:
- lang: cURL
label: curl
source: "curl \"https://finix.sandbox-payments-api.com/transfers/TRacB6Q6GcW6yvFUKawSnMEP/reversals\" \\\n -H \"Finix-Version: 2022-02-01\" \\\n -u USsRhsHYZGBPnQw8CByJyEQW:8a14c2f9-d94b-4c72-8f5c-a62908e5b30e\n"
x-python-method-name: list_transfers_reversals
x-returns-list: true
components:
parameters:
QueryAmountGtFilter:
description: Filter by an amount greater than.
in: query
name: amount.gt
schema:
type: integer
style: form
QueryAmountGteFilter:
description: Filter by an amount greater than or equal.
in: query
name: amount.gte
schema:
type: integer
style: form
QuerySettlementReadyToSettleAtGteFilter:
description: 'Filter where `ready_to_settle_at` is after the given date. Only available on `Finix-Version: 2022-02-01`. For more details, see [Versioning](/guides/developers/versioning/).'
in: query
name: ready_to_settle_at.gte
schema:
type: string
example: ?ready_to_settle_at.gte=2023-06-28T00:00:00
style: form
TagsKey:
name: tags.key
in: query
required: false
schema:
type: string
description: Filter by the [`key` of a `Tag`](/api/overview/#section/Tags).
QueryCreatedAtLteFilter:
description: Filter where `created_at` is before the given date.
in: query
name: created_at.lte
schema:
type: string
example: '2022-09-27T11:21:23'
style: form
QueryUpdatedAtGteFilter:
description: Filter where `updated_at` is after the given date.
in: query
name: updated_at.gte
schema:
type: string
style: form
TagsValue:
name: tags.value
in: query
required: false
schema:
type: string
description: Filter by the [value of a `Tag`](https://finix.com/docs/api/overview/#section/Tags).
QueryBeforeCursor:
name: before_cursor
in: query
required: false
schema:
type: string
description: Return every resource created before the cursor value.
QueryAmountFilter:
description: Filter by an amount equal to the given value.
in: query
name: amount
schema:
type: integer
style: form
QuerySettlementReadyToSettleAtLteFilter:
description: 'Filter where `ready_to_settle_at` is before the given date. Only available on `Finix-Version: 2022-02-01`. For more details, see [Versioning](/guides/developers/versioning/).'
in: query
name: ready_to_settle_at.lte
schema:
type: string
example: ?ready_to_settle_at.lte=2023-06-28T00:00:00
style: form
QueryIdFilter:
description: Filter by `id`.
in: query
name: id
schema:
type: string
style: form
QueryAmountLtFilter:
description: Filter by an amount less than.
in: query
name: amount.lt
schema:
type: integer
style: form
QueryAmountLteFilter:
description: Filter by an amount less than or equal.
in: query
name: amount.lte
schema:
type: integer
style: form
QueryLimit:
description: The numbers of items to return.
example: 10
in: query
name: limit
schema:
type: integer
style: form
QueryCreatedAtGteFilter:
description: Filter where `created_at` is after the given date.
in: query
name: created_at.gte
schema:
type: string
example: '2022-09-27T11:21:23'
style: form
QueryUpdatedAtLteFilter:
description: Filter where `updated_at` is before the given date.
in: query
name: updated_at.lte
schema:
type: string
style: form
QueryIdempotencyIdFilter:
description: Filter by `idempotency_id`.
in: query
name: idempotency_id
schema:
type: string
style: form
QueryAfterCursor:
name: after_cursor
in: query
required: false
schema:
type: string
description: Return every resource created after the cursor value.
QueryStatementDescriptorFilter:
description: Filter by `statement_descriptor`.
in: query
name: statement_descriptor
schema:
type: integer
style: form
QueryTraceIdFilter:
description: Filter by `trace_id`.
in: query
name: trace_id
schema:
type: string
style: form
schemas:
PageCursor:
title: PageCursor
x-stoplight:
id: 8v9on8n2939z2
type: object
properties:
limit:
type: integer
description: The number of entries to return.
next_cursor:
type:
- string
- 'null'
description: The cursor to use for the next page of results.
description: Details the page that's returned.
Error401Unauthorized:
type: object
properties:
total:
type: integer
_embedded:
type: object
properties:
errors:
type: array
items:
type: object
additionalProperties: true
properties:
code:
type: string
enum:
- UNKNOWN
logref:
$ref: '#/components/schemas/LogRef'
message:
type: string
_links:
type: object
additionalProperties: true
properties:
self:
type: object
properties:
href:
type: string
source:
type: object
properties:
href:
type: string
AdditionalBuyerCharges:
title: AdditionalBuyerCharges
x-stoplight:
id: 8t8auxc19wmuw
type:
- object
- 'null'
description: Object detailing any [Buyer Charges](/guides/payments/making-a-payment/buyer-charges/) that got included in the `Authorization`.
properties:
convenience_amount:
type:
- number
- 'null'
description: Include the convenience fee the merchant is charging the buyer for the transaction when creating a `Transfer` or an `Authorization`.
rent_surcharge_amount:
type:
- number
- 'null'
description: Include the rent surcharge the merchant is charging the buyer for the transaction when creating a `Transfer` or an `Authorization`.
ListLinks:
title: ListLinks
additionalProperties: true
type: object
description: For your convenience, every response includes several URLs which link to resources relevant to the request. You can use these `_links` to make your follow-up requests and quickly access relevant IDs.
properties:
next:
type: object
description: Link to the next page of entries.
properties:
href:
type: string
self:
type: object
description: Link to the resource that was used in the request.
properties:
href:
type: string
IdempotencyId:
title: IdempotencyId
type:
- string
- 'null'
description: Pass any randomly generated or internal ID to [idempotently](/api/overview/#section/Idempotency-Requests) identify `Transfers`, `Authorizations`, and refund requests.
Raw:
title: Raw
description: Raw response from the processor.
x-examples: {}
type:
- object
- 'null'
CreateTransferRequest:
type: object
properties:
additional_buyer_charges:
$ref: '#/components/schemas/AdditionalBuyerCharges'
additional_purchase_data:
$ref: '#/components/schemas/AdditionalPurchaseData'
adjustment_request:
type:
- boolean
- 'null'
description: Details if the `transfer` was created to adjust funds.
amount:
type: integer
format: int64
description: The total amount that will be debited from the buyer in cents (e.g. 100 cents to debit $1.00).
currency:
$ref: '#/components/schemas/Currency'
destination:
type:
- string
- 'null'
description: ID of the `Payment Instrument` where funds will be sent.
device:
type:
- string
- 'null'
description: The ID of the activated device.
fee:
type: integer
format: int64
description: "The minimum amount of the `Transfer` you'd like to collect as your fee in cents. Defaults to zero (must be less than or equal to the `amount`).\n- If the fees applied by the 'Fee Profile' are ***higher*** than the value passed in 'fee', 'fee' will not be applied and have no effect.\n- If the fees applied by the 'Fee Profile' are ***lower*** than the value passed in 'fee', an additional fee is be applied, in addition to the fees generated by the `Fee Profile`.\n - The additional fee is equal to the difference between the value passed in 'fee' and the fees generated by the `Fee Profile`."
fraud_session_id:
$ref: '#/components/schemas/FraudSessionID'
hsa_fsa_payment:
$ref: '#/components/schemas/HSAFSAPayment'
idempotency_id:
type:
- string
- 'null'
description: A randomly generated value that gets tied with the request.
merchant:
type:
- string
- 'null'
description: "- ID of the primary `Merchant` that's processing the `Transfer` for the buyer. \n- In Split Transactions, the `Merchant` specified in the `Transfer` request is the primary `Merchant`."
operation_key:
type:
- string
- 'null'
enum:
- CARD_PRESENT_DEBIT
- CARD_PRESENT_UNREFERENCED_REFUND
- MERCHANT_CREDIT_ADJUSTMENT
- MERCHANT_DEBIT_ADJUSTMENT
- PULL_FROM_CARD
- PUSH_TO_CARD
- SALE
- UNREFERENCED_REFUND
description: Details the operation that's be performed in the transaction.
processor:
type: string
description: Name of the transaction processor.
source:
type: string
description: ID of the `Payment Instrument` where funds get debited.
security_code:
type:
- string
- 'null'
description: The 3-4 digit security code for the card (i.e. CVV code). Include the CVV code of the card to include [Card Verification Checks](/guides/payments/making-a-payment/card-verification-checks/) with the created `Transfer`.
statement_descriptor:
type:
- string
- 'null'
description: <li>The description of the transaction that appears on the buyer's bank or card statement.</li><li><kbd>statement_descriptors</kbd> for `Transfers` in <strong>live</strong> enviroments will have a <kbd>FI *</kbd> prefix.
maxLength: 20
tags:
$ref: '#/components/schemas/Tags'
3d_secure_authentication:
type:
- object
- 'null'
description: The 3D secure information required to create a 3D secure `Transfer.`
properties:
cardholder_authentication:
type: string
description: Provides evidence that the cardholder authentication occurred or that the merchant attempted authentication. This is unique for each authentication transaction.
cardholder_ip_address:
type: string
description: Only required for **American Express** cards.
example: 189.1.126.240
electronic_commerce_indicator:
type: string
description: '- **AUTHENTICATED**: Approved by 3D Secure Vendor.
- **ATTEMPTED**: Issuer or cardholder does not support 3D Secure.'
transaction_id:
type: string
description: Only required for **Visa** cards.
required:
- cardholder_authentication
- electronic_commerce_indicator
'additional_purchase_data ':
$ref: '#/components/schemas/L3AdditionalPurchaseData'
device_configuration:
$ref: '#/components/schemas/ConfigurationDetails'
split_transfers:
type: object
description: '- An array used to detail how funds from the `Transfer` will split and the amount `Merchants` receive.
- The combined `amounts` under `split_transfers` must be equal to the `amount` submitted in the parent `Transfer.`
- For more information, see [Split Transactions](/docs/guides/payments/modify/split-transactions/).'
properties:
amount:
type: integer
format: int64
description: '- The amount of funds that get split and paid out to the specified `Merchant`.
- Must be less than or equal to the `amount` of the `Transfer.`'
merchant:
type: string
description: '- The ID of the `Merchant` that will receive the specified `amount` under the `split_transfers` object.
- In Split Transactions, the `Merchants` specified in the `split_transfers` object are the ancillary `Merchants.`'
tags:
$ref: '#/components/schemas/Tags'
Currency:
type: string
description: ISO 4217 3 letter currency code.
enum:
- AED
- AFN
- ALL
- AMD
- ANG
- AOA
- ARS
- AUD
- AWG
- AZN
- BAM
- BBD
- BDT
- BGN
- BHD
- BIF
- BMD
- BND
- BOB
- BOV
- BRL
- BSD
- BTN
- BWP
- BYR
- BZD
- CAD
- CDF
- CHE
- CHF
- CHW
- CLF
- CLP
- CNY
- COP
- COU
- CRC
- CUC
- CUP
- CVE
- CZK
- DJF
- DKK
- DOP
- DZD
- EGP
- ERN
- ETB
- EUR
- FJD
- FKP
- GBP
- GEL
- GHS
- GIP
- GMD
- GNF
- GTQ
- GYD
- HKD
- HNL
- HRK
- HTG
- HUF
- IDR
- ILS
- INR
- IQD
- IRR
- ISK
- JMD
- JOD
- JPY
- KES
- KGS
- KHR
- KMF
- KPW
- KRW
- KWD
- KYD
- KZT
- LAK
- LBP
- LKR
- LRD
- LSL
- LTL
- LYD
- MAD
- MDL
- MGA
- MKD
- MMK
- MNT
- MOP
- MRO
- MUR
- MVR
- MWK
- MXN
- MXV
- MYR
- MZN
- NAD
- NGN
- NIO
- NOK
- NPR
- NZD
- OMR
- PAB
- PEN
- PGK
- PHP
- PKR
- PLN
- PYG
- QAR
- RON
- RSD
- RUB
- RWF
- SAR
- SBD
- SCR
- SDG
- SEK
- SGD
- SHP
- SLL
- SOS
- SRD
- SSP
- STD
- SVC
- SYP
- SZL
- THB
- TJS
- TMT
- TND
- TOP
- TRY
- TTD
- TWD
- TZS
- UAH
- UGX
- USD
- USN
- UYI
- UYU
- UZS
- VEF
- VND
- VUV
- WST
- XAF
- XAG
- XAU
- XBA
- XBB
- XBC
- XBD
- XCD
- XDR
- XOF
- XPD
- XPF
- XPT
- XSU
- XTS
- XUA
- XXX
- YER
- ZAR
- ZMW
- ZWL
FraudSessionID:
title: FraudSessionID
x-stoplight:
id: x00www7a3mlv6
type: string
description: The `fraud_session_session` ID you want to review for fraud. For more info, see [Fraud Detection](/guides/payments/fraud-detection/).
AdditionalHealthcareData:
title: AdditionalHealthcareData
x-stoplight:
id: ibznc087ymmit
type:
- object
- 'null'
description: Optional object detailing [specific healthcare amounts](/guides/making-a-payment/hsa-fsa/).
properties:
clinic_amount:
type:
- integer
- 'null'
description: The amount used for clinic and office visits such as a copay amount.
dental_amount:
type:
- integer
- 'null'
description: The amount used for dental related expenses.
prescription_amount:
type:
- integer
- 'null'
description: The amount used to purchase perscriptions and medications.
vision_amount:
type:
- integer
- 'null'
description: The amount used for vision related expenses.
L3AdditionalPurchaseData:
title: L3AdditionalPurchaseData
x-stoplight:
id: 7xbmc1d9p49or
type: object
description: Additional information about the purchase. Used for [Level 2 and Level 3 Processing](/guides/payments/modify/level-2-and-level-3-processing/).
properties:
customer_reference_number:
type: string
description: The customer reference for the purchase (max 17 characters).
maxLength: 17
customs_duty_amount:
type: integer
description: The duty in cents on the total purchase amount for the order
destination_country_code:
type: string
description: The ISO country code of the order destination.
destination_postal_code:
type: string
description: The postal code of the order destination (10 characters)
maxLength: 10
discount_amount:
type: integer
description: The amount in cents of the discount for the order.
invoice_reference_number:
type: string
description: The order's invoice number (max 15 characters)
maxLength: 15
item_data:
type: array
description: Additional information about the transaction. Used for Level 2 and Level 3 Processing.
items:
type: object
properties:
amount_excluding_sales_tax:
type: integer
description: '- Total cost of the line item in cents, excluding tax.
- Must align with `sales_tax` so `amount_excluding_sales_tax` + `sales_tax` = `amount_including_sales_tax`.'
amount_including_sales_tax:
type: integer
description: '- Total cost of the line item in cents, including tax.
- Must align with `sales_tax` so `amount_excluding_sales_tax` + `sales_tax` = `amount_including_sales_tax`.'
commodity_code:
type: string
description: A commodity code is a numeric code representing a particular product or service as defined by the National Institute of Governmental Purchasing. The code can be 3, 5, 7, or 11 digits in length. The longer the code the more granular the description of the product/service. (max 12 characters).
maxLength: 12
cost_per_unit:
type: integer
description: The price in cents of one unit of the item purchased
item_description:
type: string
description: Required when `item_data` is supplied (max 25 characters)
maxLength: 25
item_discount_amount:
type: integer
description: 'Item discount amount in cents
'
merchant_product_code:
type: string
description: Merchant defined product code (max 12 characters).
maxLength: 12
quantity:
type: integer
description: The number of items purchased. Must be greater than 0.
minimum: 1
maximum: 99
unit_of_measure:
type: string
description: The unit of measure of the purchased item (max 3 characters).
maxLength: 3
required:
- amount_excluding_sales_tax
- amount_including_sales_tax
- commodity_code
- cost_per_unit
- item_description
- item_discount_amount
- merchant_product_code
- quantity
- unit_of_measure
order_date:
type: object
properties:
day:
type: integer
description: Day of purchase (between 1 and 31)
month:
type: integer
description: Month of purchase (between 1 and 12)
year:
type: integer
description: Year of purchase (4-digit)
minimum: 1990
sales_tax:
type: integer
description: "- Total aggregate tax amount in cents for the entire purchase. Field is automatically calculated if you pass in the itemized tax amounts. \n- For non-taxable transactions either set `sales_tax` to 0 or omit from payload and also set `tax_exempt` to **True**.\n- Request must align so `amount_excluding_sales_tax` + `sales_tax` = `amount_including_sales_tax`.e**."
ship_from_postal_code:
type: string
description: The postal
# --- truncated at 32 KB (141 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/finix/refs/heads/main/openapi/finix-transfers-api-openapi.yml