api.md

Finix API Reference

The Finix API is resource oriented, relying heavily on common REST principles. Our API uses JSON encoded requests and responses.

You will receive separate Sandbox and Live accounts, as well as corresponding API credentials to access the Finix API.

Authentication

To communicate with the Finix API, you must authenticate your requests via HTTP Basic Authentication with a username:password combination, which you can get from your Finix Dashboard. If you do not have a Dashboard yet, you can test our APIs with the Sandbox credentials below.

Parameter Value
Sandbox Username USsRhsHYZGBPnQw8CByJyEQW
Sandbox Password 8a14c2f9-d94b-4c72-8f5c-a62908e5b30e
curl "https://finix.sandbox-payments-api.com/" \
    -H "Content-Type: application/json" \
    -H "Finix-Version: 2022-02-01" \
    -u USsRhsHYZGBPnQw8CByJyEQW:8a14c2f9-d94b-4c72-8f5c-a62908e5b30e

Environments

Finix provides two environments with distinct base URLs to make API requests.

  1. A Sandbox environment for developing and testing your integration.
  2. A Live environment for processing payments.

These environments are entirely separate and do not share API Credentials.

Environment Endpoint URL
Sandbox https://finix.sandbox-payments-api.com
Live https://finix.live-payments-api.com

HTTP Codes and Errors

Finix uses HTTP codes to communicate whether requests succeeded or failed. Requests to Finix's API return responses within less than one second. However, communications between card networks and processors can increase response latency. Additionally, response latency for card-present devices can be higher depending on how quickly buyers complete the transaction on payment terminals. Due to this, requests to the Finix API have a maximum timeout of 5 minutes.

For more details, see Error Codes. Also, you can test for specific errors and responses.

Code Definition Explanation
400 Bad Request We could not parse your request. Verify you are providing valid JSON.
401 Unauthorized We could not authenticate your request. Verify your username and password are correct.
402 Upstream Processor Error Errors caused by 3rd-party service(s).
403 Forbidden Your credentials do not have the correct permissions to perform the request.
404 Not Found We could not find the specified resource.
405 Method Not Allowed The specified resource does not support the HTTP Method used to submit the request.
406 Not Acceptable The server could accept the submitted request. Confirm how the request was formatted and submitted.
409 Conflict The submitted request conflicts with the current state of the server.
422 Unprocessable Entity The parameters were valid, but the request failed. Usually, the error involves misunderstanding of how to perform the request (e.g., creating a transfer with a seller that is not-yet-approved).
500 Internal Server Error We had a problem with our server. Try again later.

Idempotent Requests

The Authorization and Transfer resources both have an idempotency_id field. Use this field to ensure the API Request is performed only once. Why is this important? We've all experienced a checkout page that hangs on a request or payment and feared that if we refresh or submit the payment again, we'd be charged twice.

Finix removes this ambiguity with the idempotency_id. You or the user can generate a unique ID that can be included as an idempotency_id with the usual request payload. If anyone attempts a request with the same idempotency_id, the response will raise an exception.

By passing an idempotency_id in the body of your requests, you can rest assured that when you create an Authorization or Transfer, the user will be protected from potential network issues.

idempotency_id is available on the following three endpoints:

Query Parameters

Every Finix resource (e.g., Authorizations, Transfers) can be listed and reviewed using GET requests. Additionally, every endpoint has query parameters available to help you filter the resources that are returned.

See the following example of how to query the Transfers endpoint for Transfer resources with type: DEBIT.

curl "https://finix.sandbox-payments-api.com/transfers?type=DEBIT" \
    -H "Finix-Version: 2022-02-01" \
    -u USsRhsHYZGBPnQw8CByJyEQW:8a14c2f9-d94b-4c72-8f5c-a62908e5b30e

Tags

Many Finix resources (e.g., Authorization, Transfer) let you include tags to add key-value metadata to your Finix API resources. For example, when creating a Transfer, you might include customerId: Customer123 to tag the Transfer with your internal customer ID. You can update tags as many times as needed, as well as filter resources by tags.

{
    "tags": {
        "card-type": "business card",
        "order_number": "H-1257",
        "customer_order_reference": "order1234",
        "item_type": "hardware",
        "vendor": "finix"
    }
}

The tags object accepts up to 50 key: value pairs to annotate resources with custom metadata.

Versioning

As Finix improves our products and features, we will make changes to our APIs. When breaking changes are made to Finix's API, we may release a new dated API version. The API version your requests use controls how API responses and webhooks behave (for example, the values you see in responses and the parameters you can include in requests). For more information, see Versioning.

Postman Collection

Finix has a Postman collection to help in your development. You can fork it using the button below.

Servers

Sandbox server

https://finix.sandbox-payments-api.com

Security

BasicAuth

Type: http Scheme: basic

Download OpenAPI description

Finix API Reference

Authorizations

An Authorization (also known as a card hold) reserves a specific amount on a card to be captured (i.e. debited) at a later date, usually within seven days. When an Authorization is captured, it produces a Transfer resource.

Create an Authorization

List Authorizations

Fetch an Authorization

Capture an Authorization

Void an Authorization

Compliance Forms

To process payments, your Merchants must validate their compliance with PCI DSS requirements annually. To do this, your Merchants must attest to PCI Self-Assessment Questionnaire (SAQ) compliance forms.

Fetch a Compliance Form

Complete a Compliance Form

List Compliance Forms

Devices

A Device resource represents a Point-of-Sale terminal. Devices are used for In-Person transactions.

List Devices

Fetch a Device

Update Device

Terminals must be online and connected to the network in order for the request to be successful.

You can initiate an action on a Device. Actions supported vary by gateway.

FINIX_V1 and DUMMY_V1 terminals support the following actions:

For processors other than FINIX_V1 and DUMMY_V1, contact your Finix point of contact or email Finix Support for device update instructions.

You can also use a PUT request to update the configuration, description, name, and serial_number of the Device.

Check Device Connection

List Device Metrics

Use this endpoint to retrieve a device's Device Metric logs.

Create a Merchant Device

Disputes

Disputes, also known as chargebacks, are customer-disputed charges. A core part of the dispute lifecycle is the ability for a Merchant to upload evidence supporting their side.

List Disputes

Fetch a Dispute

Update Dispute

Upload Files as Dispute Evidence

You can upload up to 8 files; the total size of the uploaded files combined cannot exceed 10 MB. The allowed file formats include JPEG, PDF, PNG. Individual JPEG, PDF, PNG files can't exceed 1 MB. PNG files will be automatically converted and returned as JPEG files.

List Dispute Evidence

Fetch Dispute Evidence

If the Finix Dashboard is unavailable, you can fetch the evidence to review the upload state and confirm it was sent to the processor.

Update Dispute Evidence

Delete Dispute Evidence

List Dispute Adjustment Transfers

Submit Dispute Evidence

Accept a Dispute

Download Dispute Evidence

Fees

A Fee is a charge levied against a Merchant. It represents how a platform charges its sellers for all various types of Fees.

List Fees

Filter fees by linked entity: You can filter fees by the entity that generated them using the linked_to query parameter:

To show fees charged to a specific entity during a period, pass the created_at.gte and created_at.lte query parameters.

Example: ?merchant_id=MUeDVrf2ahuKc9Eg5TeZugvs&created_at.lte=2025-01-01&created_at.gte=2025-02-01

Create a Custom Fee

Fetch a Fee

Update Fee

List Fees

Filter fees by linked entity: You can filter fees by the entity that generated them using the linked_to query parameter:

To show fees charged to a specific entity during a period, pass the created_at.gte and created_at.lte query parameters.

Example: ?merchant_id=MUeDVrf2ahuKc9Eg5TeZugvs&created_at.lte=2025-01-01&created_at.gte=2025-02-01

List Split Transfers

Fee Profiles

A fee_profiles represents a pricing scheme that automatically applies fees to each transaction. Changes to fee_profiles go into effect immediately.

Create a Fee Profile

List Fee Profiles

Fetch a Fee Profile

Files

Use Finix's File API to upload and manage files for your merchants.

Create a File

List Files

Fetch a File

Identities

An Identity resource represents either a person or business in Finix. You'll create an Identity to onboard your sellers, and verify the different owners.

Create an Identity

List Identities

Fetch an Identity

Update an Identity

Create an Associated Identity

List Associated Identities

Fetch an Identity's Merchant

Merchants

A Merchant resource represents the entity's merchant account on a processor. Your Merchant must be APPROVED to process payments.

Create a Merchant

List Merchants

Fetch a Merchant

Update a Merchant

Verify a Merchant

Onboarding Forms

Finix offers and hosts pre-built onboarding forms that you can use to collect onboarding and identity verification information from your users.

Create an Onboarding Form

Fetch an Onboarding Form

Create an Onboarding Form Link

Payment Instruments

A Payment Instrument resource represents the payment details of a credit card or bank account.

Create a Payment Instrument

List Payment Instruments

Fetch a Payment Instrument

Update a Payment Instrument

List Instrument History Entries

Verify CVV, AVS, and Name

Create an Apple Pay Session

Transfers

A Transfer represents any flow of funds either to or from a Payment Instrument. All payments in Finix are represented by a Transfer.

Create a Transfer

List Transfers

Fetch a Transfer

Update a Transfer

Refund or Reverse a Transfer

List Transfer Reversals

Users

A User resource represents a pair of API keys which are used to perform authenticated requests against the Finix API.

List Users

Fetch a User by ID

Update a User