ach direct debits.md

ACH Direct Debits

Sellers can accept payments from buyers' US-based bank accounts. Often, these payments are referred to as "ACH payments" or "ACH Direct Debits".

ACH Direct Debits are an alternative to credit and debit card payments. ACH Direct Debits are processed through the Automated Clearing House (ACH) payments system, operated by the National Automated Clearinghouse Association (Nacha).

In this guide, you can learn how to accept payments from US-based bank accounts.

Overview

ACH Return Risk

ACH returns can lead to losses. We recommend taking ACH payments from buyers whom you have a known or prior established relationship with.

Unlike card payments, ACH Direct Debits are not real-time. It can take between 4 and 10 business days to fully authorize the transaction with the buyer's bank and learn whether it failed or succeeded. Buyers can dispute the transaction up to 60 days after the initial payment date.

Often, businesses mitigate risk or losses from ACH Return risk by:

Finix requires the following details from buyers to process ACH Direct Debits:

Detail Description
Bank Code The routing number of the buyer's bank account
Account Number The account number of the buyer's bank account
Buyer Name The buyer's name

You can collect this bank account information using Tokenization Forms or SDKs, as well as our Plaid integration.

ACH Direct Debit Flow

ACH Direct Debits start as PENDING, and move to either SUCCEEDED or FAILED as the payment processes.

Transfer State Description
PENDING Finix is processing the ACH Direct Debit.
SUCCEEDED Finix has accepted the ACH Direct Debit. The buyer's bank may or may not have accepted the payment yet.
FAILED Finix did not accept the ACH Direct Debit.

Successful ACH Direct Debits SUCCEEDED means that Finix submitted the ACH direct debit details to the ACH networks. It can take 4-10 business days for the buyer's bank to process and confirm the debit was successful.

ACH Direct Debit Timing

ACH Direct Debits take longer than credit card payments to move and settle funds. To account for this, Finix creates an "ACH Settlement Delay" to accommodate any ACH Returns that may occur.

By default, the ACH Settlement Delay holds ACH Direct Debits for 5 days before Finix batches them into payout Settlements.

Sellers may want ACH Direct Debits to appear in settlements faster or slower, depending on their business needs. For example, the ACH Settlement Delay can be:

To customize this delay, reach out to your Finix point of contact or email the Finix Support team.

Bank Account Validation

In compliance with Nacha's bank account validation rule, Finix validates bank accounts before processing ACH payments. Finix validates the bank account the first time it's used, as well as after any changes are made.

The Transfer's bank_account_validation_check field explains the results of this check.

Bank Account Validation Check Description
NOT_ATTEMPTED Default value for new bank accounts that haven't been validated yet.
VALID Bank account was found and confirmed to accept ACH Direct Debits.
INVALID Bank account couldn't be found or validated. A Transfer created with a bank account marked INVALID will fail. Please contact the account holder to confirm details or request a different payment method.
INCONCLUSIVE Bank account couldn't be found and validation was INCONCLUSIVE. Bank accounts marked as inconclusive can still be used to create an ACH Transfer.

Payment Authorization Language

Before processing any ACH Direct Debit payments, the buyer must agree to the following statement:

By clicking submit, you authorize us to initiate an automated clearing house (ACH) one-time debit in your name to your bank account indicated above. The amount of this transaction as noted above will be presented to your financial institution by the next business day. You further agree that once you click submit you may not revoke this authorization or cancel this payment.

We recommend presenting this language in your checkout flow right before the buyer clicks the Submit button and triggers the creation of the payment.

Payment Confirmation Language

After the payment is submitted, present a confirmation screen and/or email a confirmation to the buyer with the following language:

Thank you for your payment in the amount of $xx.xx. Please print this authorization for your records. You have authorized us to initiate an automated clearing house (ACH) one-time debit in your name to your bank account. This transaction will be presented to your financial institution by the next business day. You further agree that you may not revoke this authorization or cancel this payment.

Creating ACH Direct Debits

To create an ACH Direct Debit, simply create an Identity, Payment Instrument, and Transfer.

Step 1: Create a Buyer

First, create an Identity to represent your buyer. The Identity resource represents both buyers and sellers. If you're a platform managing multiple sellers, see our Platform Payments guide to learn how to onboard sellers.

Your buyer's Identity stores their personal data (such as name and email), and helps manage their payments, payment methods, identity verification, and more.

Buyer Identity Data
All buyer Identity fields are optional. However, Finix recommends including basic information (name, email, address, and phone) to make payment operations easier.

Example

{
  "id": "IDgjFNYNraTBiKUyTXB4GFNe",
  "created_at": "2025-08-12T19:56:51.90Z",
  "updated_at": "2025-08-12T19:56:51.90Z",
  "application": "APc9vhYcPsRuTSpKD9KpMtPe",
  "entity": {
    "ach_max_transaction_amount": 0,
    "amex_mid": null,
    "annual_card_volume": 0,
    "business_address": null,
    "business_name": null,
    "business_phone": null,
    "business_tax_id_fingerprint": null,
    "business_tax_id_provided": false,
    "business_type": null,
    "default_statement_descriptor": null,
    "discover_mid": null,
    "dob": null,
    "doing_business_as": null,
    "email": "finix_example@finix.com",
    "first_name": "John",
    "has_accepted_credit_cards_previously": false,
    "incorporation_date": null,
    "last_name": "Smith",
    "max_transaction_amount": 0,
    "mcc": null,
    "ownership_type": null,
    "personal_address": {
      "line1": "741 Douglass St",
      "line2": "Apartment 7",
      "city": "San Mateo",
      "region": "CA",
      "postal_code": "94114",
      "country": "USA"
    },
    "phone": "7145677613",
    "principal_percentage_ownership": null,
    "short_business_name": null,
    "tax_authority": null,
    "tax_id_fingerprint": null,
    "tax_id_provided": false,
    "title": null,
    "url": null
  },
  "identity_roles": [
    "BUYER"
  ],
  "tags": {
    "key": "value"
  },
  "type": "PERSONAL",
  "_links": {
    "self": {
      "href": "https://finix.sandbox-payments-api.com/identities/IDgjFNYNraTBiKUyTXB4GFNe"
    },
    "verifications": {
      "href": "https://finix.sandbox-payments-api.com/identities/IDgjFNYNraTBiKUyTXB4GFNe/verifications"
    },
    "merchants": {
      "href": "https://finix.sandbox-payments-api.com/identities/IDgjFNYNraTBiKUyTXB4GFNe/merchants"
    },
    "settlements": {
      "href": "https://finix.sandbox-payments-api.com/identities/IDgjFNYNraTBiKUyTXB4GFNe/settlements"
    },
    "authorizations": {
      "href": "https://finix.sandbox-payments-api.com/identities/IDgjFNYNraTBiKUyTXB4GFNe/authorizations"
    },
    "transfers": {
      "href": "https://finix.sandbox-payments-api.com/identities/IDgjFNYNraTBiKUyTXB4GFNe/transfers"
    },
    "payment_instruments": {
      "href": "https://finix.sandbox-payments-api.com/identities/IDgjFNYNraTBiKUyTXB4GFNe/payment_instruments"
    },
    "associated_identities": {
      "href": "https://finix.sandbox-payments-api.com/identities/IDgjFNYNraTBiKUyTXB4GFNe/associated_identities"
    },
    "disputes": {
      "href": "https://finix.sandbox-payments-api.com/identities/IDgjFNYNraTBiKUyTXB4GFNe/disputes"
    },
    "application": {
      "href": "https://finix.sandbox-payments-api.com/applications/APc9vhYcPsRuTSpKD9KpMtPe"
    }
  }
}

Step 2: Create a Payment Instrument

Next, create a Payment Instrument to save your buyer's bank account details. You can collect this data using our Tokenization Forms or SDKs, as well as our Plaid integration.

Example

{
  "id": "PIkfiTDWYhQ4VbtQkC1U1ceJ",
  "created_at": "2024-06-21T04:09:03.77Z",
  "updated_at": "2024-06-21T04:09:03.77Z",
  "application": "APgPDQrLD52TYvqazjHJJchM",
  "created_via": "API",
  "currency": "USD",
  "disabled_code": null,
  "disabled_message": null,
  "enabled": true,
  "fingerprint": "FPRxpMNPZbZqVQfcHzRUJnzkR",
  "identity": "IDpYDM7J9n57q849o9E9yNrG",
  "instrument_type": "BANK_ACCOUNT",
  "account_type": "BUSINESS_CHECKING",
  "bank_account_validation_check": "NOT_ATTEMPTED",
  "bank_code": "122105278",
  "country": "USA",
  "institution_number": null,
  "masked_account_number": "XXXXXX0019",
  "name": "Smith & Associates Consulting",
  "transit_number": null,
  "tags": {},
  "third_party": null,
  "third_party_token": null,
  "type": "BANK_ACCOUNT",
  "_links": {
    "self": {
      "href": "https://finix.sandbox-payments-api.com/payment_instruments/PIkfiTDWYhQ4VbtQkC1U1ceJ"
    },
    "authorizations": {
      "href": "https://finix.sandbox-payments-api.com/payment_instruments/PIkfiTDWYhQ4VbtQkC1U1ceJ/authorizations"
    },
    "transfers": {
      "href": "https://finix.sandbox-payments-api.com/payment_instruments/PIkfiTDWYhQ4VbtQkC1U1ceJ/transfers"
    },
    "verifications": {
      "href": "https://finix.sandbox-payments-api.com/payment_instruments/PIkfiTDWYhQ4VbtQkC1U1ceJ/verifications"
    },
    "application": {
      "href": "https://finix.sandbox-payments-api.com/applications/APgPDQrLD52TYvqazjHJJchM"
    },
    "identity": {
      "href": "https://finix.sandbox-payments-api.com/identities/IDpYDM7J9n57q849o9E9yNrG"
    }
  }
}

Step 3: Create a Transfer

Finally, create a Transfer using the buyer's Payment Instrument as the source. This will debit funds directly from the buyer's bank account. ACH Direct Debits have type: DEBIT, and start with state: PENDING. The ready_to_settle_at field indicates when the Transfer will get batched into the next settlement. This field is updated asynchronously.

Example

{
  "id": "TRbJcpXFnNnwcdzWTQX1wnYr",
  "created_at": "2025-07-25T18:01:07.76Z",
  "updated_at": "2025-07-25T18:01:07.76Z",
  "additional_buyer_charges": null,
  "additional_healthcare_data": null,
  "additional_purchase_data": null,
  "address_verification": null,
  "amount": 6031,
  "amount_requested": 6031,
  "application": "APc9vhYcPsRuTSpKD9KpMtPe",
  "currency": "USD",
  "destination": null,
  "externally_funded": "UNKNOWN",
  "failure_code": null,
  "failure_message": null,
  "fee": 0,
  "fee_profile": "FPuizPqrhzYLbmJm88u7aqfj",
  "idempotency_id": null,
  "merchant": "MUmfEGv5bMpSJ9k5TFRUjkmm",
  "merchant_identity": "ID6UfSm1d4WPiWgLYmbyeo3H",
  "messages": [],
  "operation_key": "CARD_NOT_PRESENT_SALE",
  "parent_transfer": null,
  "parent_transfer_trace_id": null,
  "raw": null,
  "ready_to_settle_at": null,
  "receipt_last_printed_at": null,
  "security_code_verification": null,
  "source": "PI9XuhFdFzJ5V9aGYUm6XtH",
  "split_transfers": [],
  "state": "PENDING",
  "statement_descriptor": "FLX*FINIX FLOWERS",
  "subtype": "API",
  "supplemental_fee": null,
  "tags": {
    "order_number": "21DFASJSAKAS"
  },
  "tip_amount": null,
  "trace_id": "cc45e290-8c5c-4a76-9546-17d242964206",
  "type": "DEBIT",
  "_links": {
    "application": {
      "href": "https://finix.sandbox-payments-api.com/applications/APc9vhYcPsRuTSpKD9KpMtPe"
    },
    "self": {
      "href": "https://finix.sandbox-payments-api.com/transfers/TRbJcpXFnNnwcdzWTQX1wnYr"
    },
    "merchant_identity": {
      "href": "https://finix.sandbox-payments-api.com/identities/IDhC29dXMAkbmr1aBpS91Hpx"
    },
    "payment_instruments": {
      "href": "https://finix.sandbox-payments-api.com/transfers/TRbJcpXFnNnwcdzWTQX1wnYr/payment_instruments"
    },
    "reversals": {
      "href": "https://finix.sandbox-payments-api.com/transfers/TRbJcpXFnNnwcdzWTQX1wnYr/reversals"
    },
    "fees": {
      "href": "https://finix.sandbox-payments-api.com/fees?linked_to=TRbJcpXFnNnwcdzWTQX1wnYr"
    },
    "disputes": {
      "href": "https://finix.sandbox-payments-api.com/transfers/TRbJcpXFnNnwcdzWTQX1wnYr/disputes"
    },
    "source": {
      "href": "https://finix.sandbox-payments-api.com/payment_instruments/PI9XuhFdFzJ5V9aGYUm6XtH"
    },
    "fee_profile": {
      "href": "https://finix.sandbox-payments-api.com/fee_profiles/FPuizPqrhzYLbmJm88u7aqfj"
    }
  }
}

ACH Returns

ACH Direct Debits can fail for multiple reasons, including:

Most disputes arise within 3-5 business days of the transaction. However, buyers can dispute ACH Direct Debits for any reason up to 60 days after the payment got processed. ACH Direct Debits older than 60 days are guaranteed not to be disputed or get returned.

When a ACH Direct Debit fails, Finix automatically creates an ACH Return to recover the original payment amount. ACH Returns are represented by Transfers with type: REVERSAL and subtype: SYSTEM. You can view ACH Returns in the Finix Dashboard.

Example

{
    "id": "TR4YKKnhbCk54EXCc7pGxgNx",
    "amount": "8000",
    "tags": {
        "result_message_0": "ReasonCode: R04",
        "result_message_1": "ReasonDescription: Invalid Account Number"
    },
    "state": "SUCCEEDED",
    "trace_id": "8e608a61-eeac-477e-93bf-a3032bfc1352",
    "currency": "USD",
    "application": "APg5RS31BShqrRvwheH63A6F",
    "source": null,
    "destination": "PIp6s3WFMBbiugrUo5QveQ8u",
    "ready_to_settle_at": "2025-01-03T20:01:02.34Z",
    "externally_funded": "FALSE",
    "fee": "0",
    "statement_descriptor": null,
    "type": "REVERSAL",
    "fee_type": null,
    "messages": [],
    "raw": null,
    "created_at": "2025-01-02T20:10:01.56Z",
    "updated_at": "2025-01-02T20:10:01.56Z",
    "idempotency_id": null,
    "merchant_identity": "ID76b9UfSem4ekbCDpRCZjwu",
    "operation_key": null,
    "failure_code": null,
    "failure_message": null,
    "additional_buyer_charges": null,
    "additional_purchase_data": null,
    "additional_healthcare_data": null,
    "address_verification": null,
    "security_code_verification": null,
    "links": {
        "application": {
            "href": "https://finix.sandbox-payments-api.com/applications/APg5RS31BShqrRvwheH63A6N"
        },
        "self": {
            "href": "https://finix.sandbox-payments-api.com/transfers/TR4YKKnhbCk54EXCc7pGxgNy"
        },
        "merchant_identity": {
            "href": "https://finix.sandbox-payments-api.com/identities/ID76b9UfSem4ekbCDpRBZjwu"
        },
        "payment_instruments": {
            "href": "https://finix.sandbox-payments-api.com/transfers/TR4YKKnhbCk54EXCc7pGxgNy/payment_instruments"
        },
        "parent": {
            "href": "https://finix.sandbox-payments-api.com/transfers/TR6uHGCfpwNYwm2XXt5x32Y4"
        },
        "destination": {
            "href": "https://finix.sandbox-payments-api.com/payment_instruments/PIp6s3WFMBbiugrUo5QveQ8u"
        },
        "fee_profile": {
            "href": "https://finix.sandbox-payments-api.com/fee_profiles/FPmtT4MYmiAs1qjLjneQmk4d"
        }
    },
    "device": null,
    "card_present_details": null,
    "amount_requested": 8000,
    "merchant": "MUwcLg8R5SsHeY7bg7rsjV2R",
    "receipt_last_printed_at": null,
    "split_transfers": [],
    "parent_transfer": "TR6uHGCfpwNYwm2XXt5x32Y4",
    "parent_transfer_trace_id": "8e608a61-eeac-477e-93bf-a3032bfc1352",
    "tip_amount": null,
    "related": {},
    "subtype": "SYSTEM"
}

ACH Return Reason Codes

The ACH Return Reason Code explains why the ACH Direct Debit failed and was ultimately returned.

Code Description
R01 Insufficient funds in account
R02 Account is closed
R03 No account on file
R04 Invalid account number
R05 Unauthorized debit to consumer account
R06 Returned at request of ODFI
R07 Authorization revoked by customer
R08 Payment stopped
R09 Insufficient collected funds in account being charged
R10 Customer advises not Authorized, notice not provided, improper source document, or amount of entry not accurately obtained from source document
R11 Check truncation return
R12 Account sold to another financial institution
R13 Invalid ACH routing number
R14 Representative payee is deceased or cannot continue in that capacity
R15 Beneficiary or account holder other than representative payee deceased
R16 Account funds have been frozen
R17 Item returned because of invalid data; refer to addenda for information
R18 Improper effective date
R19 Amount error
R20 Account does not allow ACH transactions or limit for transactions has been exceeded
R21 Invalid company identification
R22 Invalid individual ID
R23 Credit entry refused by receiver
R24 Duplicate entry
R25 Addenda record error
R26 Mandatory field error
R27 Trace number error
R28 Routing/transit number check digit error
R29 Corporate customer advised not authorized
R30 RDFI not participant in check truncation program
R31 Permissible return entry
R32 RDFI non-settlement
R33 Return of item
R34 Limited participation ODFI
R35 Return of improper debit entry
R36 Return of improper credit entry
R37 Source document presented for payment
R38 Stop payment on source document
R39 Improper source document
R40 Return of item by government agency
R41 Invalid Transaction Code
R42 Routing/transit number check digit error
R43 Invalid account number
R44 Invalid individual ID
R45 Invalid individual name or company name
R46 Invalid representative payee indicator
R47 Duplicate enrollment
R50 State law affecting RCK acceptance
R51 Item is ineligible, notice not provided, signature not genuine, or original item altered for adjustment entry
R52 Stop payment on item
R53 Item and ACH entry presented for payment
R61 Misrouted return - RDFI for original entry has placed incorrect routing/transit number in RDFI identification field
R67 Duplicate return
R68 Untimely return - return was not sent within the established time frame
R69 Field errors
R70 Permissible return entry not accepted
R71 Misrouted dishonored return -incorrect routing/transit number in RDFI identification field
R72 Untimely return - dishonored return was not sent within the established time frame
R73 Timely original return - RDFI certifies the original return entry was sent within established time frame for original returns
R74 Corrected return - RDFI is correcting a previous return entry that was dishonored because it contained incomplete or incorrect information
R75 Original return not a duplicate
R76 No errors found
R80 Cross-border payment coding error
R81 Non-participant in cross-border program
R82 Invalid foreign RDFI identification
R83 Foreign RDFI unable to settle
R84 Cross-border entry not processed by originating gateway operator

ACH Refunds

You can refund ACH Direct Debits, similar to how you can refund card payments. To initiate an ACH Refund, create a Reversal Transfer with the /reversals endpoint. You'll pass in the id of the original Transfer you'd like to reverse. This creates a Transfer with type: REVERSAL, with the original transfer linked in _links.parent.

Reversal Request

curl https://finix.sandbox-payments-api.com/transfers/TR6Gnj38UyPW3CoukdL9WaR1/reversals \
    -H "Content-Type: application/json" \
    -u USsRhsHYZGBPnQw8CByJyEQW:8a14c2f9-d94b-4c72-8f5c-a62908e5b30e \
    -d '{
        "refund_amount": 6031,
        "tags": {
            "test": "refund"
        }
    }'

Example

{
    "id": "TRnqh2Mt6pnnPumxvenDmVjX",
    "created_at": "2022-10-10T05:36:19.18Z",
    "updated_at": "2022-10-10T05:36:19.27Z",
    "additional_buyer_charges": null,
    "additional_healthcare_data": null,
    "address_verification": null,
    "amount": 6031,
    "amount_requested": 6031,
    "application": "APgPDQrLD52TYvqazjHJJchM",
    "currency": "USD",
    "destination": "PImmCg3Po7oNi7jaZcXhfkEu",
    "externally_funded": "UNKNOWN",
    "failure_code": null,
    "failure_message": null,
    "fee": 0,
    "idempotency_id": null,
    "merchant": "MUeDVrf2ahuKc9Eg5TeZugvs",
    "merchant_identity": "IDuqZpDw28f2KK6YuDk4jNLg",
    "messages": [],
    "raw": null,
    "ready_to_settle_at": null,
    "security_code_verification": null,
    "source": null,
    "state": "PENDING",
    "statement_descriptor": "FNX*FINIX FLOWERS",
    "subtype": "API",
    "tags": {
        "test": "refund"
    },
    "trace_id": "5cc0ab4e-3609-4a13-a9c3-b435328360c1",
    "type": "REVERSAL",
    "_links": {
        "application": {
            "href": "https://finix.sandbox-payments-api.com/applications/APgPDQrLD52TYvqazjHJJchM"
        },
        "self": {
            "href": "https://finix.sandbox-payments-api.com/transfers/TRnqh2Mt6pnnPumxvenDmVjX"
        },
        "parent": {
            "href": "https://finix.sandbox-payments-api.com/transfers/TR6Gnj38UyPW3CoukdL9WaR1"
        },
        "destination": {
            "href": "https://finix.sandbox-payments-api.com/payment_instruments/PImmCg3Po7oNi7jaZcXhfkEu"
        },
        "merchant_identity": {
            "href": "https://finix.sandbox-payments-api.com/identities/IDuqZpDw28f2KK6YuDk4jNLg"
        },
        "payment_instruments": {
            "href": "https://finix.sandbox-payments-api.com/transfers/TRnqh2Mt6pnnPumxvenDmVjX/payment_instruments"
        },
        "fee_profile": {
            "href": "https://finix.sandbox-payments-api.com/fee_profiles/FPvCQUcnsueN3Bc3zR1qCBG8"
        }
    }
}

After the refund is processed, the Transfer's state will change to SUCCEEDED. Buyers will see the refund returned as a credit within 5 to 10 business days, depending on their bank. ACH Direct Debit refunds can’t get canceled once processed.

Refunded ACH Returns

Banks manage the ACH networks and often pre-fund transactions before debiting funds. In rare cases, ACH Refunds may be returned:

When an ACH Refund is returned, Finix creates two Transfers to credit the funds back to the original bank account. You'll receive transfer created webhooks.

Example Transfer Created Webhook for ACH Merchant Credit

{
    "type": "created",
    "entity": "transfer",
    "occurred_at": "2022-09-01T20:49:23.437609",
    "_embedded": {
        "transfers": [
            {
                "idempotency_id": null,
                "amount": 6031,
                "trace_id": "FNX3Rs9AKNwUVoVu112D40ec5",
                "failure_code": null,
                "fee": 603,
                "destination": null,
                "raw": null,
                "created_at": "2022-09-01T20:36:08.13Z",
                "source": "PIr1Ru7ewBkEYVVn7SP1u5FW",
                "merchant": "MUeDVrf2ahuKc9Eg5TeZugvs",
                "merchant_identity": "IDuqZpDw28f2KK6YuDk4jNLg",
                "failure_message": null,
                "type": "CREDIT",
                "tags": {
                    "result_message_0": "ReasonCode: R03",
                    "result_message_1": "ReasonDescription: No Account Unable to Locate Account"
                },
                "statement_descriptor": "FNX*FINIX FLOWERS",
                "additional_buyer_charges": null,
                "ready_to_settle_at": null,
                "application": "APgPDQrLD52TYvqazjHJJchM",
                "updated_at": "2022-09-01T20:49:23.43",
                "subtype": "MERCHANT_CREDIT_ADJUSTMENT",
                "externally_funded": "UNKNOWN",
                "messages": [],
                "currency": "USD",
                "id": "TRzoL5FmpxIP2TRAmHKSlHgz",
                "state": "SUCCEEDED"
            }
        ]
    }
}

Example Transfer Created Webhook for ACH Platform Debit

{
    "type": "created",
    "entity": "transfer",
    "occurred_at": "2022-09-01T20:49:23.437609",
    "_embedded": {
        "transfers": [
            {
                "idempotency_id": null,
                "amount": 6031,
                "trace_id": "FNXff8f88c140908eb69f3321",
                "failure_code": null,
                "fee": 603,
                "destination": null,
                "raw": null,
                "created_at": "2022-09-01T20:36:08.13Z",
                "source": "PIr1Ru7ewBkEYVVn7SP1u5FW",
                "merchant": "MUeDVrf2ahuKc9Eg5TeZugvs",
                "merchant_identity": "IDuqZpDw28f2KK6YuDk4jNLg",
                "failure_message": null,
                "type": "DEBIT",
                "statement_descriptor": "FNX*FINIX FLOWERS",
                "additional_buyer_charges": null,
                "ready_to_settle_at": null,
                "application": "APgPDQrLD52TYvqazjHJJchM",
                "updated_at": "2022-09-01T20:49:23.43",
                "subtype": "PLATFORM_DEBIT_ADJUSTMENT",
                "externally_funded": "UNKNOWN",
                "messages": [],
                "currency": "USD",
                "id": "TRoom5emPxiP1TRAmHcSjHgz",
                "state": "SUCCEEDED"
            }
        ]
    }
}