Skip to main content

Reevaluate an Application

Overview

Update Account Information ⇒ Reevaluate an Application

Reevaluate an Application should be used for changes to an already approved application, including updates to contact details such as address, phone number, and email. Some changes may require re-verification.

Update Account Information is deprecated but will remain available for updating contact details such as address, phone number, and email as needed.

Reevaluating an application creates a new application from an existing approved one and runs a customized processing workflow. You can update account holder identity information (e.g., legal name, SSN, EIN, address) on an approved application without modifying the original.

Use cases include:

  • Identity updates: An account holder legally changes their name or address after approval.
  • Periodic re-verification: Re-run KYC or KYB checks against updated identity information.
  • Compliance-driven reviews: Satisfy regulatory requirements for periodic account holder re-vetting.

Application data is a point-in-time snapshot of verified customer information. Approved applications are immutable for compliance and audit purposes. Instead of modifying an approved application directly, the reevaluation process creates a new edition of the application, processes it through a workflow, and, if approved, promotes it as the current application.

Prerequisites

Contact Highnote

Contact your Highnote representative to set up a workflow configuration tailored to your specific reevaluation use case. The ability to query existing workflow configurations via the API is planned for a future release.

How reevaluation works

The reevaluation process follows three phases:

  1. Initiation: You call the reevaluateApplication mutation with the approved application ID and a workflow configuration ID. Highnote creates a new application (a "reevaluation edition") and begins processing the specified workflow.

  2. Processing: The new application moves through the workflow. Depending on the configuration, this may include collecting updated identity information from the account holder and running KYC/KYB verification.

  3. Resolution: The reevaluation either succeeds or fails:

    • Approved: The new application is promoted as the current application. All dependent objects (financial accounts, payment cards) seamlessly reference the updated application. The original application is retired.
    • Rejected: The original application remains unchanged in APPROVED status. You can initiate a new reevaluation.

Application status values

StatusDescription
PENDINGThe reevaluation application has been created and the workflow is in progress.
APPROVEDThe reevaluation has been approved and the application is now the current edition.
REJECTEDThe reevaluation was not successfully processed. The original application remains unchanged.
RETIREDA previously current application that has been replaced by a successful reevaluation.

Constraints

  • Only one active reevaluation per application at a time. You must wait for the current reevaluation to reach a terminal state (APPROVED or REJECTED) before initiating another.
  • The source application must be in APPROVED status.
  • Reevaluating one application has no impact on any other applications the account holder may have for different card products.

Edition tracking

Each reevaluation creates a new edition of the application, tracked by the reevaluationEdition field:

  • Edition 0: The original application.
  • Edition 1: The first reevaluation.
  • Edition 2: The second reevaluation, and so on.

You can view the full edition history using the previousApplications connection on the application.

Step 1: Reevaluate an application

Use the following mutation to create a reevaluation of an approved application. Provide:

  • applicationId: The ID of an approved AccountHolderCardProductApplication.
  • productApplicationWorkflowConfigurationId: The workflow configuration ID provided by Highnote.

The mutation creates a new application in PENDING status and automatically begins the configured workflow.

ReevaluateApplication
Query
mutation ReevaluateApplication($input: ReevaluateApplicationInput!) {
reevaluateApplication(input: $input) {
__typename
... on AccountHolderCardProductApplication {
id
applicationState {
status
}
sourceApplication {
... on AccountHolderCardProductApplication {
id
applicationState {
status
}
}
}
accountHolderSnapshot {
... on USPersonAccountHolderSnapshot {
name {
givenName
familyName
}
currentVerification {
status
reason
}
}
... on USBusinessAccountHolderSnapshot {
primaryAuthorizedPerson {
name {
givenName
familyName
}
currentVerification {
status
}
}
businessProfile {
name {
legalBusinessName
}
currentVerification {
status
}
}
}
}
createdAt
updatedAt
}
... on UserError {
errors {
errorPath
code
description
}
}
}
}
Variables
{
  "input": {
    "applicationId": "APPLICATION_ID",
    "productApplicationWorkflowConfigurationId": "WORKFLOW_CONFIGURATION_ID"
  }
}
⚠️ Please login to execute queries. Visit the dashboard to authenticate.
Result
{
"data": {
"reevaluateApplication": {
"__typename": "AccountHolderCardProductApplication",
"id": "APPLICATION_ID",
"applicationState": {
"status": "PENDING"
},
"sourceApplication": {
"id": "SOURCE_APPLICATION_ID",
"applicationState": {
"status": "APPROVED"
}
},
"accountHolderSnapshot": {
"name": {
"givenName": "Jane",
"familyName": "Doe"
},
"currentVerification": {
"status": "PENDING",
"reason": "PENDING"
}
},
"createdAt": "2026-02-25T18:00:00.000Z",
"updatedAt": "2026-02-25T18:00:00.000Z"
}
},
"extensions": {
"requestId": "REQUEST_ID"
}
}

Step 2: Check reevaluation status

After initiating a reevaluation, use the following query to check the status of the new application and view the source application it was created from.

FindReevaluatedApplication
Query
query FindReevaluatedApplication($id: ID!) {
node(id: $id) {
... on AccountHolderCardProductApplication {
id
applicationState {
status
}
sourceApplication {
... on AccountHolderCardProductApplication {
id
applicationState {
status
}
}
}
accountHolderSnapshot {
... on USPersonAccountHolderSnapshot {
name {
givenName
familyName
}
currentVerification {
status
reason
results {
code
description
}
}
}
... on USBusinessAccountHolderSnapshot {
accountHolderCurrent {
id
}
primaryAuthorizedPerson {
name {
givenName
familyName
}
currentVerification {
status
reason
}
}
businessProfile {
name {
legalBusinessName
doingBusinessAsName
}
currentVerification {
status
reason
}
}
}
}
createdAt
updatedAt
}
}
}
Variables
{
"id": "APPLICATION_ID"
}
⚠️ Please login to execute queries. Visit the dashboard to authenticate.
Result
{
"data": {
"node": {
"id": "APPLICATION_ID",
"applicationState": {
"status": "PENDING"
},
"sourceApplication": {
"id": "SOURCE_APPLICATION_ID",
"applicationState": {
"status": "APPROVED"
}
},
"accountHolderSnapshot": {
"name": {
"givenName": "Jane",
"familyName": "Doe"
},
"currentVerification": {
"status": "PENDING",
"reason": "PENDING",
"results": []
}
},
"createdAt": "2026-02-25T18:00:00.000Z",
"updatedAt": "2026-02-25T18:00:00.000Z"
}
},
"extensions": {
"requestId": "REQUEST_ID"
}
}

The sourceApplication field on the reevaluated application points to the immediate parent -- the application that was used to create this reevaluation.

Step 3: View application edition history

Use the following query to view the full reevaluation history of an application. The previousApplications connection returns all prior editions with their status and edition number.

LookupApplicationWithPreviousEditions
Query
query LookupApplicationWithPreviousEditions($id: ID!) {
node(id: $id) {
... on AccountHolderCardProductApplication {
id
applicationState {
status
}
reevaluationEdition
sourceApplication {
... on AccountHolderCardProductApplication {
id
applicationState {
status
}
}
}
previousApplications(first: 10) {
pageInfo {
hasNextPage
endCursor
}
edges {
node {
... on AccountHolderCardProductApplication {
id
reevaluationEdition
applicationState {
status
}
createdAt
}
}
}
}
createdAt
updatedAt
}
}
}
Variables
{
"id": "APPLICATION_ID"
}
⚠️ Please login to execute queries. Visit the dashboard to authenticate.
Result
{
"data": {
"node": {
"id": "APPLICATION_ID",
"applicationState": {
"status": "APPROVED"
},
"reevaluationEdition": 1,
"sourceApplication": {
"id": "SOURCE_APPLICATION_ID",
"applicationState": {
"status": "APPROVED"
}
},
"previousApplications": {
"pageInfo": {
"hasNextPage": false,
"endCursor": "CURSOR"
},
"edges": [
{
"node": {
"id": "PREVIOUS_APPLICATION_ID",
"reevaluationEdition": 0,
"applicationState": {
"status": "APPROVED"
},
"createdAt": "2026-01-01T00:00:00.000Z"
}
}
]
},
"createdAt": "2026-02-25T18:00:00.000Z",
"updatedAt": "2026-02-25T18:00:00.000Z"
}
},
"extensions": {
"requestId": "REQUEST_ID"
}
}

What happens after approval

When a reevaluation is approved:

  1. The new application is promoted as the current application for the account holder and card product.
  2. All dependent objects (financial accounts, payment cards) seamlessly reference the updated application.
  3. Updated identity information is pushed to the Identity service.
  4. The previously current application transitions to RETIRED status. It remains accessible through the previousApplications connection for audit purposes.
info

The applications field on USPersonAccountHolder and USBusinessAccountHolder returns only the current application. Use the previousApplications connection on an application to access its reevaluation history.

What happens after rejection

When a reevaluation is rejected:

  1. The original application remains in APPROVED status, unchanged.
  2. The reevaluation application is marked REJECTED.
  3. You can initiate a new reevaluation for the same application.