Skip to main content

Set and Update Credit Limits

Overview

For credit, charge, and fleet card products, you can create or update a credit limit for an account holder's financial account based on your underwriting criteria, agreements, and product guidelines. The credit limit establishes a maximum spending limit for a given period, and authorizations exceeding the credit limit will be declined.

Once you have created a credit limit, you can update it as you factor in new information, such as changes in your customers' financial situations. As part of this feature, Highnote tracks the total credit extended to your account holders' financial accounts and ensures the extended credit does not exceed your card product’s limits.

Set credit limit

info

Setting or updating a credit limit is an asynchronous process with the Highnote team to ensure your ledger balances and validations are accurate.

To set a financial account credit limit, provide the financialAccountId and the credit limit amount and currency to assign to the financial account. Your product funding financial account must have funds equal to or exceeding any credit limit you extend to your account holders.

Use the following mutation to set a credit limit:

InitiateFinancialAccountCreditLimitUpdateFromProductFunding
Query
mutation InitiateFinancialAccountCreditLimitUpdateFromProductFunding(
$input: InitiateFinancialAccountCreditLimitUpdateFromProductFundingInput!
) {
initiateFinancialAccountCreditLimitUpdateFromProductFunding(input: $input) {
__typename
... on FinancialAccountCreditLimitUpdateFromProductFunding {
id
status
statusReason
createdAt
updatedAt
memo
amount {
value
currencyCode
}
}
... on UserError {
errors {
code
}
}
... on AccessDeniedError {
message
}
}
}
Variables
{
  "input": {
    "financialAccountId": "FINANCIAL_ACCOUNT_ID",
    "memo": "Set Limit",
    "amount": {
      "value": 100,
      "currencyCode": "USD"
    }
  }
}
⚠️ Please login to execute queries. Visit the dashboard to authenticate.
Result
{
"data": {
"initiateFinancialAccountCreditLimitUpdateFromProductFunding": {
"__typename": "FinancialAccountCreditLimitUpdateFromProductFunding",
"id": "FINANCIAL_ACCOUNT_ID",
"status": "PENDING",
"statusReason": null,
"createdAt": "2022-06-21T18:01:28.992Z",
"updatedAt": "2022-06-21T18:01:28.993Z",
"memo": null,
"amount": {
"value": 100,
"currencyCode": "USD"
}
}
},
"extensions": {
"requestId": "REQUEST_ID"
}
}

Check credit limit status

Once you have requested to set or update the credit limit on a financial account, you can query for and display the following statuses:

StatusDescription
PENDINGThe platform is validating and executing the credit limit update.
PROCESSINGThe platform has started processing the credit limit update.
COMPLETEDThe platform has completed the credit limit update.
FAILEDThe platform could not complete the limit update. See statusReasonCode for more information.

statusReasonCode has the following values:

Status Reason CodeDescription
ACCOUNT_CLOSEDThe associated product funding account or financial account is closed.
ACCOUNT_NOT_FOUNDThe financial account was not found.
INSUFFICIENT_FUNDSThe associated product funding account did not have enough funds to cover the requested amount.
LIMIT_AMOUNT_EXCEEDING_MAX_PROGRAM_LOAD_LIMITThe requested amount is more than the maximum product credit limit.

Use the following query to check the status of a credit limit update:

FindFinancialAccountCreditLimitUpdate
Query
query FindFinancialAccountCreditLimitUpdate($id: ID!) {
node(id: $id) {
... on FinancialAccountCreditLimitUpdateFromProductFunding {
id
status
statusReason
amount {
value
}
memo
ledgers {
name
debitBalance {
value
}
creditBalance {
value
}
financialAccount {
name
}
}
createdAt
updatedAt
}
}
}
Variables
{
"id": "CREDIT_LIMIT_UPDATE_ID"
}
⚠️ Please login to execute queries. Visit the dashboard to authenticate.
Result
{
"data": {
"node": {
"__typename": "FinancialAccountCreditLimitUpdateFromProductFunding",
"id": "CREDIT_LIMIT_UPDATE_ID",
"status": "COMPLETED",
"statusReason": null,
"amount": {
"value": 100
},
"memo": null,
"ledgers": [
{
"name": "CREDIT_OUTSTANDING",
"debitBalance": {
"value": 999800
},
"creditBalance": {
"value": 0
},
"financialAccount": {
"name": "Fleet - Product Funding Account"
}
},
{
"name": "AVAILABLE_CREDIT",
"debitBalance": {
"value": 0
},
"creditBalance": {
"value": 999800
},
"financialAccount": {
"name": "Fleet - Product Funding Account"
}
},
{
"name": "ALLOCATED_CREDIT_LIMIT",
"debitBalance": {
"value": 100
},
"creditBalance": {
"value": 0
},
"financialAccount": {
"name": "Fleet - Product Funding Account"
}
},
{
"name": "CREDIT_OUTSTANDING",
"debitBalance": {
"value": 100
},
"creditBalance": {
"value": 0
},
"financialAccount": {
"name": "Fleet - Card Holder Account"
}
},
{
"name": "AVAILABLE_CREDIT",
"debitBalance": {
"value": 0
},
"creditBalance": {
"value": 100
},
"financialAccount": {
"name": "Fleet - Card Holder Account"
}
},
{
"name": "ACCOUNT_HOLDER_CREDIT_LIMIT",
"debitBalance": {
"value": 0
},
"creditBalance": {
"value": 100
},
"financialAccount": {
"name": "Fleet - Card Holder Account"
}
}
],
"createdAt": "2022-06-21T00:46:49.747Z",
"updatedAt": "2022-06-21T00:47:02.431Z"
}
},
"extensions": {
"requestId": "REQUEST_ID"
}
}

Update a credit limit

To increase or decrease a financial account credit limit, you must create a credit limit change request case. Credit limit updates fall into two categories:

  • Proactive: Requested by you
  • Reactive: Requested by your account holders

Each credit limit update -- increase or decrease, proactive or reactive -- may have a credit policy associated with your card product. Creating a credit limit change request case triggers the workflows necessary to make an underwriting decision. The underwriting decision for a credit limit update may be executed by you or Highnote, depending on your card program's credit policies.

Create credit limit change request

To request a credit limit change for a financial account, you must provide:

  • Financial account ID
  • Requested change type, increase or decrease

If you are running your own underwriting for credit limit updates, subscribe to the following notification event to receive updates when a credit limit change request is made: CREDIT_LIMIT_CHANGE_REQUEST_UNDERWRITING_DECISION_REQUESTED

The following mutation can be used to create the credit limit change request:

CreateCreditLimitChangeRequest
Query
mutation createCreditLimitChangeRequest(
$input: CreateCreditLimitChangeRequestInput!
) {
createCreditLimitChangeRequest(input: $input) {
__typename
... on AccountReview {
... on CreditLimitChangeRequest {
id
financialAccount {
id
externalId
name
}
requestedChange {
requestedChangeType
requestedCreditLimit {
value
currencyCode
}
requestor
}
status
createdAt
updatedAt
}
}
... on UserError {
__typename
errors {
description
code
}
}
}
}
Variables
{
  "input": {
    "financialAccountId": "FINANCIAL_ACCOUNT_ID",
    "requestedChange": {
      "requestedChangeType": "INCREASE",
      "requestedCreditLimit": {
        "value": 2000000,
        "currencyCode": "USD"
      },
      "requestor": "SUBSCRIBER"
    }
  }
}
⚠️ Please login to execute queries. Visit the dashboard to authenticate.
Result
{
"data": {
"createCreditLimitChangeRequest": {
"__typename": "CreditLimitChangeRequest",
"id": "CREDIT_LIMIT_CHANGE_REQUEST_ID",
"financialAccount": "FINANCIAL_ACCOUNT_ID",
"status": "INITIATED",
"requestedChange": {
"requestedChangeType": "INCREASE",
"requestedCreditLimit": {
"value": "2500000",
"currencyCode": "USD"
},
"requestor": "SUBSCRIBER"
},
"createdAt": "2024-01-01T00:00:00.000Z",
"updatedAt": "2024-01-01T00:00:00.000Z"
}
}
}

View credit limit change request

To view the status of a credit limit change request, use the following query and the CREDIT_LIMIT_CHANGE_REQUEST_ID:

nodeAccountReviewCase
Query
query nodeAccountReviewCase($id: ID!) {
node(id: $id) {
__typename
... on AccountReview {
... on CreditLimitChangeRequest {
id
financialAccount {
id
externalId
name
}
status
statusHistory {
previousStatus
newStatus
createdAt
}
requestedChange {
requestedChangeType
requestedCreditLimit {
value
currencyCode
}
requestor
}
existingCreditLimit {
value
currencyCode
}
updatedCreditLimit {
value
currencyCode
}
customerDetails {
currentDebtObligations {
value
currencyCode
}
annualIncome {
value
currencyCode
}
externalFinancialAccountBalance {
value
currencyCode
}
adverseActionReasons {
code
}
}
createdAt
updatedAt
closedAt
}
}
}
}
Variables
{
"id": "CREDIT_LIMIT_CHANGE_REQUEST_ID"
}
⚠️ Please login to execute queries. Visit the dashboard to authenticate.
Result
{
"data": {
"lookupCreditLimitChangeRequest": {
"__typename": "CreditLimitChangeRequest",
"id": "CREDIT_LIMIT_CHANGE_REQUEST_ID",
"financialAccount": "FINANCIAL_ACCOUNT_ID",
"status": "INITIATED",
"statusHistory": [
{
"previousStatus": null,
"newStatus": "INITIATED",
"createdAt": "2024-01-01T00:00:00.000Z"
}
],
"requestedChange": {
"requestedChangeType": "INCREASE",
"requestedCreditLimit": {
"value": "2500000",
"currencyCode": "USD"
},
"requestor": "SUBSCRIBER"
},
"customerDetails": {
"currentDebtObligations": {
"value": "1000000"
},
"annualIncome": {
"value": "10000000"
},
"adverseActionReasons": null
},
"createdAt": "2024-01-01T00:00:00.000Z",
"updatedAt": "2024-01-01T00:00:00.000Z"
}
}
}

Approve or deny the request

If you are running your own underwriting, you must provide the variables required to decision a credit limit change request based on your credit policy.

In the Test environment, use the following variables to approve or deny an increase or decrease credit limit change request. Note the following about credit limit change requests and adverse action reasons:

  • Credit limit decreases always require an Adverse Action reason
  • Credit limit increases always require an Adverse Action reason when the requestor is the customer and the request is denied
Credit limit change request typeRequired variables
Credit limit increaseAnnual income
Current debt obligations
Adverse Action reason (if denied)
Credit limit decreaseExternal bank account balance
Adverse Action reasons (if the request is approved)

Approve credit limit increase

Use the following mutation to approve a credit limit increase request:

ApproveCreditLimitIncrease
Query
mutation approveCreditLimitIncrease($input: ApproveCreditLimitIncreaseInput!) {
approveCreditLimitIncrease(input: $input) {
__typename
... on AccountReview {
... on CreditLimitChangeRequest {
id
financialAccount {
id
externalId
name
}
status
statusHistory {
previousStatus
newStatus
createdAt
}
requestedChange {
requestedChangeType
requestedCreditLimit {
value
currencyCode
}
requestor
}
existingCreditLimit {
value
currencyCode
}
customerDetails {
currentDebtObligations {
value
currencyCode
}
annualIncome {
value
currencyCode
}
externalFinancialAccountBalance {
value
currencyCode
}
}
createdAt
updatedAt
closedAt
}
}
... on UserError {
errors {
code
description
errorPath
}
}
}
}
Variables
{
  "input": {
    "creditLimitChangeRequestId": "CREDIT_LIMIT_CHANGE_REQUEST_ID",
    "updatedCreditLimit": {
      "value": 2000000,
      "currencyCode": "USD"
    },
    "customerDetails": {
      "currentDebtObligations": {
        "value": 1000000,
        "currencyCode": "USD"
      },
      "annualIncome": {
        "value": 10000000,
        "currencyCode": "USD"
      }
    }
  }
}
⚠️ Please login to execute queries. Visit the dashboard to authenticate.
Result
{
"data": {
"approveCreditLimitIncrease": {
"__typename": "CreditLimitChangeRequest",
"id": "CREDIT_LIMIT_CHANGE_REQUEST_ID",
"financialAccount": "FINANCIAL_ACCOUNT_ID",
"status": "PENDING",
"statusHistory": [
{
"previousStatus": "INITIATED",
"newStatus": "PENDING",
"createdAt": "2024-01-01T00:00:00.000Z"
}
],
"requestedChange": {
"requestedChangeType": "INCREASE",
"requestedCreditLimit": {
"value": "2500000",
"currencyCode": "USD"
},
"requestor": "SUBSCRIBER"
},
"existingCreditLimit": {
"value": "2000000",
"currencyCode": "USD"
},
"updatedCreditLimit": null,
"customerDetails": {
"currentDebtObligations": {
"value": "1000000",
"currencyCode": "USD"
},
"annualIncome": {
"value": "10000000",
"currencyCode": "USD"
},
"externalFinancialAccountBalance": {
"value": "1000000",
"currencyCode": "USD"
},
"adverseActionReasons": null
},
"createdAt": "2024-01-01T00:00:00.000Z",
"updatedAt": "2024-01-01T00:00:00.000Z",
"closedAt": "2024-01-01T00:00:00.000Z"
}
}
}

Deny credit limit increase

Use the following mutation to deny a credit limit increase request:

DenyCreditLimitIncrease
Query
mutation denyCreditLimitIncrease($input: DenyCreditLimitIncreaseInput!) {
denyCreditLimitIncrease(input: $input) {
__typename
... on AccountReview {
... on CreditLimitChangeRequest {
id
financialAccount {
id
externalId
name
}
status
statusHistory {
previousStatus
newStatus
createdAt
}
requestedChange {
requestedChangeType
requestedCreditLimit {
value
currencyCode
}
requestor
}
existingCreditLimit {
value
currencyCode
}
customerDetails {
currentDebtObligations {
value
currencyCode
}
annualIncome {
value
currencyCode
}
externalFinancialAccountBalance {
value
currencyCode
}
}
}
createdAt
updatedAt
closedAt
}
... on UserError {
__typename
errors {
code
description
}
}
}
}
Variables
{
  "input": {
    "creditLimitChangeRequestId": "CREDIT_LIMIT_CHANGE_REQUEST_ID",
    "adverseActionReasons": [
      "BANKRUPTCY"
    ],
    "customerDetails": {
      "currentDebtObligations": {
        "value": 1000000,
        "currencyCode": "USD"
      },
      "annualIncome": {
        "value": 10000000,
        "currencyCode": "USD"
      }
    }
  }
}
⚠️ Please login to execute queries. Visit the dashboard to authenticate.
Result
{
"data": {
"denyCreditLimitIncrease": {
"__typename": "CreditLimitChangeRequest",
"id": "CREDIT_LIMIT_CHANGE_REQUEST_ID",
"financialAccount": {
"id": "FINANCIAL_ACCOUNT_ID",
"externalId": "EXTERNAL_ID",
"name": "NAME"
},
"status": "DENIED",
"statusHistory": [
{
"previousStatus": "INITIATED",
"newStatus": "DENIED",
"createdAt": "2024-01-01T00:00:00.000Z"
}
],
"requestedChange": {
"requestedChangeType": "INCREASE",
"requestedCreditLimit": {
"value": "2500000",
"currencyCode": "USD"
},
"requestor": "CUSTOMER"
},
"existingCreditLimit": {
"value": "2000000",
"currencyCode": "USD"
},
"updatedCreditLimit": {
"value": "2500000",
"currencyCode": "USD"
},
"customerDetails": {
"currentDebtObligations": {
"value": "1000000"
},
"annualIncome": {
"value": "10000000"
},
"externalFinancialAccountBalance": {
"value": "1000000"
},
"adverseActionReasons": [
"BANKRUPTCY"
]
},
"createdAt": "2024-01-01T00:00:00.000Z",
"updatedAt": "2024-01-01T00:00:00.000Z",
"closedAt": "2024-01-01T00:00:00.000Z"
}
}
}

Approve credit limit decrease

Use the following mutation to approve a credit limit decrease:

ApproveCreditLimitDecrease
Query
mutation approveCreditLimitDecrease($input: ApproveCreditLimitDecreaseInput!) {
approveCreditLimitDecrease(input: $input) {
__typename
... on AccountReview {
... on CreditLimitChangeRequest {
id
financialAccount {
id
externalId
name
}
status
statusHistory {
previousStatus
newStatus
createdAt
}
requestedChange {
requestedChangeType
requestedCreditLimit {
value
currencyCode
}
requestor
}
existingCreditLimit {
value
currencyCode
}
customerDetails {
currentDebtObligations {
value
currencyCode
}
annualIncome {
value
currencyCode
}
externalFinancialAccountBalance {
value
currencyCode
}
adverseActionReasons {
code
}
}
createdAt
updatedAt
closedAt
}
}
... on UserError {
__typename
errors {
code
description
}
}
}
}
Variables
{
  "input": {
    "creditLimitChangeRequestId": "CREDIT_LIMIT_CHANGE_REQUEST_ID",
    "updatedCreditLimit": {
      "value": 1500000,
      "currencyCode": "USD"
    },
    "adverseActionReasons": [
      "BANKRUPTCY"
    ],
    "customerDetails": {
      "externalFinancialAccountBalance": {
        "value": 1000000,
        "currencyCode": "USD"
      }
    }
  }
}
⚠️ Please login to execute queries. Visit the dashboard to authenticate.
Result
{
"data": {
"approveCreditLimitDecrease": {
"__typename": "CreditLimitChangeRequest",
"id": "CREDIT_LIMIT_CHANGE_REQUEST_ID",
"financialAccount": "FINANCIAL_ACCOUNT_ID",
"status": "PENDING",
"statusHistory": [
{
"previousStatus": "INITIATED",
"newStatus": "PENDING",
"createdAt": "2024-01-01T00:00:00.000Z"
}
],
"requestedChange": {
"requestedChangeType": "DECREASE",
"requestedCreditLimit": {
"value": "1500000",
"currencyCode": "USD"
},
"requestor": "SUBSCRIBER"
},
"existingCreditLimit": {
"value": "2000000",
"currencyCode": "USD"
},
"updatedCreditLimit": null,
"customerDetails": {
"externalFinancialAccountBalance": {
"value": "1000000",
"currencyCode": "USD"
},
"adverseActionReasons": [
"BANKRUPTCY"
]
},
"createdAt": "2024-01-01T00:00:00.000Z",
"updatedAt": "2024-01-01T00:00:00.000Z",
"closedAt": "2024-01-01T00:00:00.000Z"
}
}
}

Deny credit limit decrease

Use the following mutation to deny a credit limit decrease:

DenyCreditLimitDecrease
Query
mutation denyCreditLimitDecrease($input: DenyCreditLimitDecreaseInput!) {
denyCreditLimitDecrease(input: $input) {
__typename
... on AccountReview {
... on CreditLimitChangeRequest {
id
financialAccount {
id
externalId
name
}
status
statusHistory {
previousStatus
newStatus
createdAt
}
requestedChange {
requestedChangeType
requestedCreditLimit {
value
currencyCode
}
requestor
}
existingCreditLimit {
value
currencyCode
}
customerDetails {
currentDebtObligations {
value
currencyCode
}
annualIncome {
value
currencyCode
}
externalFinancialAccountBalance {
value
currencyCode
}
}
createdAt
updatedAt
closedAt
}
}
... on UserError {
__typename
errors {
code
description
}
}
}
}
Variables
{
  "input": {
    "creditLimitChangeRequestId": "CREDIT_LIMIT_CHANGE_REQUEST_ID",
    "customerDetails": {
      "externalFinancialAccountBalance": {
        "value": 1000000,
        "currencyCode": "USD"
      }
    }
  }
}
⚠️ Please login to execute queries. Visit the dashboard to authenticate.
Result
{
"data": {
"denyCreditLimitDecrease": {
"__typename": "CreditLimitChangeRequest",
"id": "CREDIT_LIMIT_CHANGE_REQUEST_ID",
"financialAccount": "FINANCIAL_ACCOUNT_ID",
"status": "DENIED",
"statusHistory": [
{
"previousStatus": "INITIATED",
"newStatus": "DENIED",
"createdAt": "2024-01-01T00:00:00.000Z"
}
],
"requestedChange": {
"requestedChangeType": "DECREASE",
"requestedCreditLimit": {
"value": "2000000",
"currencyCode": "USD"
},
"requestor": "SUBSCRIBER"
},
"existingCreditLimit": {
"value": "2000000",
"currencyCode": "USD"
},
"updatedCreditLimit": {
"value": "2000000",
"currencyCode": "USD"
},
"customerDetails": {
"externalFinancialAccountBalance": {
"value": "1000000",
"currencyCode": "USD"
},
"adverseActionReasons": [
"BANKRUPTCY"
]
},
"createdAt": "2024-01-01T00:00:00.000Z",
"updatedAt": "2024-01-01T00:00:00.000Z",
"closedAt": "2024-01-01T00:00:00.000Z"
}
}
}

View credit limit request history

Use the following query to view the history of credit limit change requests on a financial account:

lookupCreditLimitRequestHistory
Query
query lookupCreditLimitRequestHistory($id: ID!) {
node(id: $id) {
__typename
... on FinancialAccount {
id
accountReviewHistory {
__typename
... on AccountReviewConnection {
pageInfo {
hasNextPage
hasPreviousPage
endCursor
startCursor
}
edges {
cursor
node {
__typename
... on CreditLimitChangeRequest {
id
financialAccount {
id
externalId
name
}
status
statusHistory {
previousStatus
newStatus
createdAt
}
requestedChange {
requestedChangeType
requestedCreditLimit {
value
currencyCode
}
requestor
}
existingCreditLimit {
value
currencyCode
}
updatedCreditLimit {
value
currencyCode
}
customerDetails {
currentDebtObligations {
value
currencyCode
}
annualIncome {
value
currencyCode
}
externalFinancialAccountBalance {
value
currencyCode
}
adverseActionReasons {
code
}
}
createdAt
updatedAt
closedAt
}
}
}
}
... on UserError {
__typename
errors {
errorPath
code
description
}
}
... on AccessDeniedError {
__typename
message
}
}
}
}
}
Variables
{
"id": "FINANCIAL_ACCOUNT_ID"
}
⚠️ Please login to execute queries. Visit the dashboard to authenticate.
Result
{
"data": {
"node": {
"__typename": "FinancialAccount",
"accountReviewHistory": [
{
"__typename": "CreditLimitChangeRequest",
"id": "CREDIT_LIMIT_CHANGE_REQUEST_ID",
"status": "APPROVED",
"requestedChange": {
"requestedChangeType": "INCREASE",
"requestedCreditLimit": {
"value": "2500000",
"currencyCode": "USD"
},
"requestor": "SUBSCRIBER"
},
"existingCreditLimit": {
"value": "2000000",
"currencyCode": "USD"
},
"updatedCreditLimit": {
"value": "2500000",
"currencyCode": "USD"
},
"customerDetails": {
"currentDebtObligations": {
"value": "1000000",
"currencyCode": "USD"
},
"annualIncome": {
"value": "10000000",
"currencyCode": "USD"
},
"adverseActionReason": null
},
"createdAt": "2024-01-01T00:00:00.000Z",
"updatedAt": "2024-01-01T00:00:00.000Z",
"closedAt": "2024-01-01T00:00:00.000Z"
}
]
}
}
}