Skip to main content

Application Forms

Upcoming deprecation 1/15/25

On February 18th, 2025, the current Application Forms API will be sunset, and replaced by a new version called White-label Application Form. Please use the new White-Label Applications Form instead.

Unit offers a fully customizable onboarding front-end that allows you to onboard end-customers, both individuals and businesses.

Using Unit's white-label experience has many benefits:

  • Shorter time to market compared to building your own flow.
  • Benefit from Unit's technology, compliance and fraud expertise - Unit's onboarding experience offers responsive, mobile friendly design, and includes phone number verification and on-device fraud detection measures to reduce fraud risk. We monitor and track the application form closely, and it will continue to develop and deliver a frictionless experience that guarantees you are compliant with the evolving regulation.
  • No maintenance required: any future changes to the onboarding process will be handled by Unit.

Application Form

If you prefer to build your own custom experience, you may still do so using Unit's Applications API.

Overview

You may create a new application form by using the Create Application Form endpoint. When you make this call, you can specify:

  • Any information you have on the customer that can be used to pre-fill the application form
  • Your preferences/restrictions for this specific application (e.g. Individual vs Business application)

When the API call is received, Unit will create an application form resource, and generate an application form link. This link is returned in the response to the API call, along with an application form ID. This link is valid for 24 hours, and you can receive a fresh link that will allow the user to resume the application by calling the GET application form endpoint. It is up to you to manage the distribution of this link and manage all communication around the application form (sending emails, or redirecting the customers).

White-Labeling and Customization

You may customize the application form experience in the "Org Settings" page of the Dashboard, under the "Application form" tab. Some of the values are required (for example, your name and logo), and not providing them will result in an error response when creating the application form.

note

Unit supports all font types but recommends using *.WOFF for best results

Customizing the Application Form Domain

Unit supports white-labeling of the application form URL. To the end-customer, it will look like the application form is hosted on your sub-domain, while in practice it would be hosted by Unit.

To customize the URL:

  1. On the Unit Dashboard, go to Org Settings / General and configure the subdomain.
  2. Click “setup” and provide the URL you would like to use (e.g. apply.yourdomain.com). A new box called "DNS Settings" will show up on the form. The box includes 2 CNAME records that you will have to configure on your DNS provider within 72 hours in order to verify the domain. Examples:
Record NameTypeRecord Value
_.apply.yourdomain.comCNAME_.acm-validations.aws.
apply.yourdomain.comCNAMEapplication-form.sh
  • The first record is used to issue a certificate and to prove the domain ownership. are auto-generated random strings.

  • The second record will redirect your new subdomain to Unit's application form

After configuring the DNS records, return to the DNS Settings box and click Verify.

If the status has changed from "Unverified" to "Verified", you have completed the subdomain configuration.

If the status has not changed, the verification has not been completed. Note that the verification process may take a couple of minutes and in rare cases even hours, so wait a couple of minutes before retrying the verification.

Disclosures

You would need to provide between 4 and 6 disclosure URLs, depending on your specific implementation. If you are not sure which disclosures are relevant to you, reach out to our compliance team for help. The list of disclosures includes:

  • Consent to Electronic Disclosures
  • Privacy Policy
  • Deposit Terms & Conditions
  • Client Terms of Service
  • Cardholder Terms and Conditions (optional)
  • Cash Advance Terms and Conditions (optional)

Keeping track of the application form status

You may follow the progress of the application by registering to the relevant webhooks (application.denied, application.awaitingDocuments, application.pendingReview, customer.created). You can also check the status by getting the application form resource.

Once an application is created, it will have a relationship with the application form that it was created through (you can match it or search for it using the application form id that you had received in the application-forms api response).

Thanks to tag inheritance, if you had tagged the application form, the same tags will show up on the application resource, and later on, the customer resource, if the application is approved.

Create Application Form

To onboard an end-customer through Unit's UI, create an ApplicationForm resource

The application form implements the Create Individual Application or Create Business Application calls, depending on the user's choice in the interface.

VerbPOST
Urlhttps://api.s.unit.sh/application-forms
Required Scopeapplications-write
Data TypeapplicationForm
Timeout (Seconds)5

Attributes

NameTypeDescription
tagsobjectOptional. See Tags. Tags that will be copied to the application that this form creates (see Tag Inheritance).
applicantDetailsApplicationFormPrefillOptional. Add data that is already known about the end-customer to be auto populated on the form.
allowedApplicationTypesArray of Individual, Business or SoleProprietorship.Optional. restrict the available application type for this specific application.
langStringOptional. Language of application form. Either en or es. If not specified, will default to en.
settingsOverrideApplicationFormSettingsOverrideOptional. Override disclosure URLs that were defined in the application form settings.
requireIdVerificationRequireIdVerificationOptional. Decide whether to require ID verification regardless of evaluation response.
hideApplicationProgressTrackerBooleanOptional. Decide whether to show an application form left side bar.
Example Request:
curl -X POST 'https://api.s.unit.sh/application-forms'
-H 'Content-Type: application/vnd.api+json'
-H 'Authorization: Bearer ${TOKEN}'
--data-raw '{
"data": {
"type": "applicationForm",
"attributes": {
"tags": {
"userId": "106a75e9-de77-4e25-9561-faffe59d7814"
},
"allowedApplicationTypes": [
"Individual",
"Business"
],
"lang": "en"
}
}
}'

Response

Response is a JSON:API document.

201 Created

FieldTypeDescription
tagsobjectSee Tags. Tags that will be copied to the application that this form creates (see Tag Inheritance).
urlstringThe URL of the application form for the end-customer to access
stagestringCurrent stage of the application form, one of: ChooseBusinessOrIndividual, EnterIndividualInformation, IndividualPhoneVerification, IndividualApplicationCreated, EnterBusinessInformation, EnterBusinessAdditionalInformation, EnterOfficerInformation, BusinessPhoneVerification, EnterBeneficialOwnersInformation, BusinessApplicationCreated, EnterSoleProprietorshipInformation, EnterSoleProprietorshipBusinessInformation, SoleProprietorshipPhoneVerification, SoleProprietorshipApplicationCreated
applicantDetailsApplicationFormPrefillData that is already known about the end-customer to be auto populated on the form.
settingsOverrideApplicationFormSettingsOverrideDisclosure URLs that will override the ones that were defined in the application form settings.
Example Response:
{
"data": {
"type": "applicationForm",
"id": "95",
"attributes": {
"tags": {
"userId": "106a75e9-de77-4e25-9561-faffe59d7814"
},
"url": "https://application-form.sh/6YZ3UG6RS7NGTO5ZB3A4SRO3NEYPJUREYIIKZDOOX2CTWBPZ4A343UB4KZSQRF3DHHKYECF4S45VP7Y2YUP5WGEHO4YVH25Q24JRM4UA5IW3OM552HAFJ3HIVIUJGJBFQ4UJMZ3VGXUG6L5XFKE2W7YX7KDOC2J",
"stage": "ChooseBusinessOrIndividual"
}
}
}

Create an Application Form from an existing Application

You may create an application form for an existing application. To do that, pass an application as a relationship with the relevant application id. This will generate a new application form respectively, that can be used to complete an application that was previously submitted. If the application form already exists for this application id it will return the existing one.

note

The main use case for this flow is for applications that require document verification. Since there are multiple documents types and many different flows, building a document verification experience requires some engineering investment. Creating an application form from an application that is awaiting documents allows the end-customer to safely upload the documents required, shortens time to market and reduces engineering effort.

Example Request:
curl -X POST 'https://api.s.unit.sh/application-forms'
-H 'Content-Type: application/vnd.api+json'
-H 'Authorization: Bearer ${TOKEN}'
--data-raw '{
"data": {
"type": "applicationForm",
"attributes": {},
"relationships": {
"application": {
"data": {
"type": "application",
"id": "11111"
}
}
}
}
}'
Example Response:
{
"data": {
"type": "applicationForm",
"id": "95",
"attributes": {
"tags": {
"userId": "106a75e9-de77-4e25-9561-faffe59d7814"
},
"url": "https://application-form.sh/6YZ3UG6RS7NGTO5ZB3A4SRO3NEYPJUREYIIKZDOOX2CTWBPZ4A343UB4KZSQRF3DHHKYECF4S45VP7Y2YUP5WGEHO4YVH25Q24JRM4UA5IW3OM552HAFJ3HIVIUJGJBFQ4UJMZ3VGXUG6L5XFKE2W7YX7KDOC2J",
"stage": "SoleProprietorshipApplicationCreated"
},
"relationships": {
"application": {
"data": {
"type": "application",
"id": "11111"
}
}
}
}
}

Get by Id

Get an application form resource by id.

You will receive a fresh 24-hour URL for the existing form, allowing the customer to resume the application.

VerbGET
Urlhttps://api.s.unit.sh/application-forms/{id}
Required Scopeapplications
Timeout (Seconds)5

Response

Response is a JSON:API document.

200 OK

FieldTypeDescription
dataApplicationFormThe application form resource.
includedIndividualApplication or BusinessApplicationOptional, Application resource. Can be either business or individual, as indicated by the type field.
curl -X GET 'https://api.s.unit.sh/application-forms/21?include=application' \
-H "Authorization: Bearer ${TOKEN}"

List

List application form resources. Paging can be applied.

VerbGET
Urlhttps://api.s.unit.sh/application-forms
Required Scopeapplication-forms
Timeout (Seconds)5

Query Parameters

NameTypeDefaultDescription
page[limit]integer100Optional. Maximum number of resources that will be returned. Maximum is 1000 resources. See Pagination.
page[offset]integer0Optional. Number of resources to skip. See Pagination.
filter[tags]Tags (JSON)(empty)Optional. Filter Application forms by Tags.
sortstringsort=-createdAtOptional. sort=createdAt for ascending order or sort=-createdAt (leading minus sign) for descending order.
curl -X GET 'https://api.s.unit.sh/application-forms?page[limit]=20&page[offset]=10' \
-H "Authorization: Bearer ${TOKEN}"

Response

Response is a JSON:API document.

200 OK

FieldTypeDescription
dataArray of ApplicationFormArray of application form resources.
Example Response:
{
"data": [
{
"type": "applicationForm",
"id": "95",
"attributes": {
"tags": {
"userId": "106a75e9-de77-4e25-9561-faffe59d7814"
},
"url": "https://application-form.sh/6YZ3UG6RS7NGTO5ZB3A4SRO3NEYPJUREYIIKZDOOX2CTWBPZ4A343UB4KZSQRF3DHHKYECF4S45VP7Y2YUP5WGEHO4YVH25Q24JRM4UA5IW3OM552HAFJ3HIVIUJGJBFQ4UJMZ3VGXUG6L5XFKE2W7YX7KDOC2J",
"stage": "IndividualApplicationCreated"
},
"relationships": {
"application": {
"data": {
"type": "application",
"id": "10098"
}
}
}
},
{
"type": "applicationForm",
"id": "96",
"attributes": {
"tags": {
"userId": "106a75e9-de77-4e25-9561-faffe59d7814"
},
"url": "https://application-form.sh/6YZ3UG6RS7NGTO5ZB3A4SRO3NEYPJUREYIIKZDOOX2CTWBPZ4A343UB4KZSQRF3DHHKYECF4S45VP7Y2YUP5WGEHO4YVH25Q24JRM4UA5IW3OM552HAFJ3HIVIUJGJBFQ4UJMZ3VGXUG6L5XFKE2W7YX7KDOC2J",
"stage": "BusinessApplicationCreated"
},
"relationships": {
"application": {
"data": {
"type": "application",
"id": "10099"
}
}
}
}
]
}