Reevaluate an Application
Overview
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
- A Highnote account
- Access to the Highnote API or API Explorer
- An approved card product application
- A workflow configuration ID (
prvwc_) provided by the Highnote Operations team
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:
-
Initiation: You call the
reevaluateApplicationmutation with the approved application ID and a workflow configuration ID. Highnote creates a new application (a "reevaluation edition") and begins processing the specified workflow. -
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.
-
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
APPROVEDstatus. You can initiate a new reevaluation.
Application status values
| Status | Description |
|---|---|
PENDING | The reevaluation application has been created and the workflow is in progress. |
APPROVED | The reevaluation has been approved and the application is now the current edition. |
REJECTED | The reevaluation was not successfully processed. The original application remains unchanged. |
RETIRED | A 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 (
APPROVEDorREJECTED) before initiating another. - The source application must be in
APPROVEDstatus. - 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 approvedAccountHolderCardProductApplication.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" } }
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"
}
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"
}
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:
- The new application is promoted as the current application for the account holder and card product.
- All dependent objects (financial accounts, payment cards) seamlessly reference the updated application.
- Updated identity information is pushed to the Identity service.
- The previously current application transitions to
RETIREDstatus. It remains accessible through thepreviousApplicationsconnection for audit purposes.
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:
- The original application remains in
APPROVEDstatus, unchanged. - The reevaluation application is marked
REJECTED. - You can initiate a new reevaluation for the same application.