Skip to main content
An Application represents a request for creating a financial service account. Use the Applications API to start onboarding a cardholder into your White Label App (WLA) program. It’s the only step in WLA onboarding that requires a call from you — once Marqeta approves an application, account and card setup happen automatically, with no additional requests on your end. Marqeta is the source of truth for Application data. The calling platform submits an application on behalf of one of its users; Marqeta creates, advances, and terminates the application, and reports every status change back to the platform through Application event webhooks. The level of detail required in an application submission depends on the market and on the requirements of the underlying banking partner for the program. The platform collects the required user information through its own onboarding flow and submits it here.

Available operations

Application object

id
string
required

Marqeta-generated application ID.

status
enum<string>
required

The status of the application.

It can be used to determine the next steps in the application process.

  • "SUBMITTED" The application has been submitted and received.
  • "KYC" The application is in KYC (Know Your Customer) status.
  • "MANUAL_REVIEW" The application is under manual review.
  • "APPROVED" The application has been approved (final state).
  • "REJECTED" The application has been rejected (final state).
  • "EXPIRED" The application has expired (final state).

Status changes only occur from a previous state to a subsequent state in the list.

For example, an application can transition from SUBMITTED to KYC or APPROVED.

Once a state is reached, it cannot move back to a previous state.

Not every program produces every status — MANUAL_REVIEW and EXPIRED in particular depend on the program's KYC workflow and banking partner. Treat any status in this list as possible, and do not depend on a specific one being emitted.

For asynchronous flows the initial state is SUBMITTED, and status changes are delivered to the platform via Application event webhooks.

Available options:
SUBMITTED,
KYC,
MANUAL_REVIEW,
APPROVED,
REJECTED,
EXPIRED
Example:

"KYC"

user
object
required

Information on the user that is applying for an account.

created_on
string<date-time>
required
Example:

"2021-09-01T12:00:00Z"

updated_on
string<date-time>
required
Example:

"2021-09-01T12:00:00Z"

kyc_url
string

The webview URL for starting the KYC flow with the user. Must be present if status is KYC.

Example:

"https://kyc-provider.example.com/verify?code=8E13_EWEF5a9GuatLqwm5eD6kQRFloKKxIkHM14YiIbkrxpfSNft8"

national_id
object

Information about the user's national ID.

address
object

Information about the user's address. Note that depending on the country, some of the address components may not be available.

shipping_address
object

Information about the user's address. Note that depending on the country, some of the address components may not be available.

tax_profile
object

Information about the user's tax profile.

financial_profile
object

Information about the user's financial profile.

terms
object[]
device
object

Information about the user device used to submit the application.

extras
object

Map of additional program-specific information. This is the extension point for attributes that only one program needs. Prefer adding a key here over widening a shared schema or enum. Keys in use for a program are agreed during program onboarding.