Onboard an Account
Overview
Onboarding an account is the process of associating an account holder with a card product:
- Create an account holder account, business or consumer.
- Open a card product application to associate an account holder with a card product.
- Issue a financial account.
Highnote creates card products on your behalf in the Live environment. You can create a card product yourself in the Test environment -- with these API snippets, or in the Dashboard.
After onboarding an account holder, you are finally ready to issue a payment card.
Account holder types
There are two types of card products, each with a dedicated account holder type:
- Commercial card products: Used by US Business account holders
- Consumer card products: Used by US Person account holders
For more information on each vertical, see the Quick Start Templates.
Prerequisites
- A Highnote account
- Access to the Highnote API, API Explorer, or Dashboard
- A card product.
Create your card product
Creating a card product is a prerequisite to onboarding account holders. In Prod Live, Highnote does this first step for you. In the Test environment, you can practice creating card products and configuring them to fit the needs of your customers.
There are several types of card product verticals you can offer to your customers.
Replace the usage and vertical input variables with your card product's corresponding values.
Simulate External Wire Transfer
This mutation simulates an external wire transfer to a balance.
CreateCardProduct
Query
mutation CreateCardProduct($input: CreateCardProductInput!) {
createCardProduct(input: $input) {
__typename
... on CardProduct {
id
name
usage
}
... on UserError {
errors {
errorPath
code
description
}
}
}
}
Variables
{ "input": { "cardProduct": { "name": "My Test Product", "usage": "VERTICAL_USAGE", "vertical": "CARD_VERTICAL" } } }
Result
{
"data": {
"createCardProduct": {
"__typename": "CardProduct",
"id": "CARD_PRODUCT_ID",
"name": "My Test Product",
"usage": "MULTI_USE"
}
},
"extensions": {
"requestId": "REQUEST_ID"
}
}
Onboard an account holder
Once your card product is created, you can begin onboarding an account by creating an account holder -- a business account holder for commercial products, or a person account holder for consumer products. Account holders are objects that can open applications for card products and receive financial accounts that have been issued to them.
To onboard an account holder in the Dashboard, see Account holder basics.
Onboard a US business account holder
A USBusinessAccountHolder is an account holder that uses a commercial card product. There are several different components that make up a US business account holder's details:
- Business details: Includes business name, identification number (EIN), business type, business phone, physical address, legal entity address, business description, and website
- Primary authorized person: Person authorized to act on behalf of the business; if a primary authorized person owns or controls at least 25% of the business, they are also automatically added as a beneficial owner
- Beneficial owners: Person who owns or controls at least 25% of the business
You can use the following mutation to create a USBusinessAccountHolder:
CreateUSBusinessAccountHolder
Query
mutation CreateUSBusinessAccountHolder(
$input: CreateUSBusinessAccountHolderInput!
) {
createUSBusinessAccountHolder(input: $input) {
__typename
... on UserError {
errors {
errorPath
code
description
}
}
... on USBusinessAccountHolder {
externalId
id
createdAt
updatedAt
primaryAuthorizedPerson {
id
email
dateOfBirth
percentageOwnership
authorizingPersonTitle
createdAt
updatedAt
name {
givenName
familyName
title
suffix
middleName
}
homeAddress {
streetAddress
extendedAddress
postalCode
region
locality
countryCodeAlpha3
}
phoneNumbers {
countryCode
number
label
}
identificationDocument {
socialSecurityNumber {
numberHash
countryCodeAlpha3
}
}
}
businessProfile {
id
website
businessType
createdAt
updatedAt
name {
legalBusinessName
doingBusinessAsName
}
businessDescription
billingAddress {
streetAddress
extendedAddress
postalCode
region
locality
countryCodeAlpha3
}
legalAddress {
streetAddress
extendedAddress
postalCode
region
locality
countryCodeAlpha3
}
phoneNumbers {
countryCode
number
label
}
identificationDocument {
employerIdentificationNumber {
numberHash
countryCodeAlpha3
}
}
ultimateBeneficialOwners {
id
percentageOwnership
dateOfBirth
email
createdAt
updatedAt
name {
givenName
familyName
title
suffix
middleName
}
homeAddress {
streetAddress
extendedAddress
postalCode
region
locality
countryCodeAlpha3
}
phoneNumbers {
countryCode
number
label
}
identificationDocument {
socialSecurityNumber {
numberHash
countryCodeAlpha3
}
}
}
}
}
}
}
Variables
{ "input": { "primaryAuthorizedPerson": { "name": { "givenName": "Bill", "familyName": "Someone" }, "email": "foo@example.com", "phoneNumber": { "countryCode": "1", "number": "5555555555", "label": "MOBILE", "extension": "312" }, "homeAddress": { "streetAddress": "123 Main Street", "postalCode": "60654", "locality": "Chicago", "region": "IL", "countryCodeAlpha3": "USA" }, "identificationDocument": { "socialSecurityNumber": { "number": "111-11-1111", "countryCodeAlpha3": "USA" } }, "dateOfBirth": "1980-09-01", "percentageOwnership": 25, "authorizingPersonTitle": "PRESIDENT" }, "businessProfile": { "name": { "legalBusinessName": "Foo Inc.", "doingBusinessAsName": "Foo Inc." }, "businessDescription": "A small retail shop.", "phoneNumber": { "countryCode": "1", "number": "5555555555", "label": "MOBILE", "extension": "312" }, "billingAddress": { "streetAddress": "123 Main Street", "postalCode": "60654", "locality": "Chicago", "region": "IL", "countryCodeAlpha3": "USA" }, "legalAddress": { "streetAddress": "123 Main Street", "postalCode": "60654", "locality": "Chicago", "region": "IL", "countryCodeAlpha3": "USA" }, "identificationDocument": { "employerIdentificationNumber": { "number": "12-3456789", "countryCodeAlpha3": "USA" } }, "website": "https://www.foowebsite.com", "businessType": "PARTNERSHIP", "creditRiskAttributes": { "annualRevenue": { "value": "500000", "currencyCode": "USD" } }, "ultimateBeneficialOwners": [ { "email": "foobo@example.com", "name": { "givenName": "Scott", "familyName": "Someone" }, "homeAddress": { "streetAddress": "123 Main Street", "postalCode": "60654", "locality": "Chicago", "region": "IL", "countryCodeAlpha3": "USA" }, "phoneNumber": { "countryCode": "1", "number": "5555555555", "label": "MOBILE", "extension": "312" }, "identificationDocument": { "socialSecurityNumber": { "number": "111-11-1111", "countryCodeAlpha3": "USA" } }, "dateOfBirth": "1980-09-01", "percentageOwnership": 75 } ] }, "externalId": "user-id-in-your-system" } }
Result
{
"data": {
"createUSBusinessAccountHolder": {
"__typename": "USBusinessAccountHolder",
"externalId": "user-id-in-your-system",
"id": "og_ah02ceaf710dd0654d55abeaa2c4a0caf865",
"createdAt": "2024-11-20T22:25:21.561Z",
"updatedAt": "2024-11-20T22:25:21.596Z",
"primaryAuthorizedPerson": {
"id": "ps_ap0135e1c47a453c4656bb8da5fb2a60f976",
"email": "foo@example.com",
"dateOfBirth": "1980-09-01",
"percentageOwnership": 25,
"authorizingPersonTitle": "PRESIDENT",
"createdAt": "2024-11-20T22:25:21.562Z",
"updatedAt": "2024-11-20T22:25:21.597Z",
"name": {
"givenName": "Bill",
"familyName": "Someone",
"title": "",
"suffix": "",
"middleName": ""
},
"homeAddress": {
"streetAddress": "123 Main Street",
"extendedAddress": "",
"postalCode": "60654",
"region": "IL",
"locality": "Chicago",
"countryCodeAlpha3": "USA"
},
"phoneNumbers": [
{
"countryCode": "1",
"number": "5555555555",
"label": "MOBILE"
}
],
"identificationDocument": {
"socialSecurityNumber": {
"numberHash": "AQAAAAOsQ644SC1GNYnzkU0evWaL290gayp0lfmx-sEyxxdQnA",
"countryCodeAlpha3": "USA"
}
}
},
"businessProfile": {
"id": "og_ah02ceaf710dd0654d55abeaa2c4a0caf865",
"website": "https://www.foowebsite.com",
"businessType": "PARTNERSHIP",
"createdAt": "2024-11-20T22:25:21.561Z",
"updatedAt": "2024-11-20T22:25:21.596Z",
"name": {
"legalBusinessName": "Foo Inc.",
"doingBusinessAsName": "Foo Inc."
},
"businessDescription": "A small retail shop.",
"billingAddress": {
"streetAddress": "123 Main Street",
"extendedAddress": "",
"postalCode": "60654",
"region": "IL",
"locality": "Chicago",
"countryCodeAlpha3": "USA"
},
"legalAddress": {
"streetAddress": "123 Main Street",
"extendedAddress": "",
"postalCode": "60654",
"region": "IL",
"locality": "Chicago",
"countryCodeAlpha3": "USA"
},
"phoneNumbers": [
{
"countryCode": "1",
"number": "5555555555",
"label": "MOBILE"
}
],
"identificationDocument": {
"employerIdentificationNumber": {
"numberHash": "AQAAAAP-DCG8rUeazMDEAOX1QWMGpxrCbhBcc9eIL7-RvRiTXA",
"countryCodeAlpha3": "USA"
}
},
"ultimateBeneficialOwners": [
{
"id": "ps_ap01ecd81cae4c1c4be38f1062d90b83e7a0",
"percentageOwnership": 75,
"dateOfBirth": "1980-09-01",
"email": "foobo@example.com",
"createdAt": "2024-11-20T22:25:21.562Z",
"updatedAt": "2024-11-20T22:25:21.597Z",
"name": {
"givenName": "Scott",
"familyName": "Someone",
"title": "",
"suffix": "",
"middleName": ""
},
"homeAddress": {
"streetAddress": "123 Main Street",
"extendedAddress": "",
"postalCode": "60654",
"region": "IL",
"locality": "Chicago",
"countryCodeAlpha3": "USA"
},
"phoneNumbers": [
{
"countryCode": "1",
"number": "5555555555",
"label": "MOBILE"
}
],
"identificationDocument": {
"socialSecurityNumber": {
"numberHash": "AQAAAAOsQ644SC1GNYnzkU0evWaL290gayp0lfmx-sEyxxdQnA",
"countryCodeAlpha3": "USA"
}
}
}
]
}
}
},
"extensions": {
"requestId": "13d1c450-dac5-9d9f-814b-21978441ed1f",
"rateLimit": {
"cost": 29,
"limit": 60060,
"remaining": 60031
}
}
}
Onboard a US person account holder
A USPersonAccountHolder is an account holder that uses a consumer card product. This type of account holder has account details that include the account holder's name, address, contact information, date of birth, and social security number (SSN).
You can use the following mutation to create a USPersonAccountHolder:
CreateUSPersonAccountHolder
Query
mutation createUSPersonAccountHolder(
$input: CreateUSPersonAccountHolderInput!
) {
createUSPersonAccountHolder(input: $input) {
__typename
... on UserError {
errors {
errorPath
code
description
}
}
... on USPersonAccountHolder {
id
email
dateOfBirth
externalId
updatedAt
createdAt
name {
givenName
familyName
title
suffix
middleName
}
billingAddress {
streetAddress
extendedAddress
postalCode
region
locality
countryCodeAlpha3
}
phoneNumbers {
countryCode
number
label
}
identificationDocument {
socialSecurityNumber {
numberHash
countryCodeAlpha3
}
}
personCreditRiskAttributes {
totalAnnualIncome {
value
currencyCode
}
currentDebtObligations {
value
currencyCode
}
employmentStatus
}
}
}
}
Variables
{ "input": { "personAccountHolder": { "email": "gerrytest1@abc.com", "name": { "givenName": "Gerry", "familyName": "Wolfe" }, "billingAddress": { "streetAddress": "123 Main Street", "postalCode": "60654", "locality": "Chicago", "region": "IL", "countryCodeAlpha3": "USA" }, "phoneNumber": { "countryCode": "1", "number": "5555555555", "label": "MOBILE", "extension": "312" }, "identificationDocument": { "socialSecurityNumber": { "number": "111-11-1111", "countryCodeAlpha3": "USA" } }, "personCreditRiskAttributes": { "totalAnnualIncome": { "value": "1000", "currencyCode": "USD" }, "currentDebtObligations": { "value": "1000", "currencyCode": "USD" }, "employmentStatus": "EMPLOYED" }, "dateOfBirth": "1980-09-01", "externalId": "EXTERNAL_ID" } } }
Result
{
"data": {
"createUSPersonAccountHolder": {
"__typename": "USPersonAccountHolder",
"id": "ACCOUNT_HOLDER_ID",
"email": "gerrytest1@abc.com",
"dateOfBirth": "1980-09-01",
"externalId": "EXTERNAL_ID",
"updatedAt": "2023-05-03T05:12:01.703Z",
"createdAt": "2023-05-03T05:12:01.703Z",
"name": {
"givenName": "Gerry",
"familyName": "Wolfe",
"title": "",
"suffix": "",
"middleName": ""
},
"billingAddress": {
"streetAddress": "123 Main Street",
"extendedAddress": "",
"postalCode": "60654",
"region": "IL",
"locality": "Chicago",
"countryCodeAlpha3": "USA"
},
"phoneNumbers": [
{
"countryCode": "1",
"number": "5555555555",
"label": "MOBILE"
}
],
"identificationDocument": {
"socialSecurityNumber": {
"numberHash": "AQAAAAOsQ644SC1GNYnzkU0evWaL290gayp0lfmx-sEyxxdQnA",
"countryCodeAlpha3": "USA"
}
},
"personCreditRiskAttributes": {
"totalAnnualIncome": [
{
"value": 1000,
"currencyCode": "USD"
}
],
"currentDebtObligations": [
{
"value": 1000,
"currencyCode": "USD"
}
],
"employmentStatus": "EMPLOYED"
}
}
},
"extensions": {
"requestId": "REQUEST_ID"
}
}
Required fields
When creating an account holder onboarding form or experience for your app or website, there are several required fields an account holder must complete. These required fields are essential for running identity checks and ensuring the account holder qualifies for your card product.
For a list of required fields for account holders, review the Create Account Holder section of the Design Your Card Experience guide.
Open an application
With an account holder created, you can open an application for your card product.
When an application is opened, you must present your compliance agreements and record the timestamp the account holder consents to the agreements. Once an application is submitted, it is reviewed by the Highnote team in an asynchronous process.
We recommend displaying a view for the account holder that lets them know their application is being reviewed. This process is outlined in the following graphic:

During the review process, Highnote runs the following verification checks:
- Know Your Customer (KYC)
- Know Your Business (KYB)
- Office of Foreign Assets Control (OFAC) screening
- First and third-party fraud risk
You can use the following mutation to create an account holder application for a card product. For this example mutation, include the following IDs as input variables:
ACCOUNT_HOLDER_IDCARD_PRODUCT_ID- Required only for business account holders -
PRIMARY_AUTHORIZED_PERSON_ID
These IDs are in the Onboard an Account Holder mutation response or can be found on the account holder page of the dashboard.
CreateAccountHolderCardProductApplication
Query
mutation createAccountHolderCardProductApplication(
$input: CreateAccountHolderCardProductApplicationInput!
) {
createAccountHolderCardProductApplication(input: $input) {
__typename
... on AccountHolderCardProductApplication {
id
applicationState {
status
}
updatedAt
createdAt
}
... on UserError {
errors {
errorPath
code
description
}
}
}
}
Variables
{ "input": { "accountHolderId": "ACCOUNT_HOLDER_ID", "cardProductId": "CARD_PRODUCT_ID", "cardHolderAgreementConsent": { "primaryAuthorizedPersonId": "PRIMARY_AUTHORIZED_PERSON_ID", "consentTimestamp": "2021-12-22T17:10:55.662Z" } } }
Result
{
"data": {
"createAccountHolderCardProductApplication": {
"__typename": "AccountHolderCardProductApplication",
"id": "APPLICATION_ID",
"applicationState": {
"status": "PENDING"
},
"createdAt": "2021-07-07T23:22:30.475Z",
"updatedAt": "2021-07-07T23:22:30.475Z"
}
},
"extensions": {
"requestId": "REQUEST_ID"
}
}
Check application status
The following graphic displays the application status lifecycle, from opening an application to decisioning:

After an application is submitted, the returned applicationState displays one of the following statuses:
| Status | Description |
|---|---|
| PENDING | The application has been received, and the system is running automated verifications. |
| IN_REVIEW | Sometimes, an application may be flagged for manual review because fraud is suspected or the information provided appears incorrect. This status indicates that a Highnote agent is reviewing the application to determine a decision or if additional information is required from the account holder. |
| DENIED | The application has failed one or more card product policies. A payment card cannot be issued to this account holder. Customer notification of the denial and denial reason may be required. |
| APPROVED | The application has been approved. You may now issue a financial account for the account holder. |
You can monitor an open application's status using the APPLICATION_ID created in the response to the open application query. Use the following query to check the application status:
LookupApplication
Query
query LookupApplication($id: ID!) {
node(id: $id) {
... on AccountHolderCardProductApplication {
__typename
applicationState {
status
}
decisionedAt
expiresAt
accountHolderSnapshot {
... on USPersonAccountHolderSnapshot {
__typename
currentVerification {
status
reason
results {
code
description
}
}
}
}
}
}
}
Variables
{
"id": "APPLICATION_ID"
}
Result
{
"data": {
"node": {
"__typename": "AccountHolderCardProductApplication",
"applicationState": {
"status": "APPROVED"
},
"accountHolderSnapshot": {
"__typename": "USPersonAccountHolderSnapshot",
"decisionedAt": "2024-10-25T18:53:48.968Z",
"expiresAt": "2024-10-25T18:53:48.968Z",
"currentVerification": {
"status": "PASSED",
"reason": "PASSED",
"results": [
{
"code": "ADDRESS_MATCH",
"description": "The account holder's address was able to be verified."
}
]
}
}
}
},
"extensions": {
"requestId": "REQUEST_ID"
}
}
Add account notes
After issuing a financial account, you can use the following mutation to allow your agents to add notes to a financial account. Adding notes is useful for various internal servicing needs:
CreateGlobalNote
Query
mutation createGlobalNote($input: CreateGlobalNoteInput!) {
createGlobalNote(input: $input) {
__typename
... on GlobalNote {
id
createdBy {
id
}
message
createdAt
primaryEntity {
__typename
... on FinancialAccount {
id
externalId
}
}
aggregateEntity {
__typename
... on USBusinessAccountHolder {
id
externalId
}
... on USPersonAccountHolder {
id
externalId
}
}
}
... on AccessDeniedError {
message
}
... on UserError {
errors {
__typename
errorPath
code
description
}
}
}
}
Variables
{ "input": { "message": "This is a note!", "primaryEntity": { "primaryEntityId": "FINANCIAL_ACCOUNT_ID", "primaryEntityType": "FINANCIAL_ACCOUNT" }, "aggregateEntity": { "aggregateEntityId": "ACCOUNT_HOLDER_ID", "aggregateEntityType": "ACCOUNT_HOLDER" } } }
Result
{
"data": {
"createGlobalNote": {
"__typename": "GlobalNote",
"id": "GLOBAL_NOTE_ID",
"createdBy": {
"id": "ORGANIZATION_ID"
},
"message": "This is a high note!",
"createdAt": "2024-06-28T18:13:26.620Z",
"primaryEntity": {
"__typename": "FinancialAccount",
"id": "FINANCIAL_ACCOUNT_ID",
"externalId": "2KRBVWEJY4"
},
"aggregateEntity": {
"__typename": "USPersonAccountHolder",
"id": "ACCOUNT_HOLDER_ID",
"externalId": "some-id"
}
}
},
"extensions": {
"requestId": "REQUEST_ID",
"rateLimit": {
"cost": 13,
"limit": 60060,
"remaining": 60047
}
}
}
Provision an account holder
Provisioning an account holder lets you bundle multiple actions in a single call:
- Open an application once the account holder account is created.
- Issue a financial account once the application is approved.
- Issue a payment card once the financial account is created.
Using the provisionAccountHolder mutation reduces your implementation and development effort of orchestrating API calls.
The workflow systemically orchestrates the next call to action once the previous action is successfully completed.
The inputs to the actions of CREATE_APPLICATION, ISSUE_FINANCIAL_ACCOUNT, and ISSUE_PAYMENT_CARD must all be provided to provision the business or person account holder.
ProvisionAccountHolder
Query
mutation provisionAccountHolder($input: ProvisionAccountHolderInput!) {
provisionAccountHolder(input: $input) {
__typename
... on AccountHolderProvisioning {
id
idempotencyKey
createdAt
updatedAt
outcome {
status
}
accountHolder {
... on USBusinessAccountHolder {
id
businessProfile {
name {
legalBusinessName
}
}
}
}
currentAction {
id
action
}
nextAction {
id
action
}
workflowActions {
id
action
actionInput {
createAccountHolderCardProductApplicationInput {
cardHolderAgreementConsent {
consentTimestamp
primaryAuthorizedPerson {
... on USBusinessAuthorizedPerson {
name {
familyName
}
id
}
... on USPersonAuthorizedUser {
id
name {
familyName
}
}
}
}
}
issueFinancialAccountForApplicationInput {
name
}
issuePaymentCardForFinancialAccountInput {
options {
activateOnCreate
cardProfileSet {
id
description
}
expirationDate
}
}
}
outcome {
status
}
executionOrder
node {
... on UserError {
errors {
errorPath
code
description
}
}
... on AccountHolderCardProductApplication {
id
applicationState {
status
}
}
... on FinancialAccount {
id
name
}
... on PaymentCard {
id
status
}
}
}
}
... on UserError {
errors {
errorPath
code
description
}
}
}
}
Variables
{ "input": { "idempotencyKey": "IDEMPOTENCY-KEY", "accountHolderId": "og_ah02cac722541e144ab2beace82b9db33cca", "actions": [ "CREATE_APPLICATION", "ISSUE_FINANCIAL_ACCOUNT", "ISSUE_PAYMENT_CARD" ], "actionInput": { "createAccountHolderCardProductApplicationInput": { "cardProductId": "pd_63074611593b4967a74b632089e98f77", "cardHolderAgreementConsent": { "consentTimestamp": "2024-11-12T16:20:15.657Z", "primaryAuthorizedPersonId": "ps_ap01583eb308f15f4cb181689e8d2b6c2ddc" } }, "issueFinancialAccountForApplicationInput": { "name": "Fianancial Account Name" }, "issuePaymentCardForFinancialAccountInput": { "options": { "activateOnCreate": true, "expirationDate": "2026-01-01T23:59:59Z" } } } } }
Result
{
"data": {
"provisionAccountHolder": {
"__typename": "AccountHolderProvisioning",
"id": "prvwo_2fd2339ae6d54a31975b583128379f54",
"idempotencyKey": "IDEMPOTENCY-KEY",
"createdAt": "2024-11-12T13:47:53.359Z",
"updatedAt": "2024-11-12T13:47:53.359Z",
"outcome": {
"status": "INITIATED"
},
"accountHolder": {
"id": "og_ah02cac722541e144ab2beace82b9db33cca",
"businessProfile": {
"name": {
"legalBusinessName": "BlueJay"
}
}
},
"currentAction": null,
"nextAction": null,
"workflowActions": [
{
"id": "prvwa_decdc5cefaa1417baf06e0eb9b4e1e71",
"action": "CREATE_APPLICATION",
"actionInput": {
"createAccountHolderCardProductApplicationInput": {
"cardHolderAgreementConsent": {
"consentTimestamp": "2024-11-12T13:47:53.206Z",
"primaryAuthorizedPerson": {
"name": {
"familyName": "Smith"
},
"id": "ps_ap01583eb308f15f4cb181689e8d2b6c2ddc"
}
}
}
},
"outcome": {
"status": "INITIATED"
},
"executionOrder": 1,
"node": null
},
{
"id": "prvwa_6b373215093a4b7384c49895355c5487",
"action": "ISSUE_FINANCIAL_ACCOUNT",
"actionInput": {
"createAccountHolderCardProductApplicationInput": null,
"issueFinancialAccountForApplicationInput": {
"name": "Fianancial Account Name"
}
},
"outcome": {
"status": "INITIATED"
},
"executionOrder": 2,
"node": null
},
{
"id": "prvwa_f7a7911dd8cb470b9c4982980219be5a",
"action": "ISSUE_PAYMENT_CARD",
"actionInput": {
"createAccountHolderCardProductApplicationInput": null,
"issueFinancialAccountForApplicationInput": null,
"issuePaymentCardForFinancialAccountInput": {
"options": {
"activateOnCreate": true,
"cardProfileSet": null,
"expirationDate": "2026-01-01T23:59:59Z"
}
},
"initiateFinancialAccountCreditLimitUpdateFromProductFundingInput": null
},
"outcome": {
"status": "INITIATED"
},
"executionOrder": 3,
"node": null
}
]
}
},
"extensions": {
"requestId": "069a472a-aba1-9d1c-8198-87dba121b902",
"rateLimit": {
"cost": 31
}
}
}
Check provisioning status
Use the following query to lookup the overall status of account holder provisioning as well as the status of the individual actions:
accountHolderProvisioning
Query
query accountHolderProvisioning($id: ID!) {
node(id: $id) {
... on AccountHolderProvisioning {
id
idempotencyKey
createdAt
updatedAt
outcome {
status
}
accountHolder {
__typename
... on USBusinessAccountHolder {
id
businessProfile {
name {
legalBusinessName
}
}
}
}
currentAction {
id
action
}
nextAction {
id
action
}
workflowActions {
id
action
actionInput {
createAccountHolderCardProductApplicationInput {
cardHolderAgreementConsent {
consentTimestamp
primaryAuthorizedPerson {
__typename
... on USPersonAuthorizedUser {
id
name {
familyName
}
}
... on USBusinessAuthorizedPerson {
name {
familyName
}
id
}
}
}
}
issueFinancialAccountForApplicationInput {
name
}
issuePaymentCardForFinancialAccountInput {
options {
activateOnCreate
cardProfileSet {
id
description
}
expirationDate
}
}
}
outcome {
status
}
executionOrder
node {
__typename
... on UserError {
errors {
errorPath
code
description
}
}
... on AccountHolderCardProductApplication {
id
createdAt
updatedAt
applicationState {
status
}
accountHolderSnapshot {
... on USBusinessAccountHolderSnapshot {
accountHolderCurrent {
__typename
id
}
businessProfile {
name {
legalBusinessName
}
}
}
}
}
... on FinancialAccount {
id
name
externalId
createdAt
}
... on PaymentCard {
id
status
}
}
}
}
}
}
Variables
{
"id": "prvwo_2fd2339ae6d54a31975b583128379f54"
}
Result
{
"data": {
"node": {
"id": "prvwo_2fd2339ae6d54a31975b583128379f54",
"idempotencyKey": "9f5fb1c4-4239-4004-bbef-5986b1b46f50",
"createdAt": "2024-11-12T13:47:53.359Z",
"updatedAt": "2024-11-12T13:48:14.912Z",
"outcome": {
"status": "COMPLETED"
},
"accountHolder": {
"__typename": "USBusinessAccountHolder",
"id": "og_ah02cac722541e144ab2beace82b9db33cca",
"businessProfile": {
"name": {
"legalBusinessName": "BlueJay"
}
}
},
"currentAction": null,
"nextAction": null,
"workflowActions": [
{
"id": "prvwa_decdc5cefaa1417baf06e0eb9b4e1e71",
"action": "CREATE_APPLICATION",
"actionInput": {
"createAccountHolderCardProductApplicationInput": {
"cardHolderAgreementConsent": {
"consentTimestamp": "2024-11-12T13:47:53.206Z",
"primaryAuthorizedPerson": {
"__typename": "USBusinessAuthorizedPerson",
"name": {
"familyName": "Smith"
},
"id": "ps_ap01583eb308f15f4cb181689e8d2b6c2ddc"
}
}
}
},
"outcome": {
"status": "COMPLETED"
},
"executionOrder": 1,
"node": {
"__typename": "AccountHolderCardProductApplication",
"id": "ap_22bcgm91c80f348ca94d12a6084e72a2190410",
"createdAt": "2024-11-12T13:47:54.240Z",
"updatedAt": "2024-11-12T13:48:00.953Z",
"applicationState": {
"status": "APPROVED"
},
"accountHolderSnapshot": {
"accountHolderCurrent": {
"__typename": "USBusinessAccountHolder",
"id": "og_ah02cac722541e144ab2beace82b9db33cca"
},
"businessProfile": {
"name": {
"legalBusinessName": "BlueJay"
}
}
}
}
},
{
"id": "prvwa_6b373215093a4b7384c49895355c5487",
"action": "ISSUE_FINANCIAL_ACCOUNT",
"actionInput": {
"createAccountHolderCardProductApplicationInput": null,
"issueFinancialAccountForApplicationInput": {
"name": "Fianancial Account Name"
}
},
"outcome": {
"status": "COMPLETED"
},
"executionOrder": 2,
"node": {
"__typename": "FinancialAccount",
"id": "ac_c02253f0a9b5fda142cd804ec32a3e494829",
"name": "Fianancial Account Name",
"externalId": "2485287743",
"createdAt": "2024-11-12T13:48:04.483Z"
}
},
{
"id": "prvwa_f7a7911dd8cb470b9c4982980219be5a",
"action": "ISSUE_PAYMENT_CARD",
"actionInput": {
"createAccountHolderCardProductApplicationInput": null,
"issueFinancialAccountForApplicationInput": null,
"issuePaymentCardForFinancialAccountInput": {
"options": {
"activateOnCreate": true,
"cardProfileSet": null,
"expirationDate": "2026-01-01T23:59:59Z"
}
},
"initiateFinancialAccountCreditLimitUpdateFromProductFundingInput": null
},
"outcome": {
"status": "COMPLETED"
},
"executionOrder": 3,
"node": {
"__typename": "PaymentCard",
"id": "cd_a0fc71efc2cf1a7e8f3a16b2a0ddab45",
"status": "ACTIVE"
}
}
]
}
},
"extensions": {
"requestId": "f776cf23-c4bf-9a98-ad59-af8174862aac",
"rateLimit": {
"cost": 26
}
}
}
Next steps: Issue cards
After onboarding an account, you can issue a card to the account holder. This process involves the following steps:
- Issue a financial account to the account holder
- Issue a virtual card
- Optional Issue a physical card
- Activate the card
- Optional Set a PIN