Submit Application
Use the onboarding APIs to create merchant applications from your own systems. This page shows how to submit:
A full application with comprehensive merchant data
A minimal or “empty” application that Bead turns into a hosted onboarding package for the signer to complete
Both flows:
Require signer information so Bead knows who should receive and sign the application
Depend on fee configuration that is not editable in the hosted experience
After you submit an application, Bead sends a secure onboarding email to the signer. You track progress using Get Status and webhooks, and you can send the application back to the same signer using the resend endpoint.
Prerequisites
Before calling these endpoints:
Obtain an access token for the bead-integrator client
Have your partnerId and any partner-specific merchant identifiers you plan to send
Confirm how fee configuration is set for your program. Fees are not editable by the signer in the hosted experience and must be known up front.
Decide whether you will surface onboarding status in your own portal or rely primarily on internal tools
All onboarding endpoints require a valid OAuth access token.
Authorization: Bearer {access_token}
Content-Type: application/json
Accept: application/jsonFull application
Use the full application flow when your system already has most of the merchant’s information and you want to prefill the application. The signer mostly reviews and confirms details.
Endpoint
The request body uses the InitiateOnboardingRequest model:
merchantDataThe full merchant onboarding payload, including business identity, addresses, ownership, banking, and feeInformation.signerThe person who will receive and sign the application.
Request body structure
At a high level, merchantData includes:
Core identifiers
merchantNamepartnerIdpartnerExternalIdpartnerMid
Business and registration details
registeredName,dbaNamebusinessDescriptionlegalEntityType,otherLegalEntityregistrationDatemerchantCategoryCode,naicsCode,additionalMcc
Tax and entity information
federalTaxId,federalTaxIdType
Addresses and contacts
registeredLegalAddressbusinessMailingAddressmainPointOfContact
Volume and revenue profile
grossAnnualRevenuehighestMonthlyVolumeaverageTicketSizemaxTicketSize
Seasonality
isSeasonalBusinessorisSeasonalmonthsOfOperationoroperationalMonths
Banking details
bankNameroutingNumber,accountNumber,accountTypebankDepositMethodbankAddress
Documents
proofOfBankAccountTypeproofOfBusinessTypeproofOfLegalAddressTypeOptional proof document locations, depending on stage and flow
Ownership and stakeholders
hasNoOwnersstakeholderswith name, address, ownership percentage, identification and tax fields, and proof of identity and address values
Fees
feeInformationwith settlement fees, crypto fees, and digital wallet fees
The signer object includes:
emailnameposition
Bead uses this to send the onboarding email and record who signed the application.
Full application example
Use this as a reference and adjust fields to match your program. In particular, confirm which fields are required and any enumeration values for your environment in the API specification.
Minimal or “empty” application
Use the minimal application flow when you want to collect only basic identifiers and signer information up front and let the hosted onboarding experience collect most remaining data. You still must have fee configuration defined for the merchant because fees are not editable by the signer.
Endpoint
The request body uses the InitiateEmptyOnboardingRequest model with a smaller set of fields focused on identification and signer details.
Typical fields:
merchantNamepartnerIdpartnerMidorpartnerExternalIddepending on your programsignerNamesignerEmail
The hosted flow will prompt the signer for business details, ownership, banking, and any required documents.
Minimal application example
Your program configuration must ensure that feeInformation is known for this merchant, even though it may not be present in this minimal request. The signer cannot change fees in the hosted experience.
Responses
Both submit endpoints return the same response model.
Example:
Fields:
applicationIdBead’s identifier for the onboarding application. Use this when calling Get Status, webhooks, and resend related operations.envelopeIdIdentifier for the underlying signing envelope.statusCurrent status of the agreement envelope at the time of creation, for examplesent.
Bead uses the signer information from your request to send the onboarding email. Treat email delivery as the primary path for the signer to enter the hosted onboarding flow.
Choosing a flow
Use this quick guide to decide which endpoint to call:
Use
POST /merchant-onboarding/applicationwhenYou already collect full KYB data in your system.
You want the signer to mostly review and confirm the information provided.
You want to explicitly send feeInformation per merchant in the request body.
Use
POST /merchant-onboarding/application-shortwhenYou want a lighter initial integration.
You prefer the hosted onboarding experience to drive which details are required.
Fees are configured for the merchant outside this request body, through your program configuration with Bead.
After submitting an application, use Get Status to retrieve the current state across agreement, compliance, banking, and crypto services, use webhooks for event-driven updates, and use the resend endpoint to send an existing application back to the same signer when they need to correct or update information.
Last updated