Update Requests

Learn how to handle update requests when onboarding sellers.


In some cases, Finix requests documents or data updates during the seller onboarding process. Finix requests these updates when we need additional information to verify your sellers (for example, if we cannot identify the bank account's owner), or when your seller's data is invalid (for example, if the bank account's routing number does not belong to a financial institution).

When this happens, Finix will move the Merchant to the Update Requested state and re-review their application after receiving the requested updates. This guide explains how to handle update requests with our Dashboard and APIs.

Handling Update Requests with the Dashboard

Viewing Update Requests

On the Merchants > Merchant Accounts page, you can see all Merchants in your system. The Update Requested tab [1] shows all Merchants with outstanding update requests. To see the updates Finix has requested, you can check the Onboarding State column [2], or click on the Merchant to navigate to their account page.

Merchant Accounts

On the Merchant page, you will find details about the documents and data updates Finix has requested. You may also see notes providing additional context about the requested updates (for example, we may include a note explaining that the bank account routing number is invalid).

Merchant Page

Making Updates with Onboarding Forms

If you boarded your Merchant with an Onboarding Form, your Merchant can make the requested updates using their original Onboarding Form. To do this, use the Get Onboarding Form Link button on the Merchant page to get and copy your Merchant's Onboarding Form link. You can send the link to your Merchant however you like (for example, over email).

Onboarding Form Link

Once your Merchant is back inside their Onboarding Form, they will see exactly which documents and data updates Finix has requested [1]. They will have file uploaders for each document [2], and we will highlight each field they need to update in red [3].

Onboarding Form Link

After your Merchant completes the requested updates and re-submits their Onboarding Form, Finix will update their Onboarding State state back to Provisioning and re-review their application. No action is needed from your team at this point (Finix will automatically create a new verification on their account).

Making Updates with the Dashboard

Alternatively, your team can make updates to your Merchants directly inside the Finix Dashboard. You might do this if you already have the requested documents or correct data on-hand, and prefer to handle the update request on behalf of your Merchant.

You can upload documents on the Merchant page [1], as well as navigate to and edit their Identity to make data updates [2]. Your Merchant can upload files through their own Dashboard as well. After uploading files or updating the Identity, your team must create a new verification on the Merchant [3] to put the Merchant back in the underwriting process for further review.

Onboarding Form

Finix advises making updates with Onboarding Forms to streamline this process, but offers the option to make updates through the Dashboard to give your team the most flexibility.

Notifications

Finix offers notifications through both email and the Finix dashboard, making it easy for your team to receive updates as your sellers progress through onboarding. For example, your team can subscribe to receive notifications when your sellers submit their Onboarding Forms and are approved.

To learn more about notifications, see Notifications and Webhooks.

Handling Update Requests with the API

Merchant Resource

When Finix requests updates from your Merchant, your Merchant's onboarding_state will be UPDATED_REQUESTED.

Copy
Copied
{
    "id": "MUno35MtzSMr61mUvY7qCayR",
    "created_at": "2022-01-27T07:36:58.19Z",
    "updated_at": "2022-10-06T20:25:24.06Z",
    "application": "APgPDQrLD52TYvqazjHJJchM",
    "card_cvv_required": false,
    "card_expiration_date_required": true,
    "convenience_charges_enabled": false,
    "creating_transfer_from_report_enabled": true,
    "default_partial_authorization_enabled": false,
    "fee_ready_to_settle_upon": "RECONCILIATION",
    "gross_settlement_enabled": false,
    "identity": "IDpYDM7J9n57q849o9E9yNrG",
    "level_two_level_three_data_enabled": false,
    "mcc": "4900",
    "merchant_name": "Bobs Burgers",
    "merchant_profile": "MPzW2oRPtkLxK3fymcMACFi",
    "mid": "FNXh6htoPnfwmgGdvaG4L67Q1",
    "onboarding_state": "UPDATE_REQUESTED",
    "processing_enabled": true,
    "processor": "DUMMY_V1",
    "processor_details": {},
    "ready_to_settle_upon": "RECONCILIATION",
    "rent_surcharges_enabled": false,
    "settlement_enabled": true,
    "settlement_funding_identifier": "UNSET",
    "surcharges_enabled": false,
    "tags": {},
    "verification": "VIxfDrRKZZzkCDDbeCT15oDN",
    "_links": {}
}

Verification Resource

When Finix requests updates from your Merchant, the Verification will have state: FAILED, as well as an outcomes array listing each outcome_code assigned to your Merchant. In addition, your Merchant will have an outcome_summary providing additional context about the requested updates (for example, we may include a note explaining the bank account routing number is invalid). Use the Merchant's Verification ID (verification) to get the Verification.

Copy
Copied
{
    "id": "VIvyMuSk9EdyVUrCw2JcXq4r",
    "created_at": "2023-09-12T16:08:17.03Z",
    "updated_at": "2023-09-12T16:08:17.10Z",
    "application": "AP7sqs8G9eTwcLPpjEHLgfUq",
    "identity": null,
    "merchant": "MUno35MtzSMr61mUvY7qCayR",
    "merchant_identity": "IDbM99DS8MaYXyqynqB7z1mR",
    "messages": [
        "ID_VERIFICATION_NEEDED",
        "ID_VERIFICATION_FAILED"
    ],
    "outcomes": [
        {
            "outcome_code": "BANK_STATEMENT_ONE_MONTH_REQUESTED",
            "remediation_details": {
                "type": "FILE_UPLOAD",
                "file_type": "BANK_STATEMENT_ONE_MONTH",
                "entity_type": "IDENTITY",
                "entity_id": "ID5ZbV3hkc7eLxNhmFjfrrYA"
            }
        },
        {
            "outcome_code": "INVALID_BUSINESS_TAX_ID",
            "remediation_details": {
                "type": "FIELD_UPDATE",
                "field_name": "entity.business_tax_id",
                "entity_type": "IDENTITY",
                "entity_id": "ID5ZbV3hkc7eLxNhmFjfrrYA"
            }
        }
    ],
    "outcome_summary": "Requesting a bank statement and valid business tax ID.",
    "payment_instrument": null,
    "payment_instrument_verification_details": {},
    "processor": "LITLE_V1",
    "raw": [
        {
            "outcome_code": "ID_VERIFICATION_NEEDED",
            "description": "ID Verification needed on owner(s).",
            "remediation_item": "Submit a valid Driver's License, State ID, or Passport. To submit these file(s), use our File Upload feature. "
        },
        {
            "outcome_code": "ID_VERIFICATION_FAILED",
            "description": "ID Verification was unsuccessful.",
            "remediation_item": "Ensure ID Verification matches the owner's full name, is readable, and is not expired. Resubmit ID Verification to the link provided by Customer Service for the Merchant Resource (MUxx)."
        }
    ],
    "state": "FAILED",
    "tags": {},
    "trace_id": "FNXboZb9r4P8TRKXluF2udGEv",
    "type": "MERCHANT",
    "_links": {}
}

outcomes format

Each object in outcome_codes has the following properties, including remediation_details that describe how to resolve the outcome codes to get your Merchant boarded.

Field Description Format Example
outcome_code Outcome code Enum BUSINESS_INCORPORATION_DOCUMENT_REQUESTED
remediation_details Details on how to resolve the outcome code Object
remediation_details.type Type of update requested Enum FILE_UPLOAD, FIELD_UPDATE
remediation_details.file_type Type of File to be uploaded Enum BUSINESS_INCORPORATION_DOCUMENT
remediation_details.field_name Name of field to be updated String entity.business_tax_id
remediation_details.entity_type Type of entity for whom the update is requested Enum IDENTITY
remediation_details.entity_id ID of entity for whom the update is requested String ID5ZbV3hkc7eLxNhmFjfrrYA

Jump to Outcome Codes to see the possible outcomes Finix will assign to your Merchants.

Migrating Your Integration

If you are already integrated into the Verification resource, you will not need to update your integration into the messages and raw fields. To maintain backward compatibility, Finix maps the new outcomes object into those fields. While this lets you continue using those fields as needed, we encourage you to update your integration to get the most value from the Verification resource.

Onboarding Form Resource

If you boarded your Merchant with an Onboarding Form, their Onboarding Form will have status: UPDATE_REQUESTED when Finix requests updates from them. When your Merchant resubmits their Onboarding Form, it will move back to status: COMPLETED.

Copy
Copied
{
    "id": "obf_cJUfiz97L8de54EwkC3Hiu",
    "onboarding_data": {
        "entity": {...},
        "associated_entities": [...],
        "payment_instruments": {...},
        "additional_underwriting_data": {...},
        "max_transaction_amount": 100000
    },
    "merchant_processors": [...],
    "onboarding_link_details": {...},
    "onboarding_link": {...},
    "status": "UPDATE_REQUESTED",
    "identity_id": null,
    "application_id": "APgPDQrLD52TYvqazjHJJchM",
    "created_at": "2023-03-30T19:16:28.377022Z",
    "updated_at": "2023-03-30T19:16:28.377022Z",
    "tags": {}
}

Updating Fields

If the Verification has any outcomes with remediation_details.type: FIELD_UPDATE, you will need to update the specified Identity based on the field_name and entity_id. In the example below, you would need to update business_tax_id for ID5ZbV3hkc7eLxNhmFjfrrYA.

Copy
Copied
{
    "outcome_code": "INVALID_BUSINESS_TAX_ID",
    "remediation_details": {
        "type": "FIELD_UPDATE",
        "field_name": "entity.business_tax_id",
        "entity_type": "IDENTITY",
        "entity_id": "ID5ZbV3hkc7eLxNhmFjfrrYA"
    }
}

To perform these updates, Finix recommends asking your Merchants to review and update the specified fields within your application or onboarding flow. You can update the Identity with a PUT request. If you board a Merchant with any associated_identities, be sure to update the correct Identity when making the PUT request.

Copy
Copied
curl "https://finix.sandbox-payments-api.com/identities/ID5ZbV3hkc7eLxNhmFjfrrYA" \
  -H "Content-Type: application/json" \
  -H "Finix-Version: 2022-02-01" \
  -u USsRhsHYZGBPnQw8CByJyEQW:8a14c2f9-d94b-4c72-8f5c-a62908e5b30e \
  -X PUT \
  -d '
  {
    "entity": {
        "business_tax_id": "112222222"
    }
  }'

Finix does not include additional context in remediation_details that describe why the existing field is incorrect or the update was requested. However, Finix assigns these codes when we believe the fields have incorrect data. We recommend asking the Merchant to review and update the field as-needed. Finix may provide additional context on the requested updates through the outcome_summary field, but we do not recommend displaying this to your Merchant as it comes directly from the Finix underwriting team and is not meant for your end users.

Updating Bank Accounts

In some cases, Finix will assign outcome codes indicating that your Merchant's bank account details are incorrect (for example, Finix will assign INVALID_PAYMENT_INSTRUMENT_BANK_CODE if the bank account's routing number is invalid). To handle these outcome codes, you should collect the correct bank account details from your Merchant and create a new Payment Instrument:

Copy
Copied
curl "https://finix.sandbox-payments-api.com/payment_instruments" \
  -H 'Accept: application/hal+json' \
  -H 'Content-Type: application/json' \
  -H 'Finix-Version: 2022-02-01' \
  -u USsRhsHYZGBPnQw8CByJyEQW:8a14c2f9-d94b-4c72-8f5c-a62908e5b30e \
  -X POST \
  -d '
  {
    "account_number": "123123123",
    "account_type": "SAVINGS",
    "bank_code": "123123123",
    "identity": "ID5ZbV3hkc7eLxNhmFjfrrYA",
    "name": "John Smith",
    "type": "BANK_ACCOUNT"
  }'

Finix does not support editing Payment Instruments' account and routing numbers, so we recommend always creating a new Payment Instrument when handling outcome codes for invalid bank account data. Jump to Outcome Codes to see the outcome codes for invalid bank account data.

Uploading Files

If the Verification has any outcomes with remediation_details.type: FILE_UPLOAD, you will need to upload Files linked to the specified Identity based on the file_type and entity_id. In the example below, you would need to upload a BANK_STATEMENT_ONE_MONTH File linked to ID5ZbV3hkc7eLxNhmFjfrrYA.

Copy
Copied
{
    "outcome_code": "BANK_STATEMENT_ONE_MONTH_REQUESTED",
    "remediation_details": {
        "type": "FILE_UPLOAD",
        "file_type": "BANK_STATEMENT_ONE_MONTH",
        "entity_type": "IDENTITY",
        "entity_id": "ID5ZbV3hkc7eLxNhmFjfrrYA"
    }
}

Jump to File Types to see the new File types Finix supports, and see Uploading Files to Finix for instructions on uploading Files to Finix via API or Dashboard.

Creating Verifications

After resolving all outcome codes by updating fields or uploading files, you are ready put your Merchant back into underwriting process for further review. To do this, create another verification on the Merchant:

Copy
Copied
curl "https://finix.sandbox-payments-api.com/merchants/MUno35MtzSMr61mUvY7qCayR/verifications" \
    -H "Content-Type: application/json" \
    -H 'Finix-Version: 2022-02-01' \
    -u USsRhsHYZGBPnQw8CByJyEQW:8a14c2f9-d94b-4c72-8f5c-a62908e5b30e
    -X POST

Webhooks

Finix sends webhooks to update you about your seller's progress throughout the onboarding process. For example, you can listen to the Merchant Updated and Merchant Underwritten events to know when your Merchant transitions from PROVISIONING to another state.

To learn more about webhooks, see Notifications and Webhooks.

Outcome Codes

Business Outcome Codes

Finix assigns these outcome codes when there are issues related to your Merchant's business data. Use the remediation_details to know how to correct the issues and get the Merchant boarded. In these cases, the Merchant's onboarding_state is set to UPDATE_REQUESTED.

Business File Upload Requests

remediation_details
outcome_code
entity_type
type
file_type
BUSINESS_INCORPORATION_DOCUMENT_REQUESTED IDENTITY FILE_UPLOAD BUSINESS_INCORPORATION_DOCUMENT
INVALID_BUSINESS_INCORPORATION_DOCUMENT IDENTITY FILE_UPLOAD BUSINESS_INCORPORATION_DOCUMENT
BUSINESS_REGISTRATION_DOCUMENT_REQUESTED IDENTITY FILE_UPLOAD BUSINESS_REGISTRATION_DOCUMENT
INVALID_BUSINESS_REGISTRATION_DOCUMENT IDENTITY FILE_UPLOAD BUSINESS_REGISTRATION_DOCUMENT
BUSINESS_TAX_ID_DOCUMENT_REQUESTED IDENTITY FILE_UPLOAD BUSINESS_TAX_ID_DOCUMENT
INVALID_BUSINESS_TAX_ID_DOCUMENT IDENTITY FILE_UPLOAD BUSINESS_TAX_ID_DOCUMENT
BUSINESS_TAX_EXEMPTION_STATUS_DOCUMENT_REQUESTED IDENTITY FILE_UPLOAD BUSINESS_TAX_EXEMPTION_STATUS_DOCUMENT
INVALID_BUSINESS_TAX_EXEMPTION_STATUS_DOCUMENT IDENTITY FILE_UPLOAD BUSINESS_TAX_EXEMPTION_STATUS_DOCUMENT
BUSINESS_ADDRESS_DOCUMENT_REQUESTED IDENTITY FILE_UPLOAD BUSINESS_ADDRESS_DOCUMENT
INVALID_BUSINESS_ADDRESS_DOCUMENT IDENTITY FILE_UPLOAD BUSINESS_ADDRESS_DOCUMENT

Business Field Update Requests

remediation_details
outcome_code
entity_type
type
field_name
INVALID_BUSINESS_ADDRESS IDENTITY FIELD_UPDATE entity.business_address
INVALID_BUSINESS_DBA IDENTITY FIELD_UPDATE entity.doing_business_as
INVALID_BUSINESS_DESCRIPTION IDENTITY FIELD_UPDATE entity.business_description
INVALID_BUSINESS_INCORPORATION_DATE IDENTITY FIELD_UPDATE entity.incorporation_date
INVALID_BUSINESS_MCC IDENTITY FIELD_UPDATE entity.mcc
INVALID_BUSINESS_NAME IDENTITY FIELD_UPDATE entity.business_name
INVALID_BUSINESS_OWNERSHIP_TYPE IDENTITY FIELD_UPDATE entity.ownership_type
INVALID_BUSINESS_PHONE IDENTITY FIELD_UPDATE entity.business_phone
INVALID_BUSINESS_TAX_ID IDENTITY FIELD_UPDATE entity.business_tax_id
INVALID_BUSINESS_TYPE IDENTITY FIELD_UPDATE entity.business_type
INVALID_BUSINESS_WEBSITE IDENTITY FIELD_UPDATE entity.url

Owner Outcome Codes

Finix assigns these outcome codes when there are issues related to one or more of your Merchant's owners. Use the remediation_details to know how to correct the issues and get the Merchant boarded. In these cases, the Merchant's onboarding_state is set to UPDATE_REQUESTED.

Owner File Upload Requests

remediation_details
outcome_code
entity_type
type
file_type
OWNER_GOVERNMENT_ISSUED_PHOTO_ID_REQUESTED IDENTITY FILE_UPLOAD OWNER_GOVERNMENT_ISSUED_PHOTO_ID
INVALID_OWNER_GOVERNMENT_ISSUED_PHOTO_ID IDENTITY FILE_UPLOAD OWNER_GOVERNMENT_ISSUED_PHOTO_ID
OWNER_TAX_ID_DOCUMENT_REQUESTED IDENTITY FILE_UPLOAD OWNER_TAX_ID_DOCUMENT
INVALID_OWNER_TAX_ID_DOCUMENT IDENTITY FILE_UPLOAD OWNER_TAX_ID_DOCUMENT

Owner Field Update Requests

remediation_details
outcome_code
entity_type
type
field_name
INVALID_OWNER_ADDRESS IDENTITY FIELD_UPDATE entity.personal_address
INVALID_OWNER_BIRTHDATE IDENTITY FIELD_UPDATE entity.dob
INVALID_OWNER_EMAIL IDENTITY FIELD_UPDATE entity.email
INVALID_OWNER_FIRST_NAME IDENTITY FIELD_UPDATE entity.first_name
INVALID_OWNER_LAST_NAME IDENTITY FIELD_UPDATE entity.last_name
INVALID_OWNER_PHONE IDENTITY FIELD_UPDATE entity.phone
INVALID_OWNER_TAX_ID IDENTITY FIELD_UPDATE entity.tax_id
INVALID_OWNER_TITLE IDENTITY FIELD_UPDATE entity.title

Bank Account Outcome Codes

Finix assigns these outcome codes when there are issues related to your Merchant's bank account. Use the remediation_details to know how to correct the issues and get the Merchant boarded. In these cases, the Merchant's onboarding_state is set to UPDATE_REQUESTED.

Bank Account File Upload Requests

remediation_details
outcome_code
entity_type
type
file_type
BANK_STATEMENT_ONE_MONTH_REQUESTED IDENTITY FILE_UPLOAD BANK_STATEMENT_ONE_MONTH
INVALID_BANK_STATEMENT_ONE_MONTH IDENTITY FILE_UPLOAD BANK_STATEMENT_ONE_MONTH
BANK_STATEMENT_THREE_MONTHS_REQUESTED IDENTITY FILE_UPLOAD BANK_STATEMENT_THREE_MONTHS
INVALID_BANK_STATEMENT_THREE_MONTHS IDENTITY FILE_UPLOAD BANK_STATEMENT_THREE_MONTHS

Bank Account Field Update Requests

remediation_details
outcome_code
entity_type
type
field_name
INVALID_PAYMENT_INSTRUMENT_NAME IDENTITY FIELD_UPDATE name
INVALID_PAYMENT_INSTRUMENT_BANK_CODE IDENTITY FIELD_UPDATE bank_code
INVALID_PAYMENT_INSTRUMENT_ACCOUNT_NUMBER IDENTITY FIELD_UPDATE account_number