Skip to main content

Simulate Transactions

Overview

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.

You can use the Highnote API to simulate transactions in the Test environment. Simulating transactions helps test the following use cases and card product settings:

  • Transactions at different merchant types
  • Different transaction amounts
  • International transactions
  • Spend rules and velocity controls
  • Collaborative authorization flow

This guide provides steps for simulating transactions using the Highnote API. For steps on simulating transactions in the dashboard, see Simulate authorizations.

Prerequisites

info

This guide can be used for any card product, except fleet card products. To simulate transactions for fleet card products, see Simulate Fleet Transactions.

Simulate an authorization

Simulated authorizations use the same logic as real authorizations from card networks such as Mastercard and Visa. In the Test environment, authorizations are approved or declined based on your card product logic and authorization controls.

Use the following mutation to simulate an authorization in your Test environment:

SimulateAuthorization
Query
mutation SimulateAuthorization($input: SimulateAuthorizationInput!) {
simulateAuthorization(input: $input) {
... on AuthorizationEvent {
id
responseCode
postalCodeResponseCode
cvvResponseCode
merchantDetails {
countryCodeAlpha3
category
name
description
merchantId
categoryCode
address {
postalCode
region
locality
countryCodeAlpha3
}
}
pointOfServiceDetails {
category
cardDataInputCapability
panEntryMode
pinEntryMode
terminalAttendance
isCardHolderPresent
isCardPresent
terminalSupportsPartialApproval
isRecurring
}
additionalNetworkData {
__typename
... on VisaData {
transactionIdentifier
}
}
transactionProcessingType
transaction {
... on Node {
id
}
}
currentFinancialAccountAvailableToSpendAmount {
currencyCode
value
}
currentFinancialAccountMaximumBalanceAmount {
currencyCode
value
}
}
}
}
Variables
{
  "input": {
    "amount": {
      "value": 1000,
      "currencyCode": "USD"
    },
    "merchantDetails": {
      "merchantId": "000000000011111",
      "name": "Safeway",
      "description": "Safeway - SF",
      "category": "MISCELLANEOUS_SPECIALTY_RETAIL",
      "address": {
        "postalCode": "94105",
        "region": "CA",
        "locality": "San Francisco",
        "countryCodeAlpha3": "USA"
      }
    },
    "pointOfServiceDetails": {
      "category": "AUTOMATED_FUEL_DISPENSER",
      "cardDataInputCapability": "MAG_STRIPE_READER_AND_EMV_ICC",
      "panEntryMode": "MAGNETIC_STRIPE",
      "pinEntryMode": "PIN_VERIFIED_BY_TERMINAL_DEVICE",
      "terminalAttendance": "ATTENDED",
      "isCardHolderPresent": true,
      "isCardPresent": true,
      "terminalSupportsPartialApproval": true,
      "isRecurring": false
    },
    "transactionProcessingType": "PAYMENT_DEBIT",
    "cardId": "PAYMENT_CARD_ID"
  }
}
⚠️ Please login to execute queries. Visit the dashboard to authenticate.
Result
{
"data": {
"simulateAuthorization": {
"id": "TRANSACTION_EVENT_ID",
"responseCode": "APPROVED",
"postalCodeResponseCode": "NOT_PROVIDED",
"cvvResponseCode": "MATCH",
"networkResponseCode": "00",
"merchantDetails": {
"merchantId": "000000000011111",
"name": "Safeway",
"description": "Safeway - SF",
"category": "MISCELLANEOUS_SPECIALTY_RETAIL",
"categoryCode": "5514",
"address": {
"postalCode": "94105",
"region": "CA",
"locality": "San Francisco",
"countryCodeAlpha3": "USA"
}
},
"pointOfServiceDetails": {
"category": "AUTOMATED_FUEL_DISPENSER",
"cardDataInputCapability": "MAG_STRIPE_READER_AND_EMV_ICC",
"panEntryMode": "MAGNETIC_STRIPE",
"pinEntryMode": "PIN_VERIFIED_BY_TERMINAL_DEVICE",
"terminalAttendance": "ATTENDED",
"isCardHolderPresent": true,
"isCardPresent": true,
"terminalSupportsPartialApproval": true,
"isRecurring": false
},
"additionalNetworkData": {
"__typename": "VisaData",
"transactionIdentifier": "123456"
},
"transactionProcessingType": "PAYMENT_DEBIT",
"transaction": {
"id": "TRANSACTION_ID"
},
"currentFinancialAccountAvailableToSpendAmount": {
"currencyCode": "USD",
"value": 500
},
"currentFinancialAccountMaximumBalanceAmount": {
"currencyCode": "USD",
"value": 30000
}
}
},
"extensions": {
"requestId": "REQUEST_ID"
}
}

Simulate a 3DS verification

You can simulate a 3-D Secure (3DS) verification preceding an authorization by including the additionalNetworkData object in the SimulateAuthorization input. The additionalNetworkData object contains network-specific sub-objects for Visa and Mastercard, each with three fields relevant to 3DS.

The 3DS field values are echoed on the authorization response. To simulate a failed 3DS verification, set the first field to the failed value — the authorization will be declined with INVALID_3DS_VERIFICATION.

Visa

To simulate a passed 3DS verification for a Visa card, include the following in your SimulateAuthorization input:

Visa — Passed 3DS verification
"additionalNetworkData": {
"visa": {
"cavvResultCode": "PASSED",
"motoAndElectronicCommerceIndicator": "SECURE_ELECTRONIC_COMMERCE_TRANSACTION",
"threeDSecureIndicator": "FRICTIONLESS"
}
}

To simulate a failed 3DS verification, set cavvResultCode to FAILED:

Visa — Failed 3DS verification
"additionalNetworkData": {
"visa": {
"cavvResultCode": "FAILED",
"motoAndElectronicCommerceIndicator": "SECURE_ELECTRONIC_COMMERCE_TRANSACTION",
"threeDSecureIndicator": "FRICTIONLESS"
}
}

Mastercard

To simulate a passed 3DS verification for a Mastercard card, include the following in your SimulateAuthorization input:

Mastercard — Passed 3DS verification
"additionalNetworkData": {
"mastercard": {
"aavResultCode": "AAV_PASSED_VALIDATION",
"threeDSecureCardholderAuthentication": "CARDHOLDER_CERTIFICATE_NOT_USED",
"ucafCollectionIndicator": "UCAF_DATA_SUPPORTED"
}
}

To simulate a failed 3DS verification, set aavResultCode to AAV_FAILED_VALIDATION:

Mastercard — Failed 3DS verification
"additionalNetworkData": {
"mastercard": {
"aavResultCode": "AAV_FAILED_VALIDATION",
"threeDSecureCardholderAuthentication": "CARDHOLDER_CERTIFICATE_NOT_USED",
"ucafCollectionIndicator": "UCAF_DATA_SUPPORTED"
}
}

3DS verification flow

The following diagram shows the 3DS verification and authorization flow, including both frictionless and step-up challenge paths. The Access Control Server (ACS) performs the 3DS authentication on behalf of the issuer using Risk-Based Authentication (RBA) to determine whether to approve frictionlessly or require a one-time password (OTP) challenge.

3DS Verification and Authorization Flow

Simulate a clearing event

Once a transaction clears, funds are transferred to the merchant from the account holder's financial account. Clearing occurs in one of the following ways:

  • With an authorization, immediately after
  • In batches after authorizations are approved

Use the following mutation to simulate clearing. For partial clearings, set the value input variable to an amount less than the original transaction, for example:

"amount": { "currencyCode": "USD", "value": "100" }
SimulateClearing
Query
mutation SimulateClearing($input: SimulateClearingInput!) {
simulateClearing(input: $input) {
... on ClearingEvent {
id
responseCode
merchantDetails {
countryCodeAlpha3
category
name
description
merchantId
categoryCode
address {
postalCode
region
locality
countryCodeAlpha3
}
}
pointOfServiceDetails {
category
cardDataInputCapability
panEntryMode
pinEntryMode
terminalAttendance
isCardHolderPresent
isCardPresent
terminalSupportsPartialApproval
isRecurring
}
additionalNetworkData {
__typename
... on VisaData {
transactionIdentifier
}
}
transactionProcessingType
transaction {
... on Node {
id
}
}
currentFinancialAccountAvailableToSpendAmount {
currencyCode
value
}
currentFinancialAccountMaximumBalanceAmount {
currencyCode
value
}
}
}
}
Variables
{
  "input": {
    "transactionId": "TRANSACTION_ID",
    "merchantDetails": {
      "merchantId": "000000000011111",
      "name": "Safeway",
      "description": "Safeway - SF",
      "category": "MISCELLANEOUS_SPECIALTY_RETAIL",
      "address": {
        "postalCode": "94105",
        "region": "CA",
        "locality": "San Francisco",
        "countryCodeAlpha3": "USA"
      }
    },
    "pointOfServiceDetails": {
      "category": "AUTOMATED_FUEL_DISPENSER",
      "cardDataInputCapability": "MAG_STRIPE_READER_AND_EMV_ICC",
      "panEntryMode": "MAGNETIC_STRIPE",
      "pinEntryMode": "PIN_VERIFIED_BY_TERMINAL_DEVICE",
      "terminalAttendance": "ATTENDED",
      "isCardHolderPresent": true,
      "isCardPresent": true,
      "terminalSupportsPartialApproval": true,
      "isRecurring": false
    },
    "transactionProcessingType": "PAYMENT_DEBIT"
  }
}
⚠️ Please login to execute queries. Visit the dashboard to authenticate.
Result
{
"data": {
"simulateClearing": {
"id": "TRANSACTION_EVENT_ID",
"responseCode": "APPROVED",
"merchantDetails": {
"merchantId": "000000000011111",
"name": "Safeway",
"description": "Safeway - SF",
"category": "MISCELLANEOUS_SPECIALTY_RETAIL",
"categoryCode": "5514",
"address": {
"postalCode": "94105",
"region": "CA",
"locality": "San Francisco",
"countryCodeAlpha3": "USA"
}
},
"pointOfServiceDetails": {
"category": "AUTOMATED_FUEL_DISPENSER",
"cardDataInputCapability": "MAG_STRIPE_READER_AND_EMV_ICC",
"panEntryMode": "MAGNETIC_STRIPE",
"pinEntryMode": "PIN_VERIFIED_BY_TERMINAL_DEVICE",
"terminalAttendance": "ATTENDED",
"isCardHolderPresent": true,
"isCardPresent": true,
"terminalSupportsPartialApproval": true,
"isRecurring": false
},
"additionalNetworkData": {
"__typename": "VisaData",
"transactionIdentifier": "123456"
},
"transactionProcessingType": "PAYMENT_DEBIT",
"transaction": {
"id": "TRANSACTION_ID"
},
"currentFinancialAccountAvailableToSpendAmount": {
"currencyCode": "USD",
"value": 500
},
"currentFinancialAccountMaximumBalanceAmount": {
"currencyCode": "USD",
"value": 30000
}
}
}
}

Simulate an authorization and clear

Some transactions send authorization and clearing events in a single message. Use the following mutation to simulate an authorization and clearing event:

SimulateSingleStepAuthAndClear
Query
mutation SimulateSingleStepAuthAndClear(
$input: SimulateSingleStepAuthAndClearInput!
) {
simulateSingleStepAuthAndClear(input: $input) {
... on AuthorizationAndClearEvent {
id
transaction {
... on Node {
__typename
id
}
}
originalAmount {
value
currencyCode
}
requestedAmount {
value
currencyCode
}
approvedAmount {
value
currencyCode
}
responseCode
partial
merchantDetails {
address {
locality
region
countryCodeAlpha3
postalCode
}
countryCodeAlpha3
category
categoryCode
name
merchantId
description
}
currentFinancialAccountMaximumBalanceAmount {
value
currencyCode
}
currentFinancialAccountAvailableToSpendAmount {
value
currencyCode
}
transactionProcessingType
pointOfServiceDetails {
category
panEntryMode
pinEntryMode
terminalAttendance
isCardHolderPresent
isCardPresent
isRecurring
terminalSupportsPartialApproval
}
additionalNetworkData {
__typename
... on VisaData {
transactionIdentifier
}
}
paymentCardSnapshot {
createdAt
status
paymentCardCurrent {
id
expirationDate
last4
}
}
}
... on UserError {
errors {
errorPath
code
description
}
}
}
}
Variables
{
  "input": {
    "amount": {
      "value": 1000,
      "currencyCode": "USD"
    },
    "cardId": "PAYMENT_CARD_ID",
    "merchantDetails": {
      "address": {
        "locality": "Redmond",
        "region": "WA",
        "postalCode": "98053",
        "countryCodeAlpha3": "USA"
      },
      "name": "HIGHNOTE_PLATFORM 1234",
      "merchantId": "1234567890",
      "description": "HIGHNOTE SF CA US 1234",
      "category": "AUTOMATED_CASH_DISBURSE",
      "countryCodeAlpha3": "USA"
    },
    "transactionProcessingType": "CASH",
    "pointOfServiceDetails": {
      "category": "AUTOMATED_TELLER_MACHINE",
      "panEntryMode": "INTEGRATED_CIRCUIT_CARD",
      "pinEntryMode": "PIN_VERIFIED_BY_TERMINAL_DEVICE",
      "terminalAttendance": "UNATTENDED",
      "isCardHolderPresent": true,
      "isCardPresent": true,
      "isRecurring": false,
      "terminalSupportsPartialApproval": false
    }
  }
}
⚠️ Please login to execute queries. Visit the dashboard to authenticate.
Result
{
"data": {
"simulateSingleStepAuthAndClear": {
"id": "TRANSACTION_EVENT_ID",
"transaction": {
"__typename": "DebitTransaction",
"id": "TRANSACTION_ID"
},
"originalAmount": null,
"requestedAmount": {
"value": 1000,
"currencyCode": "USD"
},
"approvedAmount": {
"value": 1000,
"currencyCode": "USD"
},
"responseCode": "APPROVED",
"partial": false,
"merchantDetails": {
"address": {
"locality": "Redmond",
"region": "WA",
"countryCodeAlpha3": "USA",
"postalCode": "98053"
},
"countryCodeAlpha3": "USA",
"category": "AUTOMATED_CASH_DISBURSE",
"categoryCode": "6011",
"name": "HIGHNOTE_PLATFORM 1234",
"merchantId": "1234567890",
"description": "HIGHNOTE SF CA US 1234"
},
"currentFinancialAccountMaximumBalanceAmount": {
"value": 50000000,
"currencyCode": "USD"
},
"currentFinancialAccountAvailableToSpendAmount": {
"value": 49930000,
"currencyCode": "USD"
},
"transactionProcessingType": "CASH",
"pointOfServiceDetails": {
"category": "AUTOMATED_TELLER_MACHINE",
"panEntryMode": "INTEGRATED_CIRCUIT_CARD",
"pinEntryMode": "PIN_VERIFIED_BY_TERMINAL_DEVICE",
"terminalAttendance": "UNATTENDED",
"isCardHolderPresent": true,
"isCardPresent": true,
"isRecurring": false,
"terminalSupportsPartialApproval": false
},
"additionalNetworkData": {
"__typename": "VisaData",
"transactionIdentifier": "a72be1cc26ea444697b8fa171f6bab6f"
},
"paymentCardSnapshot": {
"createdAt": "2024-02-14T19:45:04.386Z",
"status": "ACTIVE",
"paymentCardCurrent": {
"id": "PAYMENT_CARD_ID",
"expirationDate": "2025-01-01T23:59:59Z",
"last4": "9662"
}
}
}
},
"extensions": {
"requestId": "REQUEST_ID",
"rateLimit": {
"cost": 22
}
}
}

Simulate a reversal

An authorization can be reversed if it has not cleared. Reversing an authorization releases funds from "pending" status and returns the funds to the account holder.

Specifically:

  • You can do a full or partial reversal.
  • You cannot reverse after a partial clearing, nor clear after a partial reversal.

Use the following mutation to simulate a reversal. Full reversals are the default. For partial reversals, set the value input variable to an amount less than the original authorization, for example:

"amount": { "currencyCode": "USD", "value": "100" }
SimulateReversal
Query
mutation SimulateReversal($input: SimulateReversalInput!) {
simulateReversal(input: $input) {
... on ReversalEvent {
id
responseCode
merchantDetails {
countryCodeAlpha3
category
name
description
merchantId
categoryCode
address {
postalCode
region
locality
countryCodeAlpha3
}
}
pointOfServiceDetails {
category
cardDataInputCapability
panEntryMode
pinEntryMode
terminalAttendance
isCardHolderPresent
isCardPresent
terminalSupportsPartialApproval
isRecurring
}
additionalNetworkData {
__typename
... on VisaData {
transactionIdentifier
}
}
transactionProcessingType
transaction {
... on Node {
id
}
}
currentFinancialAccountAvailableToSpendAmount {
currencyCode
value
}
currentFinancialAccountMaximumBalanceAmount {
currencyCode
value
}
}
}
}
Variables
{
  "input": {
    "transactionId": "TRANSACTION_ID",
    "merchantDetails": {
      "merchantId": "000000000011111",
      "name": "Safeway",
      "description": "Safeway - SF",
      "category": "MISCELLANEOUS_SPECIALTY_RETAIL",
      "address": {
        "postalCode": "94105",
        "region": "CA",
        "locality": "San Francisco",
        "countryCodeAlpha3": "USA"
      }
    },
    "pointOfServiceDetails": {
      "category": "AUTOMATED_FUEL_DISPENSER",
      "cardDataInputCapability": "MAG_STRIPE_READER_AND_EMV_ICC",
      "panEntryMode": "MAGNETIC_STRIPE",
      "pinEntryMode": "PIN_VERIFIED_BY_TERMINAL_DEVICE",
      "terminalAttendance": "ATTENDED",
      "isCardHolderPresent": true,
      "isCardPresent": true,
      "terminalSupportsPartialApproval": true,
      "isRecurring": false
    },
    "transactionProcessingType": "PAYMENT_DEBIT"
  }
}
⚠️ Please login to execute queries. Visit the dashboard to authenticate.
Result
{
"data": {
"simulateAuthorizationReversal": {
"id": "TRANSACTION_EVENT_ID",
"responseCode": "APPROVED",
"merchantDetails": {
"merchantId": "000000000011111",
"name": "Safeway",
"description": "Safeway - SF",
"category": "MISCELLANEOUS_SPECIALTY_RETAIL",
"categoryCode": "5514",
"address": {
"postalCode": "94105",
"region": "CA",
"locality": "San Francisco",
"countryCodeAlpha3": "USA"
}
},
"pointofServiceDetails": {
"category": "AUTOMATED_FUEL_DISPENSER",
"cardDataInputCapability": "MAG_STRIPE_READER_AND_EMV_ICC",
"panEntryMode": "MAGNETIC_STRIPE",
"pinEntryMode": "PIN_VERIFIED_BY_TERMINAL_DEVICE",
"terminalAttendance": "ATTENDED",
"isCardHolderPresent": true,
"isCardPresent": true,
"terminalSupportsPartialApproval": true,
"isRecurring": false
},
"additionalNetworkData": {
"__typename": "VisaData",
"transactionIdentifier": "123456"
},
"transactionProcessingType": "PAYMENT_DEBIT",
"transaction": {
"id": "TRANSACTION_ID"
},
"currentFinancialAccountAvailableToSpendAmount": {
"currencyCode": "USD",
"value": 500
},
"currentFinancialAccountMaximumBalanceAmount": {
"currencyCode": "USD",
"value": 30000
}
}
}
}

Simulate a refund

info

You cannot simulate refunds linked to a previous transaction. Simulating a refund results in a new transaction with its own id and transactionEvent.

Refunds can be simulated for cleared transactions. When simulating a refund, you can refund the total or partial amount of the original transaction.

When you use the simulateRefund mutation, you will receive a ClearingEvent in response. Use the following mutation to simulate a refund:

SimulateRefund
Query
mutation SimulateRefund($input: SimulateRefundInput!) {
simulateRefund(input: $input) {
... on ClearingEvent {
id
responseCode
merchantDetails {
countryCodeAlpha3
category
name
description
merchantId
categoryCode
address {
postalCode
region
locality
countryCodeAlpha3
}
}
pointOfServiceDetails {
category
cardDataInputCapability
panEntryMode
pinEntryMode
terminalAttendance
isCardHolderPresent
isCardPresent
terminalSupportsPartialApproval
isRecurring
}
additionalNetworkData {
__typename
... on VisaData {
transactionIdentifier
}
}
transactionProcessingType
transaction {
... on Node {
id
}
}
currentFinancialAccountAvailableToSpendAmount {
currencyCode
value
}
currentFinancialAccountMaximumBalanceAmount {
currencyCode
value
}
}
}
}
Variables
{
  "input": {
    "transactionId": "TRANSACTION_ID",
    "merchantDetails": {
      "merchantId": "000000000011111",
      "name": "Safeway",
      "description": "Safeway - SF",
      "category": "MISCELLANEOUS_SPECIALTY_RETAIL",
      "address": {
        "postalCode": "94105",
        "region": "CA",
        "locality": "San Francisco",
        "countryCodeAlpha3": "USA"
      }
    },
    "pointOfServiceDetails": {
      "category": "AUTOMATED_FUEL_DISPENSER",
      "cardDataInputCapability": "MAG_STRIPE_READER_AND_EMV_ICC",
      "panEntryMode": "MAGNETIC_STRIPE",
      "pinEntryMode": "PIN_VERIFIED_BY_TERMINAL_DEVICE",
      "terminalAttendance": "ATTENDED",
      "isCardHolderPresent": true,
      "isCardPresent": true,
      "terminalSupportsPartialApproval": true,
      "isRecurring": false
    },
    "transactionProcessingType": "RETURNS"
  }
}
⚠️ Please login to execute queries. Visit the dashboard to authenticate.
Result
{
"data": {
"simulateRefund": {
"id": "TRANSACTION_EVENT_ID",
"responseCode": "APPROVED",
"merchantDetails": {
"merchantId": "000000000011111",
"name": "Safeway",
"description": "Safeway - SF",
"category": "MISCELLANEOUS_SPECIALTY_RETAIL",
"categoryCode": "5514",
"address": {
"postalCode": "94105",
"region": "CA",
"locality": "San Francisco",
"countryCodeAlpha3": "USA"
}
},
"pointofServiceDetails": {
"category": "AUTOMATED_FUEL_DISPENSER",
"cardDataInputCapability": "MAG_STRIPE_READER_AND_EMV_ICC",
"panEntryMode": "MAGNETIC_STRIPE",
"pinEntryMode": "PIN_VERIFIED_BY_TERMINAL_DEVICE",
"terminalAttendance": "ATTENDED",
"isCardHolderPresent": true,
"isCardPresent": true,
"terminalSupportsPartialApproval": true,
"isRecurring": false
},
"visaData": {
"transactionIdentifier": 123456
},
"transactionProcessingType": "RETURNS",
"transaction": {
"id": "TRANSACTION_ID"
},
"currentFinancialAccountAvailableToSpendAmount": {
"currencyCode": "USD",
"value": 500
},
"currentFinancialAccountMaximumBalanceAmount": {
"currencyCode": "USD",
"value": 30000
}
}
}
}

Simulate an adjustment event

You can simulate Adjustment events from the payment networks using the SimulateAdjustment mutation.

SimulateAdjustment
Query
mutation SimulateAdjustment($input: SimulateAdjustmentInput!) {
simulateAdjustment(input: $input) {
... on AdjustmentEvent {
__typename
id
transaction {
... on Node {
__typename
id
}
}
responseCode
merchantDetails {
address {
locality
region
countryCodeAlpha3
postalCode
}
countryCodeAlpha3
category
categoryCode
name
merchantId
description
}
transactionProcessingType
pointOfServiceDetails {
category
panEntryMode
pinEntryMode
terminalAttendance
isCardHolderPresent
isCardPresent
isRecurring
terminalSupportsPartialApproval
cardDataInputCapability
}
additionalNetworkData {
__typename
... on VisaData {
transactionIdentifier
authorizationCode
acquiringInstitutionIdentificationCode
retrievalReferenceNumber
systemTraceAuditNumber
networkTransmissionDateAndTime
}
... on MastercardData {
banknetReferenceNumber
authorizationCode
acquiringInstitutionIdentificationCode
retrievalReferenceNumber
systemTraceAuditNumber
networkTransmissionDateAndTime
}
}
paymentCardSnapshot {
__typename
createdAt
status
paymentCardCurrent {
id
last4
formFactor
network
status
}
}
}

... on UserError {
errors {
path
code
description
}
}
}
}
Variables
{
  "input": {
    "transactionId": "tx_23fvj841cnttnn8tjtdfdhrpbqw1sabak7",
    "amount": {
      "value": 500,
      "currencyCode": "USD"
    },
    "transactionProcessingType": "ADJUSTMENT_DEBIT"
  }
}
⚠️ Please login to execute queries. Visit the dashboard to authenticate.
Result
{
"data": {
"simulateAdjustment": {
"__typename": "AdjustmentEvent",
"id": "te_23xxe2ef8tmk994pvtqk3ab5c7j1sabakf",
"transaction": {
"__typename": "DebitTransaction",
"id": "tx_23fvj841cnttnn8tjtdfdhrpbqw1sabak7"
},
"responseCode": "APPROVED",
"merchantDetails": {
"address": {
"locality": "San Francisco",
"region": "CA",
"countryCodeAlpha3": "USA",
"postalCode": ""
},
"countryCodeAlpha3": "USA",
"category": "BAKERIES",
"categoryCode": "5462",
"name": "Some merchant name",
"merchantId": "12345678",
"description": "HIGHNOTE SF CA US"
},
"transactionProcessingType": "ADJUSTMENT_DEBIT",
"pointOfServiceDetails": {
"category": null,
"panEntryMode": null,
"pinEntryMode": null,
"terminalAttendance": null,
"isCardHolderPresent": false,
"isCardPresent": false,
"isRecurring": false,
"terminalSupportsPartialApproval": false,
"cardDataInputCapability": null
},
"additionalNetworkData": null,
"paymentCardSnapshot": {
"__typename": "PaymentCardSnapshot",
"createdAt": "2024-11-25T19:00:18.570Z",
"status": "ACTIVE",
"paymentCardCurrent": {
"id": "cd_ab5fc1ef832c1abdb767a222da0e8b7f",
"last4": "9803",
"formFactor": "VIRTUAL",
"network": "MASTERCARD",
"status": "ACTIVE"
}
}
}
},
"extensions": {
"requestId": "6896af4c-0b38-9f0d-8a75-085a8d5be838",
"rateLimit": {
"cost": 17
}
}
}

Automate your integration

To automate your integration, subscribe to the following notification events:

The details provided in the payloads from these events can be used for the following use cases:

  • Automate your application or website's transaction processing workflows
  • Create account holder notifications and alerts