Onboard a Fleet Account
Overview
Fleet card products are used by business account holders. This guide covers the fleet-specific onboarding process, including fuel tax exemption.
For general onboarding concepts such as account holder types and application review, see Onboard an Account.
Before you begin
Before creating a business account holder, determine the following:
- Is this fleet fuel tax exempt? If yes, you must include the
FUEL_TAX_EXEMPTattribute during account holder creation. This attribute cannot be added or updated after onboarding. - Are you collecting data from a UI? If yes, use the tokenized flow to keep PII off your servers. If you're calling the API from your backend, use the direct API flow.
A US business account holder requires the following:
- Business details: Business name, identification number (EIN), business type, phone, billing address, and website
- Primary authorized person: Person authorized to act on behalf of the business. If they own or control at least 25% of the business, they are also added as a beneficial owner.
- Beneficial owners: Any person who owns or controls at least 25% of the business
Fuel tax exemption
Be careful. The fuel tax exemption attribute must be set during account holder creation. It cannot be added or updated after onboarding.
For non-exempt fleets, omit businessPlanAttributes (which is optional).
For fuel tax exempt fleets, pass businessPlanAttributes in the businessProfile input with:
typeset toFUEL_TAX_EXEMPTvalueset totruereportedAtdate inYYYY-MM-DDformat.
When the fuel tax exemption is enabled, Highnote's platform tracks the Fleet's qualifying transactions to enable fuel tax reclamation reporting.
Onboard with direct API flow
Use createUSBusinessAccountHolder to create the account holder directly from your server. The businessPlanAttributes field is optional:
CreateUSBusinessAccountHolder
Query
mutation CreateUSBusinessAccountHolder(
$input: CreateUSBusinessAccountHolderInput!
) {
createUSBusinessAccountHolder(input: $input) {
__typename
... on UserError {
errors {
path
code
description
}
}
... on USBusinessAccountHolder {
id
externalId
createdAt
updatedAt
businessProfile {
id
name {
legalBusinessName
doingBusinessAsName
}
businessType
operatingDetails {
indicatorAttributes {
type
value
reportedAt
}
}
}
}
}
}
Variables
{ "input": { "primaryAuthorizedPerson": { "name": { "givenName": "GIVEN_NAME", "familyName": "FAMILY_NAME" }, "dateOfBirth": "1980-01-01", "homeAddress": { "streetAddress": "123 Main St", "postalCode": "60654", "locality": "Chicago", "region": "IL", "countryCodeAlpha3": "USA" }, "identificationDocument": { "socialSecurityNumber": { "number": "111-11-1111", "countryCodeAlpha3": "USA" } } }, "businessProfile": { "name": { "legalBusinessName": "LEGAL_BUSINESS_NAME" }, "businessType": "LIMITED_LIABILITY_COMPANY", "billingAddress": { "streetAddress": "456 Commerce Blvd", "postalCode": "90210", "locality": "Los Angeles", "region": "CA", "countryCodeAlpha3": "USA" }, "identificationDocument": { "employerIdentificationNumber": { "number": "12-3456789", "countryCodeAlpha3": "USA" } }, "businessPlanAttributes": [ { "indicatorAttribute": { "type": "FUEL_TAX_EXEMPT", "value": true, "reportedAt": "2026-03-15" } } ] } } }
Result
{
"data": {
"createUSBusinessAccountHolder": {
"__typename": "USBusinessAccountHolder",
"id": "og_ah02e3d2df72eead44aaaad6ffa8aeddb669",
"externalId": null,
"createdAt": "2026-03-26T18:00:00.000Z",
"updatedAt": "2026-03-26T18:00:00.000Z",
"businessProfile": {
"id": "og_ah02e3d2df72eead44aaaad6ffa8aeddb669",
"name": {
"legalBusinessName": "LEGAL_BUSINESS_NAME",
"doingBusinessAsName": null
},
"businessType": "LIMITED_LIABILITY_COMPANY",
"operatingDetails": {
"indicatorAttributes": [
{
"type": "FUEL_TAX_EXEMPT",
"value": true,
"reportedAt": "2026-03-15"
}
]
}
}
}
},
"extensions": {
"requestId": "1ab32e1c-4949-9421-8240-c39ca4123jkl"
}
}
Onboard with tokenized flow
If you're collecting account holder data from a UI, use the tokenized flow to keep PII off your servers.
Step 1. Generate a client token
Generate a client token using generateTokenizeAccountHolderClientToken. For more information on client tokens, see Client Tokens.
GenerateTokenizeAccountHolderClientToken
Query
mutation GenerateTokenizeAccountHolderClientToken {
generateTokenizeAccountHolderClientToken {
__typename
... on ClientToken {
value
expirationDate
usage
}
... on UserError {
errors {
code
description
}
}
... on AccessDeniedError {
message
}
}
}
Result
{
"data": {
"generateTokenizeAccountHolderClientToken": {
"__typename": "ClientToken",
"value": "CLIENT_TOKEN_VALUE",
"expirationDate": "2026-03-28T01:00:00.000Z",
"usage": "UNTIL_EXPIRATION"
}
},
"extensions": {
"requestId": "d47a92c3-5f18-4e6d-b902-3a8c1ef57b24"
}
}
Step 2. Tokenize the account holder data
Tokenize the account holder data using tokenizeUSBusinessAccountHolder. This mutation accepts the same CreateUSBusinessAccountHolderInput as the direct flow, so businessPlanAttributes can be included in the tokenized data. The token expires after 1 hour.
TokenizeUSBusinessAccountHolder
Query
mutation TokenizeUSBusinessAccountHolder(
$input: CreateUSBusinessAccountHolderInput!
) {
tokenizeUSBusinessAccountHolder(input: $input) {
__typename
... on USBusinessAccountHolderToken {
token
}
... on UserError {
errors {
code
description
}
}
... on AccessDeniedError {
message
}
}
}
Variables
{ "input": { "primaryAuthorizedPerson": { "name": { "givenName": "GIVEN_NAME", "familyName": "FAMILY_NAME" }, "dateOfBirth": "1980-01-01", "homeAddress": { "streetAddress": "123 Main St", "postalCode": "60654", "locality": "Chicago", "region": "IL", "countryCodeAlpha3": "USA" }, "identificationDocument": { "socialSecurityNumber": { "number": "111-11-1111", "countryCodeAlpha3": "USA" } } }, "businessProfile": { "name": { "legalBusinessName": "LEGAL_BUSINESS_NAME" }, "businessType": "LIMITED_LIABILITY_COMPANY", "billingAddress": { "streetAddress": "456 Commerce Blvd", "postalCode": "90210", "locality": "Los Angeles", "region": "CA", "countryCodeAlpha3": "USA" }, "identificationDocument": { "employerIdentificationNumber": { "number": "12-3456789", "countryCodeAlpha3": "USA" } }, "businessPlanAttributes": [ { "indicatorAttribute": { "type": "FUEL_TAX_EXEMPT", "value": true, "reportedAt": "2026-03-15" } } ] } } }
Result
{
"data": {
"tokenizeUSBusinessAccountHolder": {
"__typename": "USBusinessAccountHolderToken",
"token": "TOKENIZED_DATA_TOKEN"
}
},
"extensions": {
"requestId": "e6f103a8-2c49-4d7a-8b35-9d1fe4a26c81"
}
}
Step 3. Create the account holder from the token
Create the account holder using createUSBusinessAccountHolderFromToken. This mutation only takes the token — no separate input is needed.
CreateUSBusinessAccountHolderFromToken
Query
mutation CreateUSBusinessAccountHolderFromToken(
$input: CreateUSBusinessAccountHolderFromTokenInput!
) {
createUSBusinessAccountHolderFromToken(input: $input) {
__typename
... on USBusinessAccountHolder {
id
businessProfile {
id
name {
legalBusinessName
}
operatingDetails {
indicatorAttributes {
type
value
reportedAt
}
}
}
}
... on UserError {
errors {
code
description
}
}
... on AccessDeniedError {
message
}
}
}
Variables
{ "input": { "token": "TOKENIZED_DATA_TOKEN" } }
Result
{
"data": {
"createUSBusinessAccountHolderFromToken": {
"__typename": "USBusinessAccountHolder",
"id": "og_ah02e3d2df72eead44aaaad6ffa8aeddb669",
"businessProfile": {
"id": "og_ah02e3d2df72eead44aaaad6ffa8aeddb669",
"name": {
"legalBusinessName": "LEGAL_BUSINESS_NAME"
},
"operatingDetails": {
"indicatorAttributes": [
{
"type": "FUEL_TAX_EXEMPT",
"value": true,
"reportedAt": "2026-03-15"
}
]
}
}
}
},
"extensions": {
"requestId": "b85fc1ec-e770-9d06-922f-16b7486a699i"
}
}
Query fuel tax exemption status
You can read back the fuel tax exemption status by querying the business account holder's operatingDetails.indicatorAttributes:
GetBusinessAccountHolder
Query
query GetBusinessAccountHolder($id: ID!) {
node(id: $id) {
... on USBusinessAccountHolder {
id
businessProfile {
name {
legalBusinessName
}
operatingDetails {
indicatorAttributes {
type
value
reportedAt
}
}
}
}
}
}
Variables
{
"id": "og_ah02e3d2df72eead44aaaad6ffa8aeddb669"
}
Result
{
"data": {
"node": {
"id": "og_ah02ceaf710dd0654d55abeaa2c4a0caf865",
"businessProfile": {
"name": {
"legalBusinessName": "Fuel Corp."
},
"operatingDetails": {
"indicatorAttributes": [
{
"type": "FUEL_TAX_EXEMPT",
"value": true,
"reportedAt": "2026-03-15"
}
]
}
}
}
},
"extensions": {
"requestId": "a23de4f1-8821-4b3c-9a17-6c4f82d19e05"
}
}
Next steps
After creating a business account holder, continue with the Fleet Credit Template to open an application, issue a financial account, and configure your fleet card product.