Finix’s Onboarding Forms provide an easy way to onboard sellers onto your platform using a web form built and hosted by Finix.
Compared to building your own onboarding experience from the ground up, using our Onboarding Forms has several advantages:
- Save development time using our pre-built forms instead of building an onboarding flow from scratch.
- Brand our pre-built forms with your own logo and brand colors.
- Pre-fill Onboarding Forms for sellers so they can save time and start processing payments ASAP.
- Save progress so sellers can finish forms at their leisure.
- Finix handles changes and updates, so there's no need to worry about updating forms.
Review the following to see the form in action:
Supported Countries
- United States
- Canada
Branding
We recommend customizing the form with your branding before sharing it with your sellers. By default, the Onboarding Form has a dark blue banner with no logo.
For details on how to customize Onboarding Forms with your logo and brand colors, see White Labeling and Customizing Finix Dashboards.
How Onboarding Forms Work
Using our forms, the onboarding flow gets simplified into 3 key steps:
-
Create an
onboarding_form
for the seller. - Ask the seller to complete the Onboarding Form using the link that gets created.
-
Fetch the resources
that get created and start processing payments. The resources that get created include an
Identity
,Merchant
, andPayment Instrument
.
Creating Onboarding Forms using the Finix Dashboard
To create Onboarding Forms using the Finix Dashboard, click Merchants > Onboarding Forms.
Click Create New Form and follow the steps on-screen to generate a URL to an Onboarding Form. You can share this URL with your seller, so they can complete the form and provide the information that's needed to process payments and get onboarded.
Once submitted, the seller's information gets reviewed by Finix's underwriting team.
Creating Onboarding Forms using the Finix API
This diagram shows what the end-to-end onboarding flow looks like using our API:
Step 1: Create a Finix Onboarding Form
To onboard a seller with Finix built forms, first create an onboarding_form
.
An onboarding_form
represents the attempt to board a seller using Finix's Onboarding Forms. You use this onboarding_form
resource to create the links that sellers will use to fill out the form.
Include the onboarding_link_details
to automatically return an onboarding link. You can also manually create Onboarding Form links as needed.
-
Sellers get redirected to the
return_url
when they complete the Onboarding Form. -
If time expires, sellers get redirected to the
expired_session_url
.
curl https://finix.sandbox-payments-api.com/onboarding_forms \
-H 'Content-Type: application/json' \
-H 'Finix-Version: 2022-02-01' \
-u USsRhsHYZGBPnQw8CByJyEQW:8a14c2f9-d94b-4c72-8f5c-a62908e5b30e \
-X POST \
-d '{
"onboarding_data": {
"country": "USA",
"entity": {
"title": "CEO",
"first_name": "John",
"last_name": "Smith",
"email": "owner@democompany.com",
"business_name": "Demo Company, LLC",
"business_type": "CORPORATION",
"doing_business_as": "Demo Company",
"phone": "1234567890",
"business_phone": "1234567890",
"personal_address": {
"city": "Seattle",
"country": "USA",
"line1": "123 Boren Ave",
"postal_code": "98040",
"region": "WA"
},
"business_address": {
"city": "Bellevue",
"country": "USA",
"line1": "123 Bellevue Way",
"postal_code": "98039",
"region": "WA"
},
"dob": {
"day": 13,
"month": 4,
"year": 1982
},
"incorporation_date": {
"day": 9,
"month": 3,
"year": 2018
},
"mcc": "4900",
"url": "www.democompany.com",
"ownership_type": "PRIVATE",
"default_statement_descriptor": "DEMOCOMPANY",
"max_transaction_amount": 100000,
"annual_card_volume": 1000000,
"principal_percentage_ownership": 75,
"tax_id": "123456789",
"business_tax_id": "123456789",
"has_accepted_credit_cards_previously": false
},
"additional_underwriting_data": {
"refund_policy": "NO_REFUNDS",
"card_volume_distribution": {
"ecommerce_percentage": 100,
"card_present_percentage": 0,
"mail_order_telephone_order_percentage": 0
},
"average_ach_transfer_amount": 20000000,
"average_card_transfer_amount": 20000,
"annual_ach_volume": 20000000,
"business_description": "CONSUMER",
"volume_distribution_by_business_type": {
"other_volume_percentage": 0,
"person_to_person_volume_percentage": 0,
"business_to_business_volume_percentage": 90,
"business_to_consumer_volume_percentage": 10,
"consumer_to_consumer_volume_percentage": 0
}
},
"associated_entities": [
{
"title": "CFO",
"first_name": "Numbers",
"last_name": "McGee",
"email": "numbers@democompany.com",
"phone": "123456789",
"personal_address": {
"city": "Bellevue",
"country": "USA",
"line1": "4848 84th St",
"postal_code": "98032",
"region": "WA"
},
"dob": {
"day": 13,
"month": 4,
"year": 1985
},
"principal_percentage_ownership": 25,
"tax_id": "123456789"
}
],
"payment_instruments": {
"account_number": "123456789",
"account_type": "CHECKING",
"bank_code": "123456789",
"country": "USA",
"currency": "USD",
"name": "JOE BANKER",
"type": "BANK_ACCOUNT"
},
"max_transaction_amount": 100000
},
"merchant_processors": [
{
"processor": "LITLE_V1"
}
],
"onboarding_link_details": {
"return_url": "https://www.democompany.com/home",
"expired_session_url": "https://www.democompany.com/login",
"terms_of_service_url": "https://www.democompany.com/ToS",
"fee_details_url": "https://www.democompany.com/fee_details",
"expiration_in_minutes": 10080
}
}'
curl https://finix.sandbox-payments-api.com/onboarding_forms \
-H 'Content-Type: application/json' \
-H 'Finix-Version: 2022-02-01' \
-u USsRhsHYZGBPnQw8CByJyEQW:8a14c2f9-d94b-4c72-8f5c-a62908e5b30e \
-X POST \
-d '{
"onboarding_data": {
"country": "CAN",
"entity": {
"title": "CEO",
"first_name": "John",
"last_name": "Smith",
"email": "owner@democompany.com",
"business_name": "Demo Company, LLC",
"business_type": "CORPORATION",
"doing_business_as": "Demo Company",
"phone": "1234567890",
"business_phone": "1234567890",
"personal_address": {
"city": "Toronto",
"country": "CAN",
"line1": "123 Main St",
"postal_code": "A1A 2B2",
"region": "ON"
},
"business_address": {
"city": "Toronto",
"country": "CAN",
"line1": "456 Main St",
"postal_code": "A1A 2B2",
"region": "ON"
},
"dob": {
"day": 13,
"month": 4,
"year": 1982
},
"incorporation_date": {
"day": 9,
"month": 3,
"year": 2018
},
"mcc": "4900",
"url": "www.democompany.com",
"ownership_type": "PRIVATE",
"default_statement_descriptor": "DEMOCOMPANY",
"max_transaction_amount": 100000,
"annual_card_volume": 1000000,
"principal_percentage_ownership": 75,
"tax_id": "123456789",
"business_tax_id": "123456789",
"has_accepted_credit_cards_previously": false
},
"additional_underwriting_data": {
"refund_policy": "NO_REFUNDS",
"card_volume_distribution": {
"ecommerce_percentage": 100,
"card_present_percentage": 0,
"mail_order_telephone_order_percentage": 0
},
"average_ach_transfer_amount": 20000000,
"average_card_transfer_amount": 20000,
"annual_ach_volume": 20000000,
"business_description": "CONSUMER",
"volume_distribution_by_business_type": {
"other_volume_percentage": 0,
"person_to_person_volume_percentage": 0,
"business_to_business_volume_percentage": 90,
"business_to_consumer_volume_percentage": 10,
"consumer_to_consumer_volume_percentage": 0
}
},
"associated_entities": [
{
"title": "CFO",
"first_name": "Numbers",
"last_name": "McGee",
"email": "numbers@democompany.com",
"phone": "123456789",
"personal_address": {
"city": "Vancouver",
"country": "CAN",
"line1": "786 Main St",
"postal_code": "H1H 2I2",
"region": "BC"
},
"dob": {
"day": 13,
"month": 4,
"year": 1985
},
"principal_percentage_ownership": 25,
"tax_id": "123456789"
}
],
"payment_instruments": {
"account_number": "123123123",
"account_type": "BUSINESS_CHECKING",
"country": "CAN",
"currency": "CAD",
"institution_number": "123",
"name": "JOE BANKER",
"transit_number": "12345",
"type": "BANK_ACCOUNT"
},
"max_transaction_amount": 100000
},
"merchant_processors": [
{
"processor": "LITLE_V1"
}
],
"onboarding_link_details": {
"return_url": "https://www.democompany.com/home",
"expired_session_url": "https://www.democompany.com/login",
"terms_of_service_url": "https://www.democompany.com/ToS",
"fee_details_url": "https://www.democompany.com/fee_details",
"expiration_in_minutes": 10080
}
}'
attention
Your Finix point of contact will provide the Processor
to use. If you don't know your Finix point of contact, email Finix Support.
A successful response returns 201 and the onboarding_form
resource.
{
"id": "obf_6QyNWTcE7LeyBsGamKCxCS",
"onboarding_data": {
"entity": {
"title": "CEO",
"first_name": "John",
"last_name": "Smith",
"email": "owner@democompany.com",
"business_name": "Demo Company, LLC",
"business_type": "CORPORATION",
"doing_business_as": "Demo Company",
"phone": "1234567890",
"business_phone": "1234567890",
"mcc": "4900",
"url": "www.democompany.com",
"ownership_type": "PRIVATE",
"default_statement_descriptor": "DEMOCOMPANY",
"max_transaction_amount": 100000,
"annual_card_volume": "1000000",
"principal_percentage_ownership": "75",
"tax_id": "*****6789",
"business_tax_id": "*****6789",
"has_accepted_credit_cards_previously": false,
"personal_address": {
"line1": "123 Boren Ave",
"city": "Seattle",
"region": "WA",
"postal_code": "98040",
"country": "USA"
},
"business_address": {
"line1": "123 Bellevue Way",
"city": "Bellevue",
"region": "WA",
"postal_code": "98039",
"country": "USA"
},
"dob": {
"day": 13,
"month": 4,
"year": 1982
},
"incorporation_date": {
"day": 9,
"month": 3,
"year": 2018
}
},
"associated_entities": [
{
"title": "CFO",
"first_name": "Numbers",
"last_name": "McGee",
"email": "numbers@democompany.com",
"phone": "123456789",
"personal_address": {
"line1": "4848 84th St",
"city": "Bellevue",
"region": "WA",
"postal_code": "98032",
"country": "USA"
},
"dob": {
"day": 13,
"month": 4,
"year": 1985
},
"principal_percentage_ownership": 25,
"tax_id": "*****6789"
}
],
"payment_instruments": {
"name": "JOE BANKER",
"bank_code": "123456789",
"account_number": "*****6789",
"account_type": "CHECKING",
"type": "BANK_ACCOUNT",
"country": "USA",
"currency": "USD"
},
"additional_underwriting_data": {
"refund_policy": "NO_REFUNDS",
"average_ach_transfer_amount": 20000000,
"average_card_transfer_amount": 20000,
"merchant_agreement_ip_address": null,
"merchant_agreement_accepted": null,
"merchant_agreement_timestamp": null,
"merchant_agreement_user_agent": null,
"credit_check_timestamp": null,
"credit_check_user_agent": null,
"annual_ach_volume": 20000000,
"business_description": "CONSUMER",
"volume_distribution_by_business_type": {
"other_volume_percentage": 0,
"person_to_person_volume_percentage": 0,
"business_to_business_volume_percentage": 90,
"business_to_consumer_volume_percentage": 10,
"consumer_to_consumer_volume_percentage": 0
},
"card_volume_distribution": {
"ecommerce_percentage": 100,
"card_present_percentage": 0,
"mail_order_telephone_order_percentage": 0
},
"amex_marketing_consent": null
},
"max_transaction_amount": 100000,
"country": "USA",
"associated_files": []
},
"merchant_processors": [
{
"processor": "LITLE_V1"
}
],
"onboarding_link_details": {
"return_url": "https://www.democompany.com/home",
"expired_session_url": "https://www.democompany.com/login",
"fee_details_url": "https://www.democompany.com/fee_details",
"terms_of_service_url": "https://www.democompany.com/ToS",
"expiration_in_minutes": 10080
},
"onboarding_link": {
"expires_at": "2024-03-06T16:34:03.875Z",
"link_url": "https://sandbox.payments-dashboard.com/merchant-onboarding?formId=obf_6QyNWTcE7LeyBsGamKCxCS&applicationId=APgPDQrLD52TYvqazjHJJchM&bearerToken=eyJhbGciOiJIUzUxMiJ9.eyJvbmJvYXJkaW5nX2Zvcm1faWQiOiJvYmZfNlF5TldUY0U3TGV5QnNHYW1LQ3hDUyIsImZlZV9kZXRhaWxzX3VybCI6Imh0dHBzOi8vd3d3LmRlbW9jb21wYW55LmNvbS9mZWVfZGV0YWlscyIsImV4cGlyZWRfc2Vzc2lvbl91cmwiOiJodHRwczovL3d3dy5kZW1vY29tcGFueS5jb20vbG9naW4iLCJtZXJjaGFudF9hY2hfbWF4X3RyYW5zYWN0aW9uX2Ftb3VudCI6bnVsbCwiaXNzIjoiaHR0cHM6Ly93d3cuZmluaXguY29tIiwicmV0dXJuX3VybCI6Imh0dHBzOi8vd3d3LmRlbW9jb21wYW55LmNvbS9ob21lIiwiZXhwIjoxNzA5NzQyODQzLCJhcHBsaWNhdGlvbl9pZCI6IkFQZ1BEUXJMRDUyVFl2cWF6akhKSmNoTSIsImlhdCI6MTcwOTEzODA0MywibWVyY2hhbnRfbWF4X3RyYW5zYWN0aW9uX2Ftb3VudCI6MTAwMDAwLCJ0ZXJtc19vZl9zZXJ2aWNlX3VybCI6Imh0dHBzOi8vd3d3LmRlbW9jb21wYW55LmNvbS9Ub1MifQ.mW2SZZMokW2ANlDqdcJPCja-5UVGhk_hbv8iE0LS0SF16gvOiqNg6pFjipXI4i81DxoYUUkSlbAPxIrUIambXQ"
},
"status": "IN_PROGRESS",
"identity_id": null,
"application_id": "APgPDQrLD52TYvqazjHJJchM",
"created_at": "2024-02-28T16:34:03.865229Z",
"updated_at": "2024-02-28T16:34:03.865229Z",
"tags": {}
}
{
"id": "obf_i9FRWWXc1xmuoMpDz6XM1g",
"onboarding_data": {
"entity": {
"title": "CEO",
"first_name": "John",
"last_name": "Smith",
"email": "owner@democompany.com",
"business_name": "Demo Company, LLC",
"business_type": "CORPORATION",
"doing_business_as": "Demo Company",
"phone": "1234567890",
"business_phone": "1234567890",
"mcc": "4900",
"url": "www.democompany.com",
"ownership_type": "PRIVATE",
"default_statement_descriptor": "DEMOCOMPANY",
"max_transaction_amount": 100000,
"annual_card_volume": "1000000",
"principal_percentage_ownership": "75",
"tax_id": "*****6789",
"business_tax_id": "*****6789",
"has_accepted_credit_cards_previously": false,
"personal_address": {
"line1": "123 Main St",
"city": "Toronto",
"region": "ON",
"postal_code": "A1A 2B2",
"country": "CAN"
},
"business_address": {
"line1": "456 Main St",
"city": "Toronto",
"region": "ON",
"postal_code": "A1A 2B2",
"country": "CAN"
},
"dob": {
"day": 13,
"month": 4,
"year": 1982
},
"incorporation_date": {
"day": 9,
"month": 3,
"year": 2018
}
},
"associated_entities": [
{
"title": "CFO",
"first_name": "Numbers",
"last_name": "McGee",
"email": "numbers@democompany.com",
"phone": "123456789",
"personal_address": {
"line1": "786 Main St",
"city": "Vancouver",
"region": "BC",
"postal_code": "H1H 2I2",
"country": "CAN"
},
"dob": {
"day": 13,
"month": 4,
"year": 1985
},
"principal_percentage_ownership": 25,
"tax_id": "*****6789"
}
],
"payment_instruments": {
"name": "JOE BANKER",
"account_number": "*****3123",
"account_type": "BUSINESS_CHECKING",
"type": "BANK_ACCOUNT",
"country": "CAN",
"currency": "CAD",
"transit_number": "12345",
"institution_number": "123"
},
"additional_underwriting_data": {
"refund_policy": "NO_REFUNDS",
"average_ach_transfer_amount": 20000000,
"average_card_transfer_amount": 20000,
"merchant_agreement_ip_address": null,
"merchant_agreement_accepted": null,
"merchant_agreement_timestamp": null,
"merchant_agreement_user_agent": null,
"credit_check_timestamp": null,
"credit_check_user_agent": null,
"annual_ach_volume": 20000000,
"business_description": "CONSUMER",
"volume_distribution_by_business_type": {
"other_volume_percentage": 0,
"person_to_person_volume_percentage": 0,
"business_to_business_volume_percentage": 90,
"business_to_consumer_volume_percentage": 10,
"consumer_to_consumer_volume_percentage": 0
},
"card_volume_distribution": {
"ecommerce_percentage": 100,
"card_present_percentage": 0,
"mail_order_telephone_order_percentage": 0
},
"amex_marketing_consent": null
},
"max_transaction_amount": 100000,
"country": "CAN",
"associated_files": []
},
"merchant_processors": [
{
"processor": "LITLE_V1"
}
],
"onboarding_link_details": {
"return_url": "https://www.democompany.com/home",
"expired_session_url": "https://www.democompany.com/login",
"fee_details_url": "https://www.democompany.com/fee_details",
"terms_of_service_url": "https://www.democompany.com/ToS",
"expiration_in_minutes": 10080
},
"onboarding_link": {
"expires_at": "2024-03-06T16:36:37.573Z",
"link_url": "https://sandbox.payments-dashboard.com/merchant-onboarding?formId=obf_i9FRWWXc1xmuoMpDz6XM1g&applicationId=APgPDQrLD52TYvqazjHJJchM&bearerToken=eyJhbGciOiJIUzUxMiJ9.eyJvbmJvYXJkaW5nX2Zvcm1faWQiOiJvYmZfaTlGUldXWGMxeG11b01wRHo2WE0xZyIsImZlZV9kZXRhaWxzX3VybCI6Imh0dHBzOi8vd3d3LmRlbW9jb21wYW55LmNvbS9mZWVfZGV0YWlscyIsImV4cGlyZWRfc2Vzc2lvbl91cmwiOiJodHRwczovL3d3dy5kZW1vY29tcGFueS5jb20vbG9naW4iLCJtZXJjaGFudF9hY2hfbWF4X3RyYW5zYWN0aW9uX2Ftb3VudCI6bnVsbCwiaXNzIjoiaHR0cHM6Ly93d3cuZmluaXguY29tIiwicmV0dXJuX3VybCI6Imh0dHBzOi8vd3d3LmRlbW9jb21wYW55LmNvbS9ob21lIiwiZXhwIjoxNzA5NzQyOTk3LCJhcHBsaWNhdGlvbl9pZCI6IkFQZ1BEUXJMRDUyVFl2cWF6akhKSmNoTSIsImlhdCI6MTcwOTEzODE5NywibWVyY2hhbnRfbWF4X3RyYW5zYWN0aW9uX2Ftb3VudCI6MTAwMDAwLCJ0ZXJtc19vZl9zZXJ2aWNlX3VybCI6Imh0dHBzOi8vd3d3LmRlbW9jb21wYW55LmNvbS9Ub1MifQ.-fbBfnwAdH-mNnHhyt-ZBMxijkHTDIEM38yVx2Y88H5IHuRW4ba2v2OIOpRys8-CtqyhL0I9byyDfKxhZ87dmA"
},
"status": "IN_PROGRESS",
"identity_id": null,
"application_id": "APgPDQrLD52TYvqazjHJJchM",
"created_at": "2024-02-28T16:36:37.561449Z",
"updated_at": "2024-02-28T16:36:37.561449Z",
"tags": {}
}
Next, redirect the seller so they can fill out the Onboarding Form. If you provided onboarding_link_details
, the Onboarding Form link you can direct sellers to gets returned in onboarding_link#link_url
.
Prefilling Fields
While creating an onboarding_form
, if you've already collected some information about your seller, you can prefill fields in the Onboarding Form by including that pre-collected information in your request.
This helps avoid asking your sellers to re-enter information they've already provided, like their email or name.
Displaying Processing Fees
It's important to let your sellers know about any fees they'll be charged in a clear and transparent manner before they enter your onboarding flow.
When creating an onboarding_form
, we require a URL to a public page that displays the fees you apply to sellers. Sellers must be able to view this page and it must be included in your onboarding flow so they can confirm their applicable fees.
Additionally, we require you to share this public fee page as part of onboarding and we'll verify the listed fees match the fees configured in your Fee Profile.
Step 2: Redirecting Sellers
With an onboarding_form
created, you need to redirect your seller so they can fill out the Onboarding Form. If you provided onboarding_link_details
the onboarding link you send your seller to is returned in onboarding_link#link_url
.
Otherwise, create an Onboarding Form link. We recommend creating the link in a new tab or window.
In our Onboarding Form, sellers are prompted to enter their business information, bank account, ownership profile, and underwriting-related data. After the seller agrees to the Finix Terms of Service and submits the Onboarding Form, the data gets submitted to Finix and the seller gets redirected back to the return_url
.
An Identity#id
gets added as a query parameter as part of this redirect.
-
Here's an example of what the redirect URL can look like:
https://www.example.com/handle-onboarding-form?identityId=IDeoSwE888omd6pn73hzLA5a
.
If a session expires, sellers get redirected to the URL set in expired_session_url
.
-
No additional parameters are included when users get directed to the
expired_session_url
. You'll need to configure theexpired_session_url
so it directs sellers to the Onboarding Form they were originally finishing.
The Identity#id
is the id
of the Identity
that was created for the seller. You use this Identity#id
to retrieve the created Identity
resource.
Step 3: Retrieve the Created Resources
A successfully completed Onboarding Form creates a Merchant
, the key resource that any onboarded seller needs. A successfully provisioned Merchant
is necessary to process payments.
There are three ways you can retrieve the created Merchant
:
-
List the
Merchants
associated with theIdentity#id
. -
Listen for an
entity
= onboarding_form ,type
= updated webhook event. -
Listen for an
entity
= merchant ,type
= created webhook event.
All approaches require using the Identity#id
which gets returned in the redirect URL and webhook events.
List the Merchants
To retrieve the Merchant
, query our API for a list of Merchants
associated with the Identity#id
.
curl https://finix.sandbox-payments-api.com/identities/ID8yUjXJv5oNW2e3BPU1u2pK/merchants \
-H 'Finix-Version: 2022-02-01' \
-u USsRhsHYZGBPnQw8CByJyEQW:8a14c2f9-d94b-4c72-8f5c-a62908e5b30e
This returns a list of every Merchant
associated with the Identity
.
{
"_embedded": {
"merchants": [
{
"id": "MUhJWbFxDL1EFrieFDPVHMAM",
"created_at": "2023-01-01T10:50:48.53Z",
"updated_at": "2023-01-01T10:51:02.90Z",
"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,
"disbursements_ach_pull_enabled": false,
"disbursements_ach_push_enabled": false,
"disbursements_card_pull_enabled": false,
"disbursements_card_push_enabled": false,
"fee_ready_to_settle_upon": "RECONCILIATION",
"gateway": null,
"gross_settlement_enabled": false,
"identity": "ID8yUjXJv5oNW2e3BPU1u2pK",
"level_two_level_three_data_enabled": false,
"mcc": null,
"merchant_name": "dwayne lbc",
"merchant_profile": "MPdyRZgBRwEbdf2Qcm3xqAY1",
"mid": "FNX3zhtdAjuJLwMk9ASxnyuUB",
"onboarding_state": "APPROVED",
"processing_enabled": true,
"processor": "DUMMY_V1",
"processor_details": {
"mid": "FNX3zhtdAjuJLwMk9ASxnyuUB",
"api_key": "secretValue"
},
"ready_to_settle_upon": "RECONCILIATION",
"rent_surcharges_enabled": false,
"settlement_enabled": true,
"settlement_funding_identifier": "UNSET",
"surcharges_enabled": false,
"tags": {
"test_key_100": "test_val_100"
},
"verification": "VId1MRt94w1xdzRU7zFRAL9W",
"_links": {
"self": {
"href": "https://finix.sandbox-payments-api.com/merchants/MUhJWbFxDL1EFrieFDPVHMAM"
},
"identity": {
"href": "https://finix.sandbox-payments-api.com/identities/ID8yUjXJv5oNW2e3BPU1u2pK"
},
"verifications": {
"href": "https://finix.sandbox-payments-api.com/merchants/MUhJWbFxDL1EFrieFDPVHMAM/verifications"
},
"merchant_profile": {
"href": "https://finix.sandbox-payments-api.com/merchant_profiles/MPdyRZgBRwEbdf2Qcm3xqAY1"
},
"application": {
"href": "https://finix.sandbox-payments-api.com/applications/APgPDQrLD52TYvqazjHJJchM"
},
"verification": {
"href": "https://finix.sandbox-payments-api.com/verifications/VId1MRt94w1xdzRU7zFRAL9W"
}
}
}
]
},
"_links": {
"self": {
"href": "https://finix.sandbox-payments-api.com/identities/ID8yUjXJv5oNW2e3BPU1u2pK/merchants?offset=0&limit=20&sort=created_at,desc&sort=id,desc"
}
},
"page": {
"offset": 0,
"limit": 20,
"count": 1
}
}
The newly created Merchant
will have an initial onboarding_state
of PROVISIONING, which means Finix is currently verifying details and underwriting the seller. You'll receive a webhook once the Merchant
is approved for processing.
Onboarding Form Updated Webhook
We send an entity
= onboarding_form, type
= updated webhook event when the onboarding_form
gets saved or submitted by the seller. Use the identity_id
in the webhook to retrieve the PROVISIONING Merchant
.
{
"type": "updated",
"entity": "onboarding_form",
"occurred_at": "2022-12-12T21:37:44.385255",
"_embedded": {
"onboarding_forms": [
{
"id": "obf_7EMbv4C2bCvzFkVFwDWnEo",
"onboarding_data": {
"allowed_countries": ["USA", "CAN"],
"entity": {
"title": "CEO",
"first_name": "John",
"last_name": "Smith",
"email": "john@example.com",
"business_name": "Finix Flowers",
"business_type": "INDIVIDUAL_SOLE_PROPRIETORSHIP",
"doing_business_as": "Finix Flowers",
"phone": "5558675309",
"business_phone": "5558675309",
"mcc": "4900",
"url": "example.com",
"ownership_type": "PRIVATE",
"default_statement_descriptor": "FNX",
"max_transaction_amount": 100000,
"annual_card_volume": "10000000",
"principal_percentage_ownership": "100",
"tax_id": "*****6789",
"business_tax_id": "*****6890",
"personal_address": {
"line1": "631 Howard St.",
"city": "San Francisco",
"region": "CA",
"postal_code": "94105",
"country": "USA"
},
"business_address": {
"line1": "631 Howard St.",
"city": "San Francisco",
"region": "CA",
"postal_code": "94105",
"country": "USA"
},
"dob": {
"day": 1,
"month": 1,
"year": 1981
},
"incorporation_date": {
"day": 1,
"month": 1,
"year": 2007
}
},
"payment_instruments": {
"name": "John Smith",
"bank_code": "123456789",
"account_number": "*****6789",
"account_type": "CHECKING",
"type": "BANK_ACCOUNT"
},
"additional_underwriting_data": {
"refund_policy": "NO_REFUNDS",
"average_ach_transfer_amount": 0,
"average_card_transfer_amount": 10000,
"merchant_agreement_ip_address": "4.14.107.114",
"merchant_agreement_accepted": true,
"merchant_agreement_timestamp": "2022-11-16T00:53:45.228537Z",
"merchant_agreement_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36",
"annual_ach_volume": 0,
"business_description": "Flowers",
"volume_distribution_by_business_type": {
"other_volume_percentage": 0,
"business_to_business_volume_percentage": 100,
"business_to_consumer_volume_percentage": 0
},
"card_volume_distribution": {
"ecommerce_percentage": 100,
"card_present_percentage": 0,
"mail_order_telephone_order_percentage": 0
}
},
"max_transaction_amount": 100000
},
"merchant_processors": [
{
"processor": "DUMMY_V1"
}
],
"onboarding_link_details": {
"return_url": "https://www.example.com/finix-handlers/onboarding-return",
"expired_session_url": "https://www.example.com/finix-handlers/onboarding-expires",
"fee_details_url": "https://www.finix.com/docs",
"terms_of_service_url": "https://www.finix.com/terms-and-policies",
"expiration_in_minutes": 10080
},
"status": "COMPLETED",
"identity_id": "ID8XfQPGnxM2oviYgdzjMWsn",
"application_id": "APgPDQrLD52TYvqazjHJJchM",
"created_at": "2022-11-16T00:50:23.787426Z",
"updated_at": "2022-11-16T00:53:46.124008Z",
"tags": {
"seller": "Finix Flowers"
}
}
]
}
}
Merchant Created Webhook
We send an entity
= merchant, type
= created webhook event when a Merchant
gets created. The webhook contains the Merchant
that was created. You can confirm this by matching the Identity
in the webhook event with the Identity#id
you received in the redirect URL.
{
"type": "create",
"entity": "merchant",
"occured_at": "2021-11-14T19:20:29.48Z",
"_embedded": {
"merchants": [
{
"id": "MUoBGzwPdFxb397BKM3bHUvf",
"application": "APcVnXxyWotD6TGRWV2bRWuD",
"identity": "IDeoSwE888omd6pn73hzLA5a",
"verification": "VIeZ3gBoRemaDimjp6qS58An",
"merchant_profile": "MP9e916zYUTTqHUDe4F9ZQvp",
"processor": "DUMMY_V1",
"processing_enabled": true,
"settlement_enabled": true,
"gross_settlement_enabled": false,
"creating_transfer_from_report_enabled": false,
"card_expiration_date_required": true,
"card_cvv_required": false,
"tags": {
"key_2": "value_2"
},
"mcc": "4900",
"mid": "FNXqtgiZAvNPz44hT67Ai632W",
"merchant_name": "Finix Flowers",
"settlement_funding_identifier": "UNSET",
"ready_to_settle_upon": null,
"fee_ready_to_settle_upon": "RECONCILIATION",
"level_two_level_three_data_enabled": false,
"created_at": "2021-11-14T19:20:29.15Z",
"updated_at": "2021-11-14T19:20:29.48Z",
"onboarding_state": "PROVISIONING"
}
]
}
}
The newly created Merchant
will have an initial onboarding_state
of PROVISIONING which means Finix is currently verifying details and underwriting the seller. If the Merchant
is rejected, you'll need to follow up and handle why the seller was rejected.
Restart an Onboarding Form Session
Ideally, your seller completes an Onboarding Form session immediately, but there may be some sellers who step away from the computer, take longer than the specified expiration time, or just forget to complete the form.
Finix saves the progress of users and whatever information they've entered into the onboarding_form
. Create a new link on the same onboarding_form
resource to help a seller pickup where they left off in the Onboarding Form.
curl https://finix.sandbox-payments-api.com/onboarding_forms/obf_n4J6QuG6XHoUbZ54Z88v5h/links \
-u USsRhsHYZGBPnQw8CByJyEQW:8a14c2f9-d94b-4c72-8f5c-a62908e5b30e \
-H 'Content-Type: application/json' \
-H 'Finix-Version: 2022-02-01' \
-X POST \
-d '{
"expiration_in_minutes": 10080,
"expired_session_url": "https://www.finix.com/",
"fee_details_url": "https://www.finix.com/docs",
"return_url": "https://www.finix.com/docs",
"terms_of_service_url": "https://www.finix.com/terms-and-policies"
}'
A successful response returns 200 and the new link_url
.
{
"expires_at": "2022-07-11T22:39:55.469Z",
"link_url": "https://sandbox.payments-dashboard.com/merchant-onboarding?formId=obf_bXQj8iSgYwXf432yJcWbKv&applicationId=APgPDQrLD52TYvqazjHJJchM&bearerToken=eyJhbGciOiJIUzUxMiJ9.eyJvbmJvYXJkaW5nX2Zvcm1faWQiOiJvYmZfYlhRajhpU2dZd1hmNDMyeUpjV2JLdiIsImZlZV9kZXRhaWxzX3VybCI6Imh0dHBzOi8vd3d3LmZpbml4LmNvbS9kb2NzIiwiZXhwaXJlZF9zZXNzaW9uX3VybCI6Imh0dHBzOi8vd3d3LmZpbml4LmNvbS8iLCJpc3MiOiJodHRwczovL3d3dy5maW5peC5jb20iLCJyZXR1cm5fdXJsIjoiaHR0cHM6Ly93d3cuZmluaXguY29tL2RvY3MiLCJleHAiOjE2NTc1NzkxOTUsImFwcGxpY2F0aW9uX2lkIjoiQVBnUERRckxENTJUWXZxYXpqSEpKY2hNIiwiaWF0IjoxNjU3NTc3Mzk1LCJtZXJjaGFudF9tYXhfdHJhbnNhY3Rpb25fYW1vdW50IjoxMDAwMDAsInRlcm1zX29mX3NlcnZpY2VfdXJsIjoiaHR0cHM6Ly93d3cuZmluaXguY29tL3Rlcm1zLWFuZC1wb2xpY2llcyJ9.uQvwqhOxSmpX4zMSVn891ClNB_cWHmXhLfyOzRiKRoyn7VAqVOWrO8dJiY-OvN4venPWnPOxM0r3NiIyfgQv6g"
}
Redirect your seller to the link_url
so they can complete onboarding. Once completed, retrieve the Merchant
resource that was created for the seller.
Sellers are usually approved within minutes and can start processing payments as soon as they complete onboarding.
Rejected Merchants
If a seller is rejected, the state
of the Merchant
becomes REJECTED, and you'll need to appeal the onboarding rejection.
Our Onboarding Forms only support initial information gathering. For details on how to handle onboarding rejections see Onboarding Rejections.