Skip to main content

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_EXEMPT attribute 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

Fuel tax exemption is immutable

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:

  • type set to FUEL_TAX_EXEMPT
  • value set to true
  • reportedAt date in YYYY-MM-DD format.

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"
          }
        }
      ]
    }
  }
}
⚠️ Please login to execute queries. Visit the dashboard to authenticate.
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
}
}
}
⚠️ Please login to execute queries. Visit the dashboard to authenticate.
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"
          }
        }
      ]
    }
  }
}
⚠️ Please login to execute queries. Visit the dashboard to authenticate.
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"
  }
}
⚠️ Please login to execute queries. Visit the dashboard to authenticate.
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"
}
⚠️ Please login to execute queries. Visit the dashboard to authenticate.
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.