Skip to main content

Fees

Overview​

The Highnote platform supports the ability to charge fees for your card product. Fees can serve as an additional revenue stream for your card program.

This guide provides an overview of fee schedules, fee activity types, and steps for viewing and managing fees for your card product.

info

The Highnote team and partner bank must review and approve any fees you wish to charge, as well as your Cardholder Agreements and Disclosures. Once your fees are approved, Highnote configures the fees for your card product and creates a fee schedule.

Fee schedules and activities​

Fee schedules represent all the fees for your card product and are configured by the Highnote team.

  • Individual fees within a fee schedule are referred to as fee activity types.
  • Fee activity types are triggered by a fee charge activity.

When a transaction or event matches a fee charge activity, a fee schedule is activated and a fee is applied to the account holder's financial account.

For an overview of fee activity types and charge activities, see the Fee schedules support guide. For physical card fee trigger conditions specifically, see Physical card fees below.

Simulate create fee schedule​

test with dummy data

Do not enter production data in the Highnote Test environment, which is for exploring features and training. Use only dummy or test data.

The Highnote team will configure and activate fee schedules in your Live environment, but you can simulate creating fee Schedules in your Test environment using the following query:

simulateCreateAndActivateFeeSchedule​
Query
mutation simulateCreateAndActivateFeeSchedule(
$input: SimulateCreateAndActivateFeeScheduleInput!
) {
simulateCreateAndActivateFeeSchedule(input: $input) {
__typename
... on UserError {
errors {
errorPath
code
description
}
}
... on FeeSchedule {
__typename
id
feeScheduleAssociatedTo {
__typename
... on CardProduct {
id
}
}
feeConfigurations {
id
feeActivityType
feeChargeRules {
id
name
order
value {
__typename
... on FixedFeeChargeValue {
amount {
value
currencyCode
}
}
... on VariableFeeChargeValue {
basisPoints
}
}
conditions {
__typename
... on FeeChargeRuleAmountCondition {
id
description
condition {
__typename
... on AmountFeeCondition {
value {
__typename
... on AmountFeeConditionValue {
amount {
value
currencyCode
}
maximumAmount {
value
currencyCode
}
}
}
operator
}
}
aggregatedAt
aggregationDuration
createdAt
updatedAt
}
... on FeeChargeRuleCountCondition {
id
description
condition {
__typename
... on CountFeeCondition {
value {
__typename
... on CountFeeConditionValue {
count
}
}
operator
}
}
aggregatedAt
aggregationDuration
createdAt
updatedAt
}
... on FeeChargeRuleAmountCondition {
id
description
condition {
__typename
... on AmountFeeCondition {
value {
__typename
... on AmountFeeConditionValue {
amount {
value
currencyCode
}
}
}
operator
}
}
aggregatedAt
aggregationDuration
createdAt
updatedAt
}
}
createdAt
updatedAt
}
createdAt
updatedAt
}
activationDate
status
createdAt
updatedAt
}
}
}
Variables
{
  "input": {
    "cardProductId": "<CARD_PRODUCT_ID>",
    "feeConfigurations": [
      {
        "feeActivityType": "ATM_BALANCE_INQUIRY_OUT_OF_NETWORK_FEE",
        "feeAmount": {
          "feeAmount": {
            "value": 100,
            "currencyCode": "USD"
          }
        }
      },
      {
        "feeActivityType": "ATM_DECLINE_FEE",
        "feeAmount": {
          "feeAmount": {
            "value": 100,
            "currencyCode": "USD"
          }
        }
      },
      {
        "feeActivityType": "MONTHLY_ACCOUNT_ANNIVERSARY_FEE",
        "feeAmount": {
          "feeAmount": {
            "value": 500,
            "currencyCode": "USD"
          }
        }
      },
      {
        "feeActivityType": "PHYSICAL_CARD_REISSUE_FEE",
        "feeAmount": {
          "feeAmount": {
            "value": 500,
            "currencyCode": "USD"
          }
        }
      },
      {
        "feeActivityType": "VIRTUAL_CARD_REISSUE_FEE",
        "feeAmount": {
          "feeAmount": {
            "value": 500,
            "currencyCode": "USD"
          }
        }
      }
    ]
  }
}
⚠️ Please login to execute queries. Visit the dashboard to authenticate.
Result
{
"data": {
"simulateCreateAndActivateFeeSchedule": {
"__typename": "FeeSchedule",
"id": "<FEE_SCHEDULE_ID>",
"feeScheduleAssociatedTo": {
"__typename": "CardProduct",
"id": "<CARD_PRODUCT_ID>"
},
"feeConfigurations": [
{
"id": "<FEE_CONFIGURATION_ID>",
"feeActivityType": "ATM_BALANCE_INQUIRY_OUT_OF_NETWORK_FEE",
"feeChargeRules": [
{
"id": "<FEE_CHARGE_RULE_ID>",
"name": "Priority_10_TRANSACTION_ATM_BALANCE_INQUIRY_OUT_OF_NETWORK_FEE",
"order": 10,
"value": {
"__typename": "FixedFeeChargeValue",
"amount": {
"value": 100,
"currencyCode": "USD"
}
},
"conditions": [
{
"__typename": "FeeChargeRuleCountCondition",
"id": "ID",
"description": "COUNT GREATER THAN OR EQUAL TO 1 CONDITION SET",
"condition": {
"__typename": "CountFeeCondition",
"value": {
"__typename": "CountFeeConditionValue",
"count": 1
},
"operator": "GREATER_THAN_OR_EQUAL"
},
"aggregatedAt": "ACCOUNT",
"aggregationDuration": "LIFETIME",
"createdAt": "2023-04-26T20:32:27.473Z",
"updatedAt": "2023-04-26T20:32:27.479Z"
}
],
"createdAt": "2023-04-26T20:32:27.569Z",
"updatedAt": "2023-04-26T20:32:27.570Z"
}
],
"createdAt": "2023-04-26T20:32:27.344Z",
"updatedAt": "2023-04-26T20:32:27.366Z"
},
{
"id": "ID",
"feeActivityType": "MONTHLY_ACCOUNT_ANNIVERSARY_FEE",
"feeChargeRules": [
{
"id": "ID",
"name": "Priority_10_ACCOUNT_SERVICING_ACCOUNT_SERVICING_FEE",
"order": 10,
"value": {
"__typename": "FixedFeeChargeValue",
"amount": {
"value": 500,
"currencyCode": "USD"
}
},
"conditions": [
{
"__typename": "FeeChargeRuleCountCondition",
"id": "ID",
"description": "COUNT GREATER THAN OR EQUAL TO 1 CONDITION SET",
"condition": {
"__typename": "CountFeeCondition",
"value": {
"__typename": "CountFeeConditionValue",
"count": 1
},
"operator": "GREATER_THAN_OR_EQUAL"
},
"aggregatedAt": "ACCOUNT",
"aggregationDuration": "LIFETIME",
"createdAt": "2023-04-26T20:32:27.822Z",
"updatedAt": "2023-04-26T20:32:27.822Z"
}
],
"createdAt": "2023-04-26T20:32:27.824Z",
"updatedAt": "2023-04-26T20:32:27.824Z"
}
],
"createdAt": "2023-04-26T20:32:27.818Z",
"updatedAt": "2023-04-26T20:32:27.819Z"
},
{
"id": "ID",
"feeActivityType": "ATM_DECLINE_FEE",
"feeChargeRules": [
{
"id": "ID",
"name": "Priority_10_TRANSACTION_ATM_DECLINE_FEE",
"order": 10,
"value": {
"__typename": "FixedFeeChargeValue",
"amount": {
"value": 100,
"currencyCode": "USD"
}
},
"conditions": [
{
"__typename": "FeeChargeRuleCountCondition",
"id": "ID",
"description": "COUNT GREATER THAN OR EQUAL TO 1 CONDITION SET",
"condition": {
"__typename": "CountFeeCondition",
"value": {
"__typename": "CountFeeConditionValue",
"count": 1
},
"operator": "GREATER_THAN_OR_EQUAL"
},
"aggregatedAt": "ACCOUNT",
"aggregationDuration": "LIFETIME",
"createdAt": "2023-04-26T20:32:27.700Z",
"updatedAt": "2023-04-26T20:32:27.700Z"
}
],
"createdAt": "2023-04-26T20:32:27.702Z",
"updatedAt": "2023-04-26T20:32:27.702Z"
}
],
"createdAt": "2023-04-26T20:32:27.697Z",
"updatedAt": "2023-04-26T20:32:27.697Z"
},
{
"id": "ID",
"feeActivityType": "PHYSICAL_CARD_REISSUE_FEE",
"feeChargeRules": [
{
"id": "ID",
"name": "Priority_10_FULFILLMENT_PHYSICAL_CARD_REISSUE_FEE",
"order": 10,
"value": {
"__typename": "FixedFeeChargeValue",
"amount": {
"value": 500,
"currencyCode": "USD"
}
},
"conditions": [
{
"__typename": "FeeChargeRuleCountCondition",
"id": "ID",
"description": "COUNT GREATER THAN OR EQUAL TO 1 CONDITION SET",
"condition": {
"__typename": "CountFeeCondition",
"value": {
"__typename": "CountFeeConditionValue",
"count": 1
},
"operator": "GREATER_THAN_OR_EQUAL"
},
"aggregatedAt": "ACCOUNT",
"aggregationDuration": "LIFETIME",
"createdAt": "2023-04-26T20:32:27.995Z",
"updatedAt": "2023-04-26T20:32:27.996Z"
}
],
"createdAt": "2023-04-26T20:32:27.997Z",
"updatedAt": "2023-04-26T20:32:27.997Z"
}
],
"createdAt": "2023-04-26T20:32:27.992Z",
"updatedAt": "2023-04-26T20:32:27.993Z"
},
{
"id": "ID",
"feeActivityType": "VIRTUAL_CARD_REISSUE_FEE",
"feeChargeRules": [
{
"id": "ID",
"name": "Priority_10_ISSUANCE_VIRTUAL_CARD_REISSUE_FEE",
"order": 10,
"value": {
"__typename": "FixedFeeChargeValue",
"amount": {
"value": 500,
"currencyCode": "USD"
}
},
"conditions": [
{
"__typename": "FeeChargeRuleCountCondition",
"id": "ID",
"description": "COUNT GREATER THAN OR EQUAL TO 1 CONDITION SET",
"condition": {
"__typename": "CountFeeCondition",
"value": {
"__typename": "CountFeeConditionValue",
"count": 1
},
"operator": "GREATER_THAN_OR_EQUAL"
},
"aggregatedAt": "ACCOUNT",
"aggregationDuration": "LIFETIME",
"createdAt": "2023-04-26T20:32:28.118Z",
"updatedAt": "2023-04-26T20:32:28.118Z"
}
],
"createdAt": "2023-04-26T20:32:28.119Z",
"updatedAt": "2023-04-26T20:32:28.119Z"
}
],
"createdAt": "2023-04-26T20:32:28.116Z",
"updatedAt": "2023-04-26T20:32:28.116Z"
}
],
"activationDate": "2023-04-26T20:32:23.690Z",
"status": "ACTIVE",
"createdAt": "2023-04-26T20:32:25.071Z",
"updatedAt": "2023-04-26T20:32:28.429Z"
}
},
"extensions": {
"requestId": "<REQUEST_ID>"
}
}
fee schedules cannot be edited, deleted, or deactivated

Once a fee schedule is created and activated, there is no mutation to edit, delete, or deactivate it, in either the Test or Live environment.

Calling simulateCreateAndActivateFeeSchedule again for the same card product does not replace or supersede the existing schedule. Both schedules remain active, and this causes a fee-evaluation error on the next fee-triggering event for that card product.

If you need to change a fee schedule's configuration, contact your Highnote representative.

International and foreign exchange fees​

You can include two fee activity types for international transactions in a simulated fee schedule:

  • INTERNATIONAL_TRANSACTION_FEE: Charged when a clearing transaction event is processed with a merchant located outside the U.S.
  • FOREIGN_EXCHANGE_FEE: Charged when a clearing transaction event is processed with a merchant located outside the U.S. and currency exchange is required.

The foreign exchange fee applies only to international transactions that also require currency exchange. When both fees are configured in a schedule, a transaction that requires currency exchange is charged both fees.

currency exchange required

When currency exchange is required, the exchange rate is set by the card network (Visa or Mastercard), not Highnote. The rate is reflected in the cardholder billing amount on the clearing transaction event.

The following example creates a schedule with both fees, each configured as a percentage in basis points—an international transaction fee of 200 basis points (2%) and a foreign exchange fee of 300 basis points (3%).

simulateCreateAndActivateFeeSchedule - Foreign Exchange​
Query
mutation simulateCreateAndActivateFeeSchedule(
$input: SimulateCreateAndActivateFeeScheduleInput!
) {
simulateCreateAndActivateFeeSchedule(input: $input) {
__typename
... on UserError {
errors {
errorPath
code
description
}
}
... on FeeSchedule {
__typename
id
feeScheduleAssociatedTo {
__typename
... on CardProduct {
id
}
}
feeConfigurations {
id
feeActivityType
feeChargeRules {
id
name
order
value {
__typename
... on FixedFeeChargeValue {
amount {
value
currencyCode
}
}
... on VariableFeeChargeValue {
basisPoints
}
}
conditions {
__typename
... on FeeChargeRuleAmountCondition {
id
description
condition {
__typename
... on AmountFeeCondition {
value {
__typename
... on AmountFeeConditionValue {
amount {
value
currencyCode
}
maximumAmount {
value
currencyCode
}
}
}
operator
}
}
aggregatedAt
aggregationDuration
createdAt
updatedAt
}
... on FeeChargeRuleCountCondition {
id
description
condition {
__typename
... on CountFeeCondition {
value {
__typename
... on CountFeeConditionValue {
count
}
}
operator
}
}
aggregatedAt
aggregationDuration
createdAt
updatedAt
}
... on FeeChargeRuleAmountCondition {
id
description
condition {
__typename
... on AmountFeeCondition {
value {
__typename
... on AmountFeeConditionValue {
amount {
value
currencyCode
}
}
}
operator
}
}
aggregatedAt
aggregationDuration
createdAt
updatedAt
}
}
createdAt
updatedAt
}
createdAt
updatedAt
}
activationDate
status
createdAt
updatedAt
}
}
}
Variables
{
  "input": {
    "cardProductId": "<CARD_PRODUCT_ID>",
    "feeConfigurations": [
      {
        "feeActivityType": "INTERNATIONAL_TRANSACTION_FEE",
        "feeAmount": {
          "feeBasisPoints": 200
        }
      },
      {
        "feeActivityType": "FOREIGN_EXCHANGE_FEE",
        "feeAmount": {
          "feeBasisPoints": 300
        }
      }
    ]
  }
}
⚠️ Please login to execute queries. Visit the dashboard to authenticate.
Result
{
"data": {
"simulateCreateAndActivateFeeSchedule": {
"__typename": "FeeSchedule",
"id": "<FEE_SCHEDULE_ID>",
"feeScheduleAssociatedTo": {
"__typename": "CardProduct",
"id": "<CARD_PRODUCT_ID>"
},
"feeConfigurations": [
{
"id": "<FEE_CONFIGURATION_ID>",
"feeActivityType": "INTERNATIONAL_TRANSACTION_FEE",
"feeChargeRules": [
{
"id": "<FEE_CHARGE_RULE_ID>",
"name": "Priority_10_TRANSACTION_INTERNATIONAL_TRANSACTION_FEE",
"order": 10,
"value": {
"__typename": "VariableFeeChargeValue",
"basisPoints": 200
},
"conditions": [
{
"__typename": "FeeChargeRuleCountCondition",
"id": "<FEE_CHARGE_RULE_COUNT_CONDITION_ID>",
"description": "COUNT GREATER THAN OR EQUAL TO 1 CONDITION SET",
"condition": {
"__typename": "CountFeeCondition",
"value": {
"__typename": "CountFeeConditionValue",
"count": 1
},
"operator": "GREATER_THAN_OR_EQUAL"
},
"aggregatedAt": "ACCOUNT",
"aggregationDuration": "LIFETIME",
"createdAt": "2023-04-26T20:32:27.473Z",
"updatedAt": "2023-04-26T20:32:27.479Z"
}
],
"createdAt": "2023-04-26T20:32:27.569Z",
"updatedAt": "2023-04-26T20:32:27.570Z"
}
],
"createdAt": "2023-04-26T20:32:27.344Z",
"updatedAt": "2023-04-26T20:32:27.366Z"
},
{
"id": "<FEE_CONFIGURATION_ID>",
"feeActivityType": "FOREIGN_EXCHANGE_FEE",
"feeChargeRules": [
{
"id": "<FEE_CHARGE_RULE_ID>",
"name": "Priority_10_TRANSACTION_FOREIGN_EXCHANGE_FEE",
"order": 10,
"value": {
"__typename": "VariableFeeChargeValue",
"basisPoints": 300
},
"conditions": [
{
"__typename": "FeeChargeRuleCountCondition",
"id": "<FEE_CHARGE_RULE_COUNT_CONDITION_ID>",
"description": "COUNT GREATER THAN OR EQUAL TO 1 CONDITION SET",
"condition": {
"__typename": "CountFeeCondition",
"value": {
"__typename": "CountFeeConditionValue",
"count": 1
},
"operator": "GREATER_THAN_OR_EQUAL"
},
"aggregatedAt": "ACCOUNT",
"aggregationDuration": "LIFETIME",
"createdAt": "2023-04-26T20:32:27.473Z",
"updatedAt": "2023-04-26T20:32:27.479Z"
}
],
"createdAt": "2023-04-26T20:32:27.569Z",
"updatedAt": "2023-04-26T20:32:27.570Z"
}
],
"createdAt": "2023-04-26T20:32:27.344Z",
"updatedAt": "2023-04-26T20:32:27.366Z"
}
],
"activationDate": "2023-04-26T20:32:23.690Z",
"status": "ACTIVE",
"createdAt": "2023-04-26T20:32:25.071Z",
"updatedAt": "2023-04-26T20:32:28.429Z"
}
},
"extensions": {
"requestId": "<REQUEST_ID>"
}
}

Physical card fees​

Two fee activity types apply to physical card orders: PHYSICAL_CARD_REISSUE_FEE and EXPEDITED_PHYSICAL_CARD_FEE. Their trigger conditions are independent, and both fees can apply to the same order.

PHYSICAL_CARD_REISSUE_FEE is charged when a physical card is reissued with a new PAN. A same-PAN card renewal does not trigger this fee. Shipping method, and whether the order was placed individually or as part of a group card order, do not affect this fee.

EXPEDITED_PHYSICAL_CARD_FEE is charged when a physical card order ships via an expedited shipping method and is placed as an individual order rather than part of a group card order. This applies to first-time card orders as well as reissues—reissue status does not affect this fee.

group card orders

EXPEDITED_PHYSICAL_CARD_FEE, charged to the account holder's financial account, never applies to cards ordered as part of a group card order, even when an expedited shipping method is used. Expedited-processing costs billed to you under your Master Services Agreement are a separate program cost and may still apply for group orders—see Print Physical Cards.

If a card order is a reissue, ships via an expedited method, and is placed individually, both fees are charged together.

The following PaymentCardShippingMethod values, and only these, count as expedited: UPS_NEXT_DAY, FEDEX_OVERNIGHT, FEDEX_PRIORITY_OVERNIGHT, SAME_DAY_USPS_GROUND, SAME_DAY_USPS_PRIORITY, SAME_DAY_UPS_GROUND, SAME_DAY_UPS_SECOND_DAY, SAME_DAY_UPS_NEXT_DAY, SAME_DAY_FEDEX_GROUND, SAME_DAY_FEDEX_1_DAY—the SAME_DAY_* values speed up card processing, and the rest are next-day-or-faster shipping couriers. Notably, USPS_EXPRESS (1-2 business days) does not qualify despite its name. UPS availability depends on your card vendor; contact Highnote support if you don't see it as a shipping option.

View fee schedule​

displaying and disclosing

In addition to displaying fees, you must display the appropriate Cardholder Agreements and Disclosures for your account holders.

Once a fee schedule is configured for your card product, you can query the configuration to display on your website or application for your account holders.

Each fee schedule has an active date and a status to determine if the schedule is active. The following query can be used to view a fee schedule:

FindFeeSchedule​
Query
query FindFeeSchedule($id: ID!) {
node(id: $id) {
... on FeeSchedule {
__typename
id
feeScheduleAssociatedTo {
__typename
... on CardProduct {
id
}
}
feeConfigurations {
id
feeActivityType
feeChargeRules {
id
name
order
value {
__typename
... on FixedFeeChargeValue {
amount {
value
currencyCode
}
}
... on VariableFeeChargeValue {
basisPoints
}
}
conditions {
__typename
... on FeeChargeRuleAmountCondition {
id
description
condition {
__typename
... on AmountFeeCondition {
value {
__typename
... on AmountFeeConditionValue {
amount {
value
currencyCode
}
maximumAmount {
value
currencyCode
}
}
}
operator
}
}
aggregatedAt
aggregationDuration
createdAt
updatedAt
}
... on FeeChargeRuleCountCondition {
id
description
condition {
__typename
... on CountFeeCondition {
value {
__typename
... on CountFeeConditionValue {
count
}
}
operator
}
}
aggregatedAt
aggregationDuration
createdAt
updatedAt
}
... on FeeChargeRuleAmountCondition {
id
description
condition {
__typename
... on AmountFeeCondition {
value {
__typename
... on AmountFeeConditionValue {
amount {
value
currencyCode
}
}
}
operator
}
}
aggregatedAt
aggregationDuration
createdAt
updatedAt
}
}
createdAt
updatedAt
}
createdAt
updatedAt
}
activationDate
status
createdAt
updatedAt
}
}
}
Variables
{
"id": "<FEE_SCHEDULE_ID>"
}
⚠️ Please login to execute queries. Visit the dashboard to authenticate.
Result
{
"data": {
"node": {
"__typename": "FeeSchedule",
"id": "<FEE_SCHEDULE_ID>",
"feeScheduleAssociatedTo": {
"__typename": "CardProduct",
"id": "<CARD_PRODUCT_ID>"
},
"feeConfigurations": [
{
"id": "<FEE_CONFIGURATION_ID>",
"feeActivityType": "VIRTUAL_CARD_REISSUE_FEE",
"feeChargeRules": [
{
"id": "<FEE_CHARGE_RULE_ID>",
"name": "Priority_10_ISSUANCE_VIRTUAL_CARD_REISSUE_FEE",
"order": 10,
"value": {
"__typename": "FixedFeeChargeValue",
"amount": {
"value": 500,
"currencyCode": "USD"
}
},
"conditions": [
{
"__typename": "FeeChargeRuleCountCondition",
"id": "<FEE_CHARGE_RULE_COUNT_CONDITION_ID>",
"description": "COUNT GREATER THAN OR EQUAL TO 1 CONDITION SET",
"condition": {
"__typename": "CountFeeCondition",
"value": {
"__typename": "CountFeeConditionValue",
"count": 1
},
"operator": "GREATER_THAN_OR_EQUAL"
},
"aggregatedAt": "ACCOUNT",
"aggregationDuration": "LIFETIME",
"createdAt": "2023-04-26T20:42:10.839Z",
"updatedAt": "2023-04-26T20:42:10.839Z"
}
],
"createdAt": "2023-04-26T20:42:10.840Z",
"updatedAt": "2023-04-26T20:42:10.840Z"
}
],
"createdAt": "2023-04-26T20:42:10.837Z",
"updatedAt": "2023-04-26T20:42:10.838Z"
},
{
"id": "<FEE_CONFIGURATION_ID>",
"feeActivityType": "ATM_BALANCE_INQUIRY_OUT_OF_NETWORK_FEE",
"feeChargeRules": [
{
"id": "<FEE_CHARGE_RULE_ID>",
"name": "Priority_10_TRANSACTION_ATM_BALANCE_INQUIRY_OUT_OF_NETWORK_FEE",
"order": 10,
"value": {
"__typename": "FixedFeeChargeValue",
"amount": {
"value": 100,
"currencyCode": "USD"
}
},
"conditions": [
{
"__typename": "FeeChargeRuleCountCondition",
"id": "<FEE_CHARGE_RULE_COUNT_CONDITION_ID>",
"description": "COUNT GREATER THAN OR EQUAL TO 1 CONDITION SET",
"condition": {
"__typename": "CountFeeCondition",
"value": {
"__typename": "CountFeeConditionValue",
"count": 1
},
"operator": "GREATER_THAN_OR_EQUAL"
},
"aggregatedAt": "ACCOUNT",
"aggregationDuration": "LIFETIME",
"createdAt": "2023-04-26T20:42:10.311Z",
"updatedAt": "2023-04-26T20:42:10.318Z"
}
],
"createdAt": "2023-04-26T20:42:10.393Z",
"updatedAt": "2023-04-26T20:42:10.394Z"
}
],
"createdAt": "2023-04-26T20:42:10.203Z",
"updatedAt": "2023-04-26T20:42:10.217Z"
},
{
"id": "<FEE_CONFIGURATION_ID>",
"feeActivityType": "ATM_DECLINE_FEE",
"feeChargeRules": [
{
"id": "<FEE_CHARGE_RULE_ID>",
"name": "Priority_10_TRANSACTION_ATM_DECLINE_FEE",
"order": 10,
"value": {
"__typename": "FixedFeeChargeValue",
"amount": {
"value": 100,
"currencyCode": "USD"
}
},
"conditions": [
{
"__typename": "FeeChargeRuleCountCondition",
"id": "<FEE_CHARGE_RULE_COUNT_CONDITION_ID>",
"description": "COUNT GREATER THAN OR EQUAL TO 1 CONDITION SET",
"condition": {
"__typename": "CountFeeCondition",
"value": {
"__typename": "CountFeeConditionValue",
"count": 1
},
"operator": "GREATER_THAN_OR_EQUAL"
},
"aggregatedAt": "ACCOUNT",
"aggregationDuration": "LIFETIME",
"createdAt": "2023-04-26T20:42:10.571Z",
"updatedAt": "2023-04-26T20:42:10.571Z"
}
],
"createdAt": "2023-04-26T20:42:10.573Z",
"updatedAt": "2023-04-26T20:42:10.573Z"
}
],
"createdAt": "2023-04-26T20:42:10.567Z",
"updatedAt": "2023-04-26T20:42:10.567Z"
},
{
"id": "<FEE_CONFIGURATION_ID>",
"feeActivityType": "MONTHLY_ACCOUNT_ANNIVERSARY_FEE",
"feeChargeRules": [
{
"id": "<FEE_CHARGE_RULE_ID>",
"name": "Priority_10_ACCOUNT_SERVICING_ACCOUNT_SERVICING_FEE",
"order": 10,
"value": {
"__typename": "FixedFeeChargeValue",
"amount": {
"value": 500,
"currencyCode": "USD"
}
},
"conditions": [
{
"__typename": "FeeChargeRuleCountCondition",
"id": "<FEE_CHARGE_RULE_COUNT_CONDITION_ID>",
"description": "COUNT GREATER THAN OR EQUAL TO 1 CONDITION SET",
"condition": {
"__typename": "CountFeeCondition",
"value": {
"__typename": "CountFeeConditionValue",
"count": 1
},
"operator": "GREATER_THAN_OR_EQUAL"
},
"aggregatedAt": "ACCOUNT",
"aggregationDuration": "LIFETIME",
"createdAt": "2023-04-26T20:42:10.732Z",
"updatedAt": "2023-04-26T20:42:10.732Z"
}
],
"createdAt": "2023-04-26T20:42:10.733Z",
"updatedAt": "2023-04-26T20:42:10.733Z"
}
],
"createdAt": "2023-04-26T20:42:10.729Z",
"updatedAt": "2023-04-26T20:42:10.730Z"
},
{
"id": "<FEE_CONFIGURATION_ID>",
"feeActivityType": "PHYSICAL_CARD_REISSUE_FEE",
"feeChargeRules": [
{
"id": "<FEE_CHARGE_RULE_ID>",
"name": "Priority_10_FULFILLMENT_PHYSICAL_CARD_REISSUE_FEE",
"order": 10,
"value": {
"__typename": "FixedFeeChargeValue",
"amount": {
"value": 500,
"currencyCode": "USD"
}
},
"conditions": [
{
"__typename": "FeeChargeRuleCountCondition",
"id": "<FEE_CHARGE_RULE_COUNT_CONDITION_ID>",
"description": "COUNT GREATER THAN OR EQUAL TO 1 CONDITION SET",
"condition": {
"__typename": "CountFeeCondition",
"value": {
"__typename": "CountFeeConditionValue",
"count": 1
},
"operator": "GREATER_THAN_OR_EQUAL"
},
"aggregatedAt": "ACCOUNT",
"aggregationDuration": "LIFETIME",
"createdAt": "2023-04-26T20:42:10.785Z",
"updatedAt": "2023-04-26T20:42:10.786Z"
}
],
"createdAt": "2023-04-26T20:42:10.787Z",
"updatedAt": "2023-04-26T20:42:10.788Z"
}
],
"createdAt": "2023-04-26T20:42:10.783Z",
"updatedAt": "2023-04-26T20:42:10.783Z"
}
],
"activationDate": "2023-04-26T20:42:06.036Z",
"status": "ACTIVE",
"createdAt": "2023-04-26T20:42:07.508Z",
"updatedAt": "2023-04-26T20:42:11.081Z"
}
},
"extensions": {
"requestId": "<REQUEST_ID>"
}
}

Test your fee schedule​

note

In the Test environment, you cannot simulate fees for ATM withdrawals, ATM balance inquiries, international transactions, and monthly fees.

Once the Highnote team configures fees, you can test the configuration to ensure the fees are assigned properly to your users. Testing your fee schedule consists of the following:

  • View fees on financial account activity
  • View fee collection activity
  • Query for fee balances
  • Search for collected fees

View financial account activity​

Fees associated with transaction events are stored as financial account activities.

Note the following when querying for financial account activities:

  • For financial accounts with no activities: The Highnote API returns four specific ledgers: CASH, AVAILABLE_CASH, CREDIT_OUTSTANDING, and AVAILABLE_CREDIT.
  • For financial accounts with activities: The Highnote API only returns ledgers that have at least one activity on them.

Use the following query to view financial account activity. Fees are listed in the results payload:

FindFinancialAccount​
Query
query FindFinancialAccount($id: ID!) {
node(id: $id) {
__typename
... on FinancialAccount {
id
feeTransferEvents(first: 10) {
__typename
pageInfo {
hasNextPage
hasPreviousPage
startCursor
endCursor
}
edges {
cursor
node {
__typename
id
feeTransfer {
__typename
... on ChargedFeeTransfer {
originatingAccount {
id
}
receivingAccount {
id
}
cardProduct {
id
}
feeActivityType
feeAmount {
value
currencyCode
}
transferedFeeAmount {
value
currencyCode
}
transferDate
status {
... on NonFailureFeeTransferStatus {
status
}
... on FailureFeeTransferStatus {
status
reasonDetails {
type
reason
}
}
}
feeChargeRule {
__typename
id
name
value {
__typename
... on FixedFeeChargeValue {
amount {
value
currencyCode
}
}
... on VariableFeeChargeValue {
basisPoints
}
}
conditions {
__typename
... on FeeChargeRuleAmountCondition {
id
description
condition {
__typename
... on AmountFeeCondition {
value {
__typename
... on AmountFeeConditionValue {
amount {
value
currencyCode
}
maximumAmount {
value
currencyCode
}
}
}
operator
}
}
aggregatedAt
aggregationDuration
createdAt
updatedAt
}
... on FeeChargeRuleCountCondition {
id
description
condition {
__typename
... on CountFeeCondition {
value {
__typename
... on CountFeeConditionValue {
count
maximumCount
}
}
operator
}
}
aggregatedAt
aggregationDuration
createdAt
updatedAt
}
}
createdAt
updatedAt
}
feeChargeActvity {
__typename
... on PhysicalPaymentCardOrder {
id
}
... on PaymentCard {
id
}
... on FinancialAccount {
id
}
... on SecureDepositACHTransfer {
id
}
... on SecureCardBalanceRepaymentACHTransfer {
id
}
... on IntegratorInitiatedFundsWithdrawalACHTransfer {
id
}
... on IntegratorInitiatedFundsDepositACHTransfer {
id
}
... on AuthorizationAndClearEvent {
id
}
... on ClearingEvent {
id
}
... on BalanceInquiryEvent {
id
}
}
}
... on ReversedFeeTransfer {
originatingAccount {
id
}
receivingAccount {
id
}
transferedFeeAmount {
value
currencyCode
}
transferDate
status {
... on NonFailureFeeTransferStatus {
status
}
... on FailureFeeTransferStatus {
status
reasonDetails {
type
reason
}
}
}
sourceFeeTransferEvent {
id
}
}
}
}
}
}
}
}
}
Variables
{
"id": "<FINANCIAL_ACCOUNT_ID>"
}
⚠️ Please login to execute queries. Visit the dashboard to authenticate.
Result
{
"data": {
"node": {
"__typename": "FinancialAccount",
"id": "<FINANCIAL_ACCOUNT_ID>",
"feeTransferEvents": {
"__typename": "FeeTransferEventConnection",
"pageInfo": {
"hasNextPage": false,
"hasPreviousPage": false,
"startCursor": "<START_CURSOR_ID>",
"endCursor": "<END_CURSOR_ID>"
},
"edges": [
{
"cursor": "<START_CURSOR_ID>",
"node": {
"__typename": "FeeTransferEvent",
"id": "<FEE_TRANSFER_ID>",
"feeTransfer": {
"__typename": "ChargedFeeTransfer",
"originatingAccount": {
"id": "<FINANCIAL_ACCOUNT_ID>"
},
"receivingAccount": {
"id": "<FINANCIAL_ACCOUNT_ID>"
},
"cardProduct": {
"id": "<CARD_PRODUCT_ID>"
},
"feeActivityType": "ATM_DECLINE_FEE",
"feeAmount": {
"value": 20,
"currencyCode": "USD"
},
"transferedFeeAmount": {
"value": 20,
"currencyCode": "USD"
},
"transferDate": "2023-05-03T01:52:56.563Z",
"status": {
"status": "COMPLETE"
},
"feeChargeRule": {
"__typename": "FeeChargeRule",
"id": "<FEE_CHARGE_RULE_ID>",
"name": "ATM Decline Fee",
"value": {
"__typename": "VariableFeeChargeValue",
"basisPoints": 100
},
"conditions": [
{
"__typename": "FeeChargeRuleCountCondition",
"id": "<FEE_CHARGE_RULE_COUNT_CONDITION_ID>",
"description": "COUNT GREATER THAN OR EQUAL TO 1 CONDITION SET",
"condition": {
"__typename": "CountFeeCondition",
"value": {
"__typename": "CountFeeConditionValue",
"count": 1,
"maximumCount": null
},
"operator": "GREATER_THAN_OR_EQUAL"
},
"aggregatedAt": "ACCOUNT",
"aggregationDuration": "LIFETIME",
"createdAt": "2023-05-03T01:33:29.831Z",
"updatedAt": "2023-05-03T01:33:29.831Z"
}
],
"createdAt": "2023-05-03T01:33:29.832Z",
"updatedAt": "2023-05-03T01:33:29.832Z"
},
"feeChargeActvity": {
"__typename": "AuthorizationAndClearEvent",
"id": "<TRANSACTION_EVENT_ID>"
}
}
}
},
{
"cursor": "<CURSOR_ID>",
"node": {
"__typename": "FeeTransferEvent",
"id": "<FEE_TRANSFER_ID>",
"feeTransfer": {
"__typename": "ChargedFeeTransfer",
"originatingAccount": {
"id": "<FINANCIAL_ACCOUNT_ID>"
},
"receivingAccount": {
"id": "<FINANCIAL_ACCOUNT_ID>"
},
"cardProduct": {
"id": "<CARD_PRODUCT_ID>"
},
"feeActivityType": "ATM_DECLINE_FEE",
"feeAmount": {
"value": 50,
"currencyCode": "USD"
},
"transferedFeeAmount": {
"value": 50,
"currencyCode": "USD"
},
"transferDate": "2023-05-03T01:53:01.046Z",
"status": {
"status": "COMPLETE"
},
"feeChargeRule": {
"__typename": "FeeChargeRule",
"id": "<FEE_CHARGE_RULE_ID>",
"name": "ATM Decline Fee",
"value": {
"__typename": "VariableFeeChargeValue",
"basisPoints": 100
},
"conditions": [
{
"__typename": "FeeChargeRuleCountCondition",
"id": "<FEE_CHARGE_RULE_COUNT_CONDITION_ID>",
"description": "COUNT GREATER THAN OR EQUAL TO 1 CONDITION SET",
"condition": {
"__typename": "CountFeeCondition",
"value": {
"__typename": "CountFeeConditionValue",
"count": 1,
"maximumCount": null
},
"operator": "GREATER_THAN_OR_EQUAL"
},
"aggregatedAt": "ACCOUNT",
"aggregationDuration": "LIFETIME",
"createdAt": "2023-05-03T01:33:29.831Z",
"updatedAt": "2023-05-03T01:33:29.831Z"
}
],
"createdAt": "2023-05-03T01:33:29.832Z",
"updatedAt": "2023-05-03T01:33:29.832Z"
},
"feeChargeActvity": {
"__typename": "AuthorizationAndClearEvent",
"id": "<TRANSACTION_EVENT_ID>"
}
}
}
},
{
"cursor": "<CURSOR_ID>",
"node": {
"__typename": "FeeTransferEvent",
"id": "<FEE_TRANSFER_ID>",
"feeTransfer": {
"__typename": "ChargedFeeTransfer",
"originatingAccount": {
"id": "<FINANCIAL_ACCOUNT_ID>"
},
"receivingAccount": {
"id": "<FINANCIAL_ACCOUNT_ID>"
},
"cardProduct": {
"id": "<CARD_PRODUCT_ID>"
},
"feeActivityType": "EXPEDITED_PHYSICAL_CARD_FEE",
"feeAmount": {
"value": 2000,
"currencyCode": "USD"
},
"transferedFeeAmount": {
"value": 2000,
"currencyCode": "USD"
},
"transferDate": "2023-05-03T01:51:56.598Z",
"status": {
"status": "COMPLETE"
},
"feeChargeRule": {
"__typename": "FeeChargeRule",
"id": "<FEE_CHARGE_RULE_ID>",
"name": "Expedited Physical Card Fee",
"value": {
"__typename": "FixedFeeChargeValue",
"amount": {
"value": 2000,
"currencyCode": "USD"
}
},
"conditions": [
{
"__typename": "FeeChargeRuleCountCondition",
"id": "<FEE_CHARGE_RULE_COUNT_CONDITION_ID>",
"description": "COUNT GREATER THAN OR EQUAL TO 1 CONDITION SET",
"condition": {
"__typename": "CountFeeCondition",
"value": {
"__typename": "CountFeeConditionValue",
"count": 1,
"maximumCount": null
},
"operator": "GREATER_THAN_OR_EQUAL"
},
"aggregatedAt": "ACCOUNT",
"aggregationDuration": "LIFETIME",
"createdAt": "2023-05-03T01:33:29.943Z",
"updatedAt": "2023-05-03T01:33:29.943Z"
}
],
"createdAt": "2023-05-03T01:33:29.944Z",
"updatedAt": "2023-05-03T01:33:29.944Z"
},
"feeChargeActvity": {
"__typename": "PhysicalPaymentCardOrder",
"id": "<PHYSICAL_CARD_ORDER_ID>"
}
}
}
}
]
}
}
},
"extensions": {
"requestId": "<REQUEST_ID>"
}
}

Query card product income balance​

Fees are collected from an account holder's financial account immediately and transferred to an Income Account for each card product. You view the balance of fees collected for your card product by querying the ledgers associated with your card product income account. Use the following query to query the balance on an income account:

GetCardProductWithLedgers​
Query
query GetCardProductWithLedgers(
$cardProductId: ID!
$firstLedgerEntries: Int
$ledgerEntriesAfterCursor: String
$filterBy: AccountHolderFinancialAccountsFilterInput
) {
node(id: $cardProductId) {
... on CardProduct {
__typename
id
name
accounts(first: 20, filterBy: $filterBy) {
pageInfo {
endCursor
hasNextPage
startCursor
hasPreviousPage
__typename
}
edges {
cursor
node {
createdAt
id
name
updatedAt
features {
__typename
enabled
createdAt
updatedAt
}
ledgers {
id
normalBalance
asOf
name
creditBalance {
value
currencyCode
__typename
}
debitBalance {
value
currencyCode
__typename
}
ledgerEntries(
first: $firstLedgerEntries
after: $ledgerEntriesAfterCursor
) {
__typename
pageInfo {
hasNextPage
hasPreviousPage
startCursor
endCursor
__typename
}
edges {
__typename
cursor
node {
id
__typename
}
}
}
__typename
}
__typename
}
__typename
}
__typename
}
}
__typename
}
}
Variables
{
"cardProductId": "<CARD_PRODUCT_ID>",
"filterBy": {
"features": {
"equals": "INCOME_ACCOUNT"
}
}
}
⚠️ Please login to execute queries. Visit the dashboard to authenticate.
Result
{
"data": {
"node": {
"__typename": "CardProduct",
"id": "<CARD_PRODUCT_ID>",
"name": "Consumer Prepaid",
"accounts": {
"pageInfo": {
"endCursor": "<END_CURSOR_ID>",
"hasNextPage": false,
"startCursor": "<START_CURSOR_ID>",
"hasPreviousPage": false,
"__typename": "PageInfo"
},
"edges": [
{
"cursor": "<CURSOR_ID>",
"node": {
"createdAt": "2023-02-02T22:12:32.850Z",
"id": "<FINANCIAL_ACCOUNT_ID>",
"name": "Consumer Prepaid - Income",
"updatedAt": "2023-02-02T22:12:32.850Z",
"features": [
{
"__typename": "IncomeAccountFinancialAccountFeature",
"enabled": true,
"createdAt": "2023-02-02T22:12:32.850Z",
"updatedAt": "2023-02-02T22:12:32.850Z"
}
],
"ledgers": [
{
"id": "<FINANCIAL_ACCOUNT_LEDGER_ID>",
"normalBalance": "CREDIT",
"asOf": "2023-05-03T01:53:04.775Z",
"name": "AVAILABLE_CASH",
"creditBalance": {
"value": 4070,
"currencyCode": "USD",
"__typename": "Amount"
},
"debitBalance": {
"value": 0,
"currencyCode": "USD",
"__typename": "Amount"
},
"ledgerEntries": {
"__typename": "LedgerEntryConnection",
"pageInfo": {
"hasNextPage": true,
"hasPreviousPage": false,
"startCursor": "<START_CURSOR_ID>",
"endCursor": "<END_CURSOR_ID>",
"__typename": "PageInfo"
},
"edges": [
{
"__typename": "LedgerEntryEdge",
"cursor": "<CURSOR_ID>",
"node": {
"id": "<LEDGER_ENTRY_ID>",
"__typename": "CreditLedgerEntry"
}
}
]
},
"__typename": "Ledger"
},
{
"id": "<FINANCIAL_ACCOUNT_LEDGER_ID>",
"normalBalance": "DEBIT",
"asOf": "2023-05-03T01:53:04.775Z",
"name": "CASH",
"creditBalance": {
"value": 0,
"currencyCode": "USD",
"__typename": "Amount"
},
"debitBalance": {
"value": 4070,
"currencyCode": "USD",
"__typename": "Amount"
},
"ledgerEntries": {
"__typename": "LedgerEntryConnection",
"pageInfo": {
"hasNextPage": true,
"hasPreviousPage": false,
"startCursor": "<START_CURSOR_ID>",
"endCursor": "<END_CURSOR_ID>",
"__typename": "PageInfo"
},
"edges": [
{
"__typename": "LedgerEntryEdge",
"cursor": "<CURSOR_ID>",
"node": {
"id": "<LEDGER_ENTRY_ID>",
"__typename": "DebitLedgerEntry"
}
}
]
},
"__typename": "Ledger"
},
{
"id": "<FINANCIAL_ACCOUNT_LEDGER_ID>",
"normalBalance": "CREDIT",
"asOf": "2023-05-03T02:23:37.174Z",
"name": "DEPOSIT_HOLD",
"creditBalance": {
"value": 0,
"currencyCode": "USD",
"__typename": "Amount"
},
"debitBalance": {
"value": 0,
"currencyCode": "USD",
"__typename": "Amount"
},
"ledgerEntries": null,
"__typename": "Ledger"
},
{
"id": "<FINANCIAL_ACCOUNT_LEDGER_ID>",
"normalBalance": "CREDIT",
"asOf": "2023-05-03T02:23:37.174Z",
"name": "REFUND_HOLD",
"creditBalance": {
"value": 0,
"currencyCode": "USD",
"__typename": "Amount"
},
"debitBalance": {
"value": 0,
"currencyCode": "USD",
"__typename": "Amount"
},
"ledgerEntries": null,
"__typename": "Ledger"
},
{
"id": "<FINANCIAL_ACCOUNT_LEDGER_ID>",
"normalBalance": "CREDIT",
"asOf": "2023-05-03T02:23:37.174Z",
"name": "FUND_IN_HOLD",
"creditBalance": {
"value": 0,
"currencyCode": "USD",
"__typename": "Amount"
},
"debitBalance": {
"value": 0,
"currencyCode": "USD",
"__typename": "Amount"
},
"ledgerEntries": null,
"__typename": "Ledger"
},
{
"id": "<FINANCIAL_ACCOUNT_LEDGER_ID>",
"normalBalance": "CREDIT",
"asOf": "2023-05-03T02:23:37.174Z",
"name": "DEPOSIT_AUTHORIZATION",
"creditBalance": {
"value": 0,
"currencyCode": "USD",
"__typename": "Amount"
},
"debitBalance": {
"value": 0,
"currencyCode": "USD",
"__typename": "Amount"
},
"ledgerEntries": null,
"__typename": "Ledger"
},
{
"id": "<FINANCIAL_ACCOUNT_LEDGER_ID>",
"normalBalance": "CREDIT",
"asOf": "2023-05-03T02:23:37.174Z",
"name": "REFUND_AUTHORIZATION",
"creditBalance": {
"value": 0,
"currencyCode": "USD",
"__typename": "Amount"
},
"debitBalance": {
"value": 0,
"currencyCode": "USD",
"__typename": "Amount"
},
"ledgerEntries": null,
"__typename": "Ledger"
},
{
"id": "<FINANCIAL_ACCOUNT_LEDGER_ID>",
"normalBalance": "CREDIT",
"asOf": "2023-05-03T02:23:37.174Z",
"name": "FEE_AUTHORIZATION",
"creditBalance": {
"value": 0,
"currencyCode": "USD",
"__typename": "Amount"
},
"debitBalance": {
"value": 0,
"currencyCode": "USD",
"__typename": "Amount"
},
"ledgerEntries": null,
"__typename": "Ledger"
},
{
"id": "ac_og222c975277c978475098739055c6fb772b_a004",
"normalBalance": "CREDIT",
"asOf": "2023-05-03T02:23:37.174Z",
"name": "AUTHORIZATION",
"creditBalance": {
"value": 0,
"currencyCode": "USD",
"__typename": "Amount"
},
"debitBalance": {
"value": 0,
"currencyCode": "USD",
"__typename": "Amount"
},
"ledgerEntries": null,
"__typename": "Ledger"
}
],
"__typename": "FinancialAccount"
},
"__typename": "FinancialAccountEdge"
}
],
"__typename": "FinancialAccountConnection"
}
}
},
"extensions": {
"requestId": "<REQUEST_ID>"
}
}

Search for collected fees​

You can query for a group of fees collected, and filter by account holder financial accounts. Use the following query to search for fees collected on a card product:

ListFeeTransferEvents​
Query
query ListFeeTransferEvents(
$first: Int
$after: String
$filterBy: FeeTransferEventFilterInput
) {
feeTransferEvents(first: $first, after: $after, filterBy: $filterBy) {
pageInfo {
startCursor
endCursor
hasNextPage
hasPreviousPage
}
edges {
cursor
node {
...feeTransferEvent
}
}
}
}
fragment feeTransferEvent on FeeTransferEvent {
__typename
id
feeTransfer {
__typename
... on ChargedFeeTransfer {
originatingAccount {
id
accountStatus
feeTransferEvents {
pageInfo {
hasNextPage
}
edges {
cursor
node {
id
feeTransfer {
__typename
}
}
}
}
}
receivingAccount {
id
accountStatus
}
cardProduct {
id
name
}
feeActivityType
feeAmount {
value
currencyCode
}
transferedFeeAmount {
value
currencyCode
}
transferDate
status {
__typename
... on NonFailureFeeTransferStatus {
status
}
}
feeChargeRule {
id
name
value {
__typename
... on FixedFeeChargeValue {
amount {
value
currencyCode
}
}
}
}
feeChargeActvity {
__typename
... on PhysicalPaymentCardOrder {
id
}
... on PaymentCard {
id
}
... on FinancialAccount {
id
}
... on SecureDepositACHTransfer {
id
}
... on SecureCardBalanceRepaymentACHTransfer {
id
}
... on IntegratorInitiatedFundsWithdrawalACHTransfer {
id
}
... on IntegratorInitiatedFundsDepositACHTransfer {
id
}
... on AuthorizationAndClearEvent {
id
transaction {
__typename
... on CreditTransaction {
id
}
... on DebitTransaction {
id
}
}
}
... on ClearingEvent {
id
transaction {
__typename
... on CreditTransaction {
id
}
... on DebitTransaction {
id
}
}
}
... on BalanceInquiryEvent {
id
transaction {
__typename
... on CreditTransaction {
id
}
... on DebitTransaction {
id
}
}
}
}
}
... on ReversedFeeTransfer {
originatingAccount {
id
}
receivingAccount {
id
}
transferedFeeAmount {
value
currencyCode
}
transferDate
sourceFeeTransferEvent {
__typename
id
... on FeeTransferEvent {
id
feeTransfer {
__typename
... on ChargedFeeTransfer {
originatingAccount {
id
}
feeAmount {
value
currencyCode
}
}
}
}
}
}
}
}
Variables
{
"first": 20,
"filterBy": {
"cardProductId": {
"equals": "<CARD_PRODUCT_ID>"
},
"createDate": {
"between": {
"start": "2023-05-01T00:00:00.000Z",
"end": "2023-05-31T23:59:59.999Z"
}
}
}
}
⚠️ Please login to execute queries. Visit the dashboard to authenticate.
Result
{
"data": {
"feeTransferEvents": {
"pageInfo": {
"startCursor": "<START_CURSOR_ID>",
"endCursor": "<END_CURSOR_ID>",
"hasNextPage": false,
"hasPreviousPage": false
},
"edges": [
{
"cursor": "<CURSOR_ID>",
"node": {
"__typename": "FeeTransferEvent",
"id": "<FEE_TRANSFER_ID>",
"feeTransfer": {
"__typename": "ChargedFeeTransfer",
"originatingAccount": {
"id": "<FINANCIAL_ACCOUNT_ID>",
"accountStatus": "ACTIVE",
"feeTransferEvents": {
"pageInfo": {
"hasNextPage": false
},
"edges": [
{
"cursor": "<CURSOR_ID>",
"node": {
"id": "<CHARGED_FEE_TRANSFER_ID>",
"feeTransfer": {
"__typename": "ChargedFeeTransfer"
}
}
},
{
"cursor": "<CURSOR_ID>",
"node": {
"id": "<CHARGED_FEE_TRANSFER_ID>",
"feeTransfer": {
"__typename": "ChargedFeeTransfer"
}
}
},
{
"cursor": "<CURSOR_ID>",
"node": {
"id": "<CHARGED_FEE_TRANSFER_ID>",
"feeTransfer": {
"__typename": "ChargedFeeTransfer"
}
}
}
]
}
},
"receivingAccount": {
"id": "<FINANCIAL_ACCOUNT_ID>",
"accountStatus": "ACTIVE"
},
"cardProduct": {
"id": "<CARD_PRODUCT_ID>",
"name": "Consumer Prepaid"
},
"feeActivityType": "ATM_DECLINE_FEE",
"feeAmount": {
"value": 20,
"currencyCode": "USD"
},
"transferedFeeAmount": {
"value": 20,
"currencyCode": "USD"
},
"transferDate": "2023-05-03T01:52:56.563Z",
"status": {
"__typename": "NonFailureFeeTransferStatus",
"status": "COMPLETE"
},
"feeChargeRule": {
"id": "<FEE_CHARGE_RULE_ID>",
"name": "ATM Decline Fee",
"value": {
"__typename": "VariableFeeChargeValue"
}
},
"feeChargeActvity": {
"__typename": "AuthorizationAndClearEvent",
"id": "<TRANSACTION_EVENT_ID>",
"transaction": {
"__typename": "DebitTransaction",
"id": "<TRANSACTION_EVENT_ID>"
}
}
}
}
},
{
"cursor": "<CURSOR_ID>",
"node": {
"__typename": "FeeTransferEvent",
"id": "<FEE_TRANSFER_EVENT_ID>",
"feeTransfer": {
"__typename": "ChargedFeeTransfer",
"originatingAccount": {
"id": "<FINANCIAL_ACCOUNT_ID>",
"accountStatus": "ACTIVE",
"feeTransferEvents": {
"pageInfo": {
"hasNextPage": false
},
"edges": [
{
"cursor": "<CURSOR_ID>",
"node": {
"id": "<CHARGED_FEE_TRANSFER_ID>",
"feeTransfer": {
"__typename": "ChargedFeeTransfer"
}
}
},
{
"cursor": "<CURSOR_ID>",
"node": {
"id": "<CHARGED_FEE_TRANSFER_ID>",
"feeTransfer": {
"__typename": "ChargedFeeTransfer"
}
}
},
{
"cursor": "<CURSOR_ID>",
"node": {
"id": "<CHARGED_FEE_TRANSFER_ID>",
"feeTransfer": {
"__typename": "ChargedFeeTransfer"
}
}
}
]
}
},
"receivingAccount": {
"id": "<FINANCIAL_ACCOUNT_ID>",
"accountStatus": "ACTIVE"
},
"cardProduct": {
"id": "<CARD_PRODUCT_ID>",
"name": "Consumer Prepaid"
},
"feeActivityType": "ATM_DECLINE_FEE",
"feeAmount": {
"value": 50,
"currencyCode": "USD"
},
"transferedFeeAmount": {
"value": 50,
"currencyCode": "USD"
},
"transferDate": "2023-05-03T01:53:01.046Z",
"status": {
"__typename": "NonFailureFeeTransferStatus",
"status": "COMPLETE"
},
"feeChargeRule": {
"id": "<FEE_CHARGE_RULE_ID>",
"name": "ATM Transaction Fee",
"value": {
"__typename": "VariableFeeChargeValue"
}
},
"feeChargeActvity": {
"__typename": "AuthorizationAndClearEvent",
"id": "<TRANSACTION_EVENT_ID>",
"transaction": {
"__typename": "DebitTransaction",
"id": "<TRANSACTION_EVENT_ID>"
}
}
}
}
},
{
"cursor": "<CURSOR_ID>",
"node": {
"__typename": "FeeTransferEvent",
"id": "<FEE_TRANSFER_EVENT_ID>",
"feeTransfer": {
"__typename": "ChargedFeeTransfer",
"originatingAccount": {
"id": "<FEE_TRANSFER_EVENT_ID>",
"accountStatus": "ACTIVE",
"feeTransferEvents": {
"pageInfo": {
"hasNextPage": false
},
"edges": [
{
"cursor": "<CURSOR_ID>",
"node": {
"id": "<CHARGED_FEE_TRANSFER_ID>",
"feeTransfer": {
"__typename": "ChargedFeeTransfer"
}
}
},
{
"cursor": "<CURSOR_ID>",
"node": {
"id": "<CHARGED_FEE_TRANSFER_ID>",
"feeTransfer": {
"__typename": "ChargedFeeTransfer"
}
}
},
{
"cursor": "<CURSOR_ID>",
"node": {
"id": "<CHARGED_FEE_TRANSFER_ID>",
"feeTransfer": {
"__typename": "ChargedFeeTransfer"
}
}
}
]
}
},
"receivingAccount": {
"id": "<FINANCIAL_ACCOUNT_ID>",
"accountStatus": "ACTIVE"
},
"cardProduct": {
"id": "<CARD_PRODUCT_ID>",
"name": "Consumer Prepaid"
},
"feeActivityType": "EXPEDITED_PHYSICAL_CARD_FEE",
"feeAmount": {
"value": 2000,
"currencyCode": "USD"
},
"transferedFeeAmount": {
"value": 2000,
"currencyCode": "USD"
},
"transferDate": "2023-05-03T01:51:56.598Z",
"status": {
"__typename": "NonFailureFeeTransferStatus",
"status": "COMPLETE"
},
"feeChargeRule": {
"id": "<FEE_CHARGE_RULE_ID>",
"name": "Expedited Physical Card Fee",
"value": {
"__typename": "FixedFeeChargeValue",
"amount": {
"value": 2000,
"currencyCode": "USD"
}
}
},
"feeChargeActvity": {
"__typename": "PhysicalPaymentCardOrder",
"id": "<PHYSICAL_CARD_ORDER_ID>"
}
}
}
},
{
"cursor": "<CURSOR_ID>",
"node": {
"__typename": "FeeTransferEvent",
"id": "<FEE_TRANSFER_ID>",
"feeTransfer": {
"__typename": "ChargedFeeTransfer",
"originatingAccount": {
"id": "<FINANCIAL_ACCOUNT_ID>",
"accountStatus": "ACTIVE",
"feeTransferEvents": {
"pageInfo": {
"hasNextPage": false
},
"edges": [
{
"cursor": "<CURSOR_ID>",
"node": {
"id": "<CHARGED_FEE_TRANSFER_ID>",
"feeTransfer": {
"__typename": "ChargedFeeTransfer"
}
}
}
]
}
},
"receivingAccount": {
"id": "<FINANCIAL_ACCOUNT_ID>",
"accountStatus": "ACTIVE"
},
"cardProduct": {
"id": "<CARD_PRODUCT_ID>",
"name": "Consumer Prepaid"
},
"feeActivityType": "EXPEDITED_PHYSICAL_CARD_FEE",
"feeAmount": {
"value": 2000,
"currencyCode": "USD"
},
"transferedFeeAmount": {
"value": 2000,
"currencyCode": "USD"
},
"transferDate": "2023-05-03T01:50:26.690Z",
"status": {
"__typename": "NonFailureFeeTransferStatus",
"status": "COMPLETE"
},
"feeChargeRule": {
"id": "<FEE_CHARGE_RULE_ID>",
"name": "Expedited Physical Card Fee",
"value": {
"__typename": "FixedFeeChargeValue",
"amount": {
"value": 2000,
"currencyCode": "USD"
}
}
},
"feeChargeActvity": {
"__typename": "PhysicalPaymentCardOrder",
"id": "<PHYSICAL_CARD_ORDER_ID>"
}
}
}
}
]
}
},
"extensions": {
"requestId": "<REQUEST_ID>"
}
}

Waive fees​

When you waive a fee, the entire fee amount from the original fee transfer event is reversed.

The following waiveFeeTransfer mutation creates a ReversedFeeTransfer event that starts in a PENDING state, and can either FAIL or COMPLETE successfully.

waiveFeeTransfer​
Query
mutation waiveFeeTransfer($input: WaiveFeeTransferInput!) {
waiveFeeTransfer(input: $input) {
__typename
... on FeeTransferEvent {
__typename
id
feeTransfer {
... on ReversedFeeTransfer {
originatingAccount {
id
}
receivingAccount {
id
}
feeTransferAmount {
value
currencyCode
}
transferDate
status {
__typename
... on NonFailureFeeTransferStatus {
status
}
}
sourceFeeTransferEvent {
id
}
}
}
}
... on UserError {
errors {
code
}
}
}
}
Variables
{
  "input": {
    "feeTransferEventId": "<FEE_TRANSFER_EVENT_ID_1>",
    "idempotencyKey": "key123232322",
    "memo": "first test"
  }
}
⚠️ Please login to execute queries. Visit the dashboard to authenticate.
Result
{
"data": {
"waiveFeeTransfer": {
"__typename": "FeeTransferEvent",
"id": "<FEE_TRANSFER_EVENT_ID_2>",
"feeTransfer": {
"__typename": "ReversedFeeTransfer",
"originatingAccount": {
"id": "<FINANCIAL_ACCOUNT_ID_1>"
},
"receivingAccount": {
"id": "<FINANCIAL_ACCOUNT_ID_2>"
},
"transferedFeeAmount": {
"value": 500,
"currencyCode": "USD"
},
"transferDate": "2025-05-05T20:31:08.213Z",
"status": {
"status": "COMPLETE"
},
"memo": "first test",
"sourceFeeTransferEvent": {
"id": "<FEE_TRANSFER_EVENT_ID_1>"
}
}
}
},
"extensions": {
"requestId": "0412e3d7-0461-98a3-861c-0897fc84180f",
"rateLimit": {
"cost": 13
}
}
}