### Authorize Payment Method Token Variables Example Source: https://docs.highnote.com/docs/acquiring/payments/credential-on-file/cof-installments Example JSON variables for the `AuthorizePaymentMethodToken` mutation, demonstrating a customer-initiated installment payment with specific amount, currency, and installment details. ```json { "input": { "paymentMethodTokenId": "tkpmc_01", "merchantAcceptorId": "acqma_01", "amount": { "value": 1000, "currencyCode": "USD" }, "idempotencyKey": "UUID_v4", "paymentInitiator": "CUSTOMER_INITIATED_INSTALLMENT_FIRST", "installmentPayment": { "totalAmount": { "value": 6000, "currencyCode": "USD" }, "numberOfInstallments": 6, "paymentAmount": { "value": 1000, "currencyCode": "USD" }, "frequency": "MONTHLY", "firstPaymentDate": "2025-01-15", "paymentNumber": 1, "fundedAmount": { "value": 0, "currencyCode": "USD" } } } } ``` -------------------------------- ### Charge Payment Card Variables Example Source: https://docs.highnote.com/docs/acquiring/payments/credential-on-file/cof-installments Example variables for the `chargePaymentCard` mutation. This includes payment card details, merchant acceptor ID, amount, idempotency key, payment initiator, and installment payment configuration. ```json { "input": { "paymentCard": { "cardNumber": "4000000000000002", "expiryYear": "29", "expiryMonth": "12", "securityCode": "111" }, "merchantAcceptorId": "acqma_01", "amount": { "value": 1000, "currencyCode": "USD" }, "idempotencyKey": "UUID_v4", "paymentInitiator": "CUSTOMER_INITIATED_INSTALLMENT_FIRST", "externalCredentialOnFile": { "intendToStore": true }, "installmentPayment": { "totalAmount": { "value": 6000, "currencyCode": "USD" }, "numberOfInstallments": 6, "paymentAmount": { "value": 1000, "currencyCode": "USD" }, "frequency": "MONTHLY", "firstPaymentDate": "2025-01-15", "paymentNumber": 1, "fundedAmount": { "value": 0, "currencyCode": "USD" } } } } ``` -------------------------------- ### Installation Source: https://docs.highnote.com/docs/developers/sdks/issuing/secure-inputs-sdk-pins Instructions for installing the Highnote Secure Inputs SDK using package managers or a CDN. ```APIDOC ## Installation The Highnote Secure Inputs SDK can be installed using npm, yarn, pnpm, or via a CDN. ### Install by package manager **npm** ```bash npm i @highnoteplatform/secure-inputs ``` **yarn** ```bash yarn add @highnoteplatform/secure-inputs ``` **pnpm** ```bash pnpm add @highnoteplatform/secure-inputs ``` ### Install by CDN To ensure stability, replace `@latest` with a specific version number (e.g., `@1.0.0`). #### Script tag ```html ``` #### ESM import ```html ``` ``` -------------------------------- ### Install Card Viewer SDK with yarn Source: https://docs.highnote.com/docs/developers/sdks/issuing/card-viewer-sdk Installs the Highnote Card Viewer SDK using yarn. This is an alternative method for JavaScript package manager installations. ```bash yarn add @highnoteplatform/card-viewer ``` -------------------------------- ### POST /graphql (CreateCardProduct) Source: https://docs.highnote.com/docs/issuing/accounts/onboarding/onboard-an-account Creates a new card product in the Test environment, which is a prerequisite for onboarding account holders. ```APIDOC ## POST /graphql ### Description Creates a new card product configuration to be used for issuing cards. ### Method POST (GraphQL Mutation) ### Endpoint /graphql ### Request Body - **input** (CreateCardProductInput) - Required - Object containing card product details including name, usage, and vertical. ### Request Example { "query": "mutation CreateCardProduct($input: CreateCardProductInput!) { createCardProduct(input: $input) { __typename ... on CardProduct { id name usage } ... on UserError { errors { errorPath code description } } } }", "variables": { "input": { "cardProduct": { "name": "My Test Product", "usage": "VERTICAL_USAGE", "vertical": "CARD_VERTICAL" } } } } ### Response #### Success Response (200) - **id** (string) - The unique identifier of the created card product. - **name** (string) - The name of the card product. - **usage** (string) - The usage type of the product. #### Response Example { "data": { "createCardProduct": { "__typename": "CardProduct", "id": "CARD_PRODUCT_ID", "name": "My Test Product", "usage": "MULTI_USE" } } } ``` -------------------------------- ### GET /installments/eligibility Source: https://docs.highnote.com/docs/api-reference/input Endpoints to check installment eligibility and filter existing installment agreements. ```APIDOC ## GET /installments/eligibility ### Description View installment eligibility for specific transaction events. ### Method GET ### Query Parameters - **cardTransactionEventIds** ([ID!]!) - Required - List of transaction event IDs (1-20). ### Response #### Success Response (200) - **eligibility** (Object) - Eligibility details for the provided transactions. ``` -------------------------------- ### CreateCardProductInstallmentCreditPlan Source: https://docs.highnote.com/docs/api-reference/input Creates an Installment Credit Plan for a Card Product. ```APIDOC ## POST /cardProducts/{productId}/installmentCreditPlans ### Description Creates a `CreditPlan` for a `CardProduct` with a `BalanceType` of `INSTALLMENT`, based on a `CreditPlanTemplate`. ### Method POST ### Endpoint /cardProducts/{productId}/installmentCreditPlans ### Parameters #### Path Parameters - **productId** (ID!) - Required - The id for the `CardProduct` to use when creating this `CreditPlan`. #### Request Body - **name** (String!) - Required - The name for this `CreditPlan`. Supports up to 255 alphanumeric characters. Does not need to be unique. - **creditPlanTemplateId** (ID!) - Required - The id for the `CreditPlanTemplate` to use when creating this `CreditPlan`. Must have a `CreditBalanceType` of `INSTALLMENT`. - **minimumPrincipalAmount** (AmountInput) - Optional - The minimum cleared `Amount` a `Transaction` can have to be eligible to convert into installments. Optional; if included, will be validated against the provided `CreditPlanTemplate`. - **maximumPrincipalAmount** (AmountInput) - Optional - The maximum cleared `Amount` a `Transaction` can have to be eligible to convert into installments. Optional; if included, will be validated against the provided `CreditPlanTemplate`. - **numberOfInstallmentPeriods** (UnsignedInt!) - Required - The number of periods for an `InstallmentAgreement` based on this `CreditPlan`. - **fee** (CreditPlanFeeInput) - Optional - The fee configuration for this `CreditPlan`. ### Request Example ```json { "name": "Installment Plan", "creditPlanTemplateId": "cpt_installment_123", "minimumPrincipalAmount": { "amount": 10000, "currencyCode": "USD" }, "numberOfInstallmentPeriods": 12, "fee": { "fixedAmount": { "amount": 500, "currencyCode": "USD" }, "percentage": 1.0 } } ``` ### Response #### Success Response (200) - **creditPlanId** (ID!) - The ID of the newly created Installment Credit Plan. #### Response Example ```json { "creditPlanId": "cp_install_abcde" } ``` ``` -------------------------------- ### ProvisionAccountHolder Input Variables Source: https://docs.highnote.com/docs/issuing/accounts/onboarding/onboard-an-account Example JSON input variables for the ProvisionAccountHolder mutation, specifying the actions to perform and the necessary configuration for each step. ```json { "input": { "idempotencyKey": "IDEMPOTENCY-KEY", "accountHolderId": "og_ah02cac722541e144ab2beace82b9db33cca", "actions": [ "CREATE_APPLICATION", "ISSUE_FINANCIAL_ACCOUNT", "ISSUE_PAYMENT_CARD" ], "actionInput": { "createAccountHolderCardProductApplicationInput": { "cardProductId": "pd_63074611593b4967a74b632089e98f77", "cardHolderAgreementConsent": { "consentTimestamp": "2024-11-12T16:20:15.657Z", "primaryAuthorizedPersonId": "ps_ap01583eb308f15f4cb181689e8d2b6c2ddc" } }, "issueFinancialAccountForApplicationInput": { "name": "Fianancial Account Name" }, "issuePaymentCardForFinancialAccountInput": { "options": { "activateOnCreate": true, "expirationDate": "2026-01-01T23:59:59Z" } } } } } ``` -------------------------------- ### Query Installment Agreement Details (GraphQL) Source: https://docs.highnote.com/docs/issuing/credit/revolving/credit-plans-bnpl This GraphQL query retrieves comprehensive details about an installment agreement, including its ID, period start, status, associated credit plan information, payment details, and remaining balances. It requires an installment agreement ID as input. ```graphql query nodeInstallmentAgreement($id: ID!) { node(id: $id) { __typename ... on InstallmentAgreement { id installmentAgreementPeriodStart status agreement { creditPlan { __typename id name status planType balanceType riskBasedPricingPolicy { isRiskBased } percentageOfCreditLimit effectiveFromDate effectiveThroughDate feeSchedule { id feeConfigurations { feeActivityType feeChargeRules { value { __typename ... on FixedFeeChargeValue { amount { value currencyCode } } ... on VariableFeeChargeValue { basisPoints } } } } } createdAt updatedAt } details { principalDuePerPeriod { value currencyCode } feesChargedPerPeriod { value currencyCode } totalCost { value currencyCode } totalFees { value currencyCode } totalPrincipal { value currencyCode } } snapshot { asOf installmentPaymentsCompleted { principalBalancePaid { value currencyCode } feesPaid { value currencyCode } numberOfInstallmentsCompleted } installmentPaymentsRemaining { principalBalanceRemaining { value currencyCode } estimatedFeesRemaining { value currencyCode } numberOfInstallmentsRemaining } __typename } transactionEvent { __typename ... on ClearingEvent { id approvedAmount { value currencyCode } } } createdAt updatedAt } } } ``` -------------------------------- ### Authorize Payment Method Token Result Example Source: https://docs.highnote.com/docs/acquiring/payments/credential-on-file/cof-installments Example JSON response for a successful `authorizePaymentMethodToken` mutation, showing the transaction ID, network transaction identifier, and detailed installment payment information. ```json { "data": { "authorizePaymentMethodToken": { "transaction": { "id": "acqpt_01", "networkTransactionIdentifier": "532675987658354", "installmentPayment": { "__typename": "MerchantManagedInstallmentPayment", "totalAmount": { "__typename": "Amount", "value": 6000, "currencyCode": "USD", "decimalPlaces": 2 }, "numberOfInstallments": 6, "paymentAmount": { "__typename": "Amount", "value": 1000, "currencyCode": "USD", "decimalPlaces": 2 }, "frequency": "MONTHLY", "firstPaymentDate": "2025-01-15", "paymentNumber": 1, "fundedAmount": { "__typename": "Amount", "value": 0, "currencyCode": "USD", "decimalPlaces": 2 } } } } } } ``` -------------------------------- ### POST /graphql (CreateUSBusinessAccountHolder) Source: https://docs.highnote.com/docs/issuing/accounts/onboarding/onboard-an-account Creates a new US business account holder by providing business profile details, authorized personnel, and beneficial ownership information. ```APIDOC ## POST /graphql ### Description Creates a new US business account holder. This mutation requires detailed information about the business, its primary authorized person, and beneficial owners. ### Method POST ### Endpoint /graphql ### Parameters #### Request Body - **input** (CreateUSBusinessAccountHolderInput) - Required - The object containing businessProfile and primaryAuthorizedPerson details. ### Request Example { "input": { "primaryAuthorizedPerson": { "name": { "givenName": "Bill", "familyName": "Someone" }, "email": "foo@example.com", "dateOfBirth": "1980-09-01", "percentageOwnership": 25, "authorizingPersonTitle": "PRESIDENT" }, "businessProfile": { "name": { "legalBusinessName": "Foo Inc.", "doingBusinessAsName": "Foo Inc." }, "businessType": "PARTNERSHIP", "website": "https://www.foowebsite.com" } } } ### Response #### Success Response (200) - **id** (String) - The unique identifier of the created account holder. - **externalId** (String) - The external reference ID. - **createdAt** (String) - Timestamp of creation. #### Response Example { "data": { "createUSBusinessAccountHolder": { "id": "acc_12345", "externalId": "ext_98765", "createdAt": "2023-10-27T10:00:00Z" } } } ``` -------------------------------- ### Create Account Holder Card Product Application via GraphQL Source: https://docs.highnote.com/docs/issuing/templates/fleet-credit This mutation initiates a new card product application for an account holder. It requires an input object containing the account holder ID, card product ID, and consent details, returning the application state and ID upon success. ```graphql mutation createAccountHolderCardProductApplication($input: CreateAccountHolderCardProductApplicationInput!) { createAccountHolderCardProductApplication(input: $input) { __typename ... on AccountHolderCardProductApplication { id applicationState { status } updatedAt createdAt } ... on UserError { errors { errorPath code description } } } } ``` ```json { "input": { "accountHolderId": "ACCOUNT_HOLDER_ID", "cardProductId": "CARD_PRODUCT_ID", "cardHolderAgreementConsent": { "primaryAuthorizedPersonId": "PRIMARY_AUTHORIZED_PERSON_ID", "consentTimestamp": "2021-12-22T17:10:55.662Z" } } } ``` -------------------------------- ### Charge Payment Card Result Example Source: https://docs.highnote.com/docs/acquiring/payments/credential-on-file/cof-installments Example successful result from the `chargePaymentCard` mutation. This JSON structure shows the transaction details, including the transaction ID, network transaction identifier, and installment payment information. ```json { "data": { "chargePaymentCard": { "transaction": { "id": "acqpt_01", "networkTransactionIdentifier": "532675987658354", "installmentPayment": { "__typename": "MerchantManagedInstallmentPayment", "totalAmount": { "value": 6000, "currencyCode": "USD", "decimalPlaces": 2 }, "numberOfInstallments": 6, "paymentAmount": { "value": 1000, "currencyCode": "USD", "decimalPlaces": 2 }, "frequency": "MONTHLY", "firstPaymentDate": "2025-01-15", "paymentNumber": 1, "fundedAmount": { "value": 0, "currencyCode": "USD", "decimalPlaces": 2 } } } } } } ``` -------------------------------- ### Configure ChargePaymentCard Variables Source: https://docs.highnote.com/docs/acquiring/payments/credential-on-file/cof-payments Example variable structures for both Customer-Initiated (CIT) and Merchant-Initiated (MIT) transactions. CIT requires 'intendToStore: true', while MIT requires the 'networkTransactionIdentifier' from a previous transaction. ```json { "input": { "paymentCard": { "cardNumber": "customer card number", "expiryYear": "customer card expiry year", "expiryMonth": "customer card expiry month", "securityCode": "customer card security code" }, "amount": { "value": 100, "currencyCode": "USD" }, "paymentInitiator": "CUSTOMER_INITIATED_VIA_WEB", "externalCredentialOnFile": { "intendToStore": true } } } ``` ```json { "input": { "paymentCard": { "cardNumber": "customer card number", "expiryYear": "customer card expiry year", "expiryMonth": "customer card expiry month", "securityCode": "customer card security code" }, "amount": { "value": 100, "currencyCode": "USD" }, "paymentInitiator": "MERCHANT_INITIATED_UNSCHEDULED", "externalCredentialOnFile": { "networkTransactionIdentifier": "network-transaction-identifier" } } } ``` -------------------------------- ### Charge Network Token Input Variables Source: https://docs.highnote.com/docs/acquiring/payments/credential-on-file/cof-installments Example JSON input variables for the ChargeNetworkToken mutation, demonstrating the structure for network tokenization and installment payment details. ```json { "input": { "networkToken": { "cardNumber": "4000000000000002", "expiryYear": "29", "expiryMonth": "12", "networkTokenization": { "cryptogram": "test-cryptogram" } }, "merchantAcceptorId": "acqma_01", "amount": { "value": 1000, "currencyCode": "USD" }, "idempotencyKey": "NEW_UUID_v4", "paymentInitiator": "MERCHANT_INITIATED_INSTALLMENT", "externalCredentialOnFile": { "networkTransactionIdentifier": "532675987658354" }, "installmentPayment": { "totalAmount": { "value": 6000, "currencyCode": "USD" }, "numberOfInstallments": 6, "paymentAmount": { "value": 1000, "currencyCode": "USD" }, "frequency": "MONTHLY", "firstPaymentDate": "2025-01-15", "paymentNumber": 2, "fundedAmount": { "value": 1000, "currencyCode": "USD" }, "firstInstallmentPaymentTransactionId": "acqpt_01" } } } ``` -------------------------------- ### Authorize Payment Method Token Input Variables Source: https://docs.highnote.com/docs/acquiring/payments/credential-on-file/cof-installments Example JSON input variables for the authorizePaymentMethodToken mutation, including installment payment details and idempotency keys. ```json { "input": { "paymentMethodTokenId": "tkpmc_01", "merchantAcceptorId": "acqma_01", "amount": { "value": 1000, "currencyCode": "USD" }, "idempotencyKey": "NEW_UUID_v4", "paymentInitiator": "MERCHANT_INITIATED_INSTALLMENT", "installmentPayment": { "totalAmount": { "value": 6000, "currencyCode": "USD" }, "numberOfInstallments": 6, "paymentAmount": { "value": 1000, "currencyCode": "USD" }, "frequency": "MONTHLY", "firstPaymentDate": "2025-01-15", "paymentNumber": 2, "fundedAmount": { "value": 1000, "currencyCode": "USD" }, "firstInstallmentPaymentTransactionId": "acqpt_01" } } } ``` -------------------------------- ### POST /graphql (createAccountHolderCardProductApplication) Source: https://docs.highnote.com/docs/issuing/templates/consumer-charge Creates a new card product application for an account holder, initiating the decisioning process. ```APIDOC ## POST /graphql ### Description Submits an application for an account holder to obtain a specific card product. ### Method POST (GraphQL Mutation) ### Endpoint /graphql ### Request Body - **input** (Object) - Required - Application details. - **accountHolderId** (String) - Required - ID of the account holder. - **cardProductId** (String) - Required - ID of the card product. - **cardHolderAgreementConsent** (Object) - Required - Consent details. ### Request Example { "input": { "accountHolderId": "ACCOUNT_HOLDER_ID", "cardProductId": "CARD_PRODUCT_ID", "cardHolderAgreementConsent": { "primaryAuthorizedPersonId": "PRIMARY_AUTHORIZED_PERSON_ID", "consentTimestamp": "2021-12-22T17:10:55.662Z" } } } ### Response #### Success Response (200) - **id** (String) - The unique ID of the created application. - **applicationState** (Object) - Current status of the application. #### Response Example { "data": { "createAccountHolderCardProductApplication": { "id": "APPLCATION_ID", "applicationState": { "status": "PENDING" } } } } ``` -------------------------------- ### Authorize Payment Card Input Variables Source: https://docs.highnote.com/docs/acquiring/payments/credential-on-file/cof-installments Example JSON input variables for the AuthorizePaymentCard mutation, demonstrating how to structure payment card details, merchant information, and installment payment parameters. ```json { "input": { "paymentCard": { "cardNumber": "4000000000000002", "expiryYear": "29", "expiryMonth": "12" }, "merchantAcceptorId": "acqma_01", "amount": { "value": 1000, "currencyCode": "USD" }, "idempotencyKey": "NEW_UUID_v4", "paymentInitiator": "MERCHANT_INITIATED_INSTALLMENT", "externalCredentialOnFile": { "networkTransactionIdentifier": "532675987658354" }, "installmentPayment": { "totalAmount": { "value": 6000, "currencyCode": "USD" }, "numberOfInstallments": 6, "paymentAmount": { "value": 1000, "currencyCode": "USD" }, "frequency": "MONTHLY", "firstPaymentDate": "2025-01-15", "paymentNumber": 2, "fundedAmount": { "value": 1000, "currencyCode": "USD" }, "firstInstallmentPaymentTransactionId": "acqpt_01" } } } ``` -------------------------------- ### Example GraphQL Response for Application Details Source: https://docs.highnote.com/docs/issuing/credit/simulations/sim-underwriting-decisions This is an example of a successful response from the `GetAccountHolderCardProductApplication` GraphQL query. It includes the application's ID, status, card product information, adverse action reasons, and detailed account holder and underwriting verification data. The structure mirrors the query, providing the requested fields. ```json { "data": { "node": { "id": "ACCOUNT_HOLDER_APPLICATION_ID", "applicationState": { "status": "DENIED" }, "cardProduct": { "id": "CARD_PRODUCT_ID", "name": "Test Credit Consumer Charge" }, "adverseActionReasons": [ { "code": "DELINQUENT_CREDIT_OBLIGATIONS", "description": "Delinquent past or present credit obligations" }, { "code": "INSUFFICIENT_INCOME", "description": "Income insufficient for the amount of credit requested" } ], "accountHolderSnapshot": { "accountHolderCurrent": { "id": "ACCOUNT_HOLDER_ID" }, "billingAddress": { "streetAddress": "123 Main Street" }, "currentVerification": { "status": "PASSED", "reason": "PASSED", "adverseActionReasons": null }, "dateOfBirth": "1980-09-01", "currentCreditUnderwritingVerification": { "__typename": "CreditUnderwritingVerification", "status": "DENIED", "decisionResults": [ "NO_LIMIT_SET", "CURRENT_DEBT_OBLIGATIONS", "RECENT_CHARGE_OFF", "RECENT_BANKRUPTCY" ], "reviewReasonDetails": null, "decision": { "__typename": "UnderwriterAdverseDecision", "adverseActionReasons": [ { "code": "DELINQUENT_CREDIT_OBLIGATIONS", "description": "Delinquent past or present credit obligations", "__typename": "AdverseActionReason" }, { "code": "INSUFFICIENT_INCOME", "description": "Income insufficient for the amount of credit requested", "__typename": "AdverseActionReason" } ] }, "decisionDate": "2022-10-12T23:53:52.860Z" } }, "applicationHistory": { "pageInfo": { "startCursor": "start-cursor", "endCursor": "end-cursor", "hasNextPage": false, "hasPreviousPage": false }, "edges": [ { "cursor": "some-cursor", "node": { "applicationState": { "status": "PENDING" } } }, { "cursor": "some-cursor", "node": { "applicationState": { ``` -------------------------------- ### Activate Installment Credit Plan Mutation Source: https://docs.highnote.com/docs/issuing/credit/revolving/credit-plans-bnpl This mutation activates a credit plan, making its rates and terms applicable to new financial accounts. You can optionally specify effective start and end dates. If not provided, the plan becomes effective immediately and remains active until a new plan for the same balance type is activated. ```APIDOC ## Activate Installment Credit Plan ### Description Activates a credit plan, making its rates and terms applicable to new financial accounts. Allows optional effective start and end dates. ### Method POST ### Endpoint `/graphql` ### Parameters #### Query Parameters None #### Request Body ```json { "query": "mutation ActivateCreditPlan($creditPlanId: ID!, $effectiveFromDate: Date, $effectiveThroughDate: Date) { activateCreditPlan(creditPlanId: $creditPlanId, effectiveFromDate: $effectiveFromDate, effectiveThroughDate: $effectiveThroughDate) { id activationDate createdAt status updatedAt feeScheduleAssociatedTo feeConfigurations { id feeChargeRules { id name order value { ... on FixedFeeChargeValue { amount { value } } } conditions { ... on FeeChargeRuleCountCondition { id description condition { ... on CountFeeCondition { operator value { count maximumCount } } } } } } } effectiveFromDate effectiveThroughDate createdAt updatedAt } }", "variables": { "creditPlanId": "creditPlanId_value", "effectiveFromDate": "YYYY-MM-DD", "effectiveThroughDate": "YYYY-MM-DD" } } ``` ### Request Example ```json { "query": "mutation ActivateCreditPlan($creditPlanId: ID!, $effectiveFromDate: Date, $effectiveThroughDate: Date) { activateCreditPlan(creditPlanId: $creditPlanId, effectiveFromDate: $effectiveFromDate, effectiveThroughDate: $effectiveThroughDate) { id activationDate createdAt status updatedAt feeScheduleAssociatedTo feeConfigurations { id feeChargeRules { id name order value { ... on FixedFeeChargeValue { amount { value } } } conditions { ... on FeeChargeRuleCountCondition { id description condition { ... on CountFeeCondition { operator value { count maximumCount } } } } } } } effectiveFromDate effectiveThroughDate createdAt updatedAt } }", "variables": { "creditPlanId": "crdpln_a1b2c3d4e5f67890", "effectiveFromDate": "2025-03-01", "effectiveThroughDate": "2025-12-31" } } ``` ### Response #### Success Response (200) - **id** (ID) - The unique identifier of the activated credit plan. - **activationDate** (ISO8601DateTime) - The date and time when the credit plan was activated. - **createdAt** (ISO8601DateTime) - The date and time when the credit plan was created. - **status** (String) - The current status of the credit plan (e.g., "ACTIVE"). - **updatedAt** (ISO8601DateTime) - The date and time when the credit plan was last updated. - **effectiveFromDate** (ISO8601DateTime or null) - The date and time from which the credit plan becomes effective. - **effectiveThroughDate** (ISO8601DateTime or null) - The date and time until which the credit plan remains effective. #### Response Example ```json { "data": { "activateCreditPlan": { "id": "crdpln_a1b2c3d4e5f67890", "activationDate": "2025-02-26T17:44:01.888Z", "createdAt": "2025-02-26T17:44:01.937Z", "status": "ACTIVE", "updatedAt": "2025-02-26T17:44:02.142Z", "effectiveFromDate": "2025-03-01T00:00:00.000Z", "effectiveThroughDate": "2025-12-31T23:59:59.999Z" } } } ``` ``` -------------------------------- ### Create Account Holder Card Product Application (GraphQL) Source: https://docs.highnote.com/docs/issuing/accounts/onboarding/onboard-an-account This GraphQL mutation is used to create an application for a card product for an account holder. It requires the account holder ID, card product ID, and optionally the primary authorized person ID for business accounts. The response includes the application ID and its status. ```graphql mutation createAccountHolderCardProductApplication( $input: CreateAccountHolderCardProductApplicationInput! ) { createAccountHolderCardProductApplication(input: $input) { __typename ... on AccountHolderCardProductApplication { id applicationState { status } updatedAt createdAt } ... on UserError { errors { errorPath code description } } } } ``` ```json { "input": { "accountHolderId": "ACCOUNT_HOLDER_ID", "cardProductId": "CARD_PRODUCT_ID", "cardHolderAgreementConsent": { "primaryAuthorizedPersonId": "PRIMARY_AUTHORIZED_PERSON_ID", "consentTimestamp": "2021-12-22T17:10:55.662Z" } } } ``` ```json { "data": { "createAccountHolderCardProductApplication": { "__typename": "AccountHolderCardProductApplication", "id": "APPLICATION_ID", "applicationState": { "status": "PENDING" }, "createdAt": "2021-07-07T23:22:30.475Z", "updatedAt": "2021-07-07T23:22:30.475Z" } }, "extensions": { "requestId": "REQUEST_ID" } } ``` -------------------------------- ### Example Variables for Transaction Event Query (JSON) Source: https://docs.highnote.com/docs/issuing/credit/revolving/credit-plans-bnpl This JSON object provides the necessary variables to execute the `installmentOffersForTransactionEvent` GraphQL query. It includes the `cardTransactionEventId` which identifies the specific transaction for which offers are being requested. ```json { "input": { "cardTransactionEventId": "te_23wpgf4xk41aa5k3971ak93eseb1sb6mt3" } } ``` -------------------------------- ### Lookup Application Details (GraphQL) Source: https://docs.highnote.com/docs/issuing/accounts/onboarding/onboard-an-account Queries for detailed information about a specific card product application, including its state, decision, expiration, and verification status. Requires an application ID as input. ```graphql query LookupApplication($id: ID!) { node(id: $id) { ... on AccountHolderCardProductApplication { __typename applicationState { status } decisionedAt expiresAt accountHolderSnapshot { ... on USPersonAccountHolderSnapshot { __typename currentVerification { status reason results { code description } } } } } } } { "id": "APPLICATION_ID" } ``` -------------------------------- ### Configure Live Environment Source: https://docs.highnote.com/docs/developers/sdks/issuing/secure-inputs-sdk-pins Illustrates how to switch the SDK from the default Test environment to the Live environment by setting the environment configuration property. ```typescript const { unmount } = await renderFields({ environment: "live", }); ``` -------------------------------- ### FindPaymentCard API Response Example Source: https://docs.highnote.com/docs/issuing/cards/issue/embedded-devices A sample JSON response returned by the API, containing the requested payment card data and metadata including request ID and rate limit information. ```json { "data": { "node": { "id": "cd_6f1a35648d7840959da75df91e292c34", "bin": "547203", "last4": "9174", "expirationDate": "2026-01-01T23:59:59Z", "network": "MASTERCARD", "status": "ACTIVE", "formFactor": "PHYSICAL", "externalPhysicalPaymentCardOrders": [ { "id": "ffext_227c8ef9d7037e4c26b87471cc10865cc1", "embeddedDevice": { "formFactor": "WRISTBAND", "image": "https://example.com/device-image.png", "name": "MyDevice", "serialNumber": "123abc", "variant": "Plastic" } } ] } }, "extensions": { "requestId": "3a31dd25-aa8d-9b58-9393-64b8da6450c0", "rateLimit": { "cost": 2, "limit": 60060, "remaining": 60056 } } } ``` -------------------------------- ### GraphQL Variables: Get Card Product With Applications Source: https://docs.highnote.com/docs/developers/api/api-searching-the-api Example variables to be used with the GetCardProductWithApplications GraphQL query. These variables specify the target card product ID and can include filters to narrow down the search for applications. ```json { "id": "CARD_PRODUCT_ID", "searchFilter": { "id": { "equals": "APPLICATION_ID" } } } ``` -------------------------------- ### Switch to Live Environment (JavaScript) Source: https://docs.highnote.com/docs/developers/sdks/acquiring/checkout-sdk Demonstrates how to configure the Secure Inputs SDK to use the 'live' environment instead of the default 'test' environment. This is a crucial step when moving from development to production. ```javascript const { unmount } = await renderCheckout({ // Set this to `live` environment: "live", // ... }); ``` -------------------------------- ### Attach Fee to Credit Plan Variables (JSON) Source: https://docs.highnote.com/docs/issuing/credit/revolving/credit-plans-bnpl Example JSON payload for the attachFeeToCreditPlan mutation. It specifies the credit plan ID and the fee schedule ID to be attached. This payload is used as input for the mutation. ```json { "input": { "creditPlanId": "crppn_7d5260aeaaaa4620bd55f59808f6a238", "fee": { "scheduleId": "fxsch_22a3ef6960b5144b9997efe43072c1f9a1" } } } ``` -------------------------------- ### Notification Activation Payload (JSON) Source: https://docs.highnote.com/docs/developers/events/events-reference Example JSON payload for a notification activation event. This event is sent to verify webhook setup and is triggered upon initial creation or reactivation of a webhook. It includes a simple ping-pong structure. ```json { "data": { "node": { "__typename": "NotificationEvent", "createdAt": "2022-10-21T19:14:46.664Z", "id": "nee_b0f306cc171b44ef89223ca68a0da569", "name": "NOTIFICATION_ACTIVATION", "node": { "__typename": "NotificationTargetActivationEvent", "ping": "pong" } } }, "extensions": { "signatureTimestamp": 1666379691368 } } ``` -------------------------------- ### Configure Card Viewer Environment Source: https://docs.highnote.com/docs/developers/sdks/issuing/card-viewer-sdk Initializes the Card Viewer SDK and sets the environment to 'live' for production requests. This function call requires a valid client token and payment card ID. ```javascript const { unmount } = await renderFields({ clientToken: "client token from server", paymentCardId: "PAYMENT_CARD_ID", // Set this to `live` environment: "live", onError: handleError, elements, }); ``` -------------------------------- ### Initialize Checkout SDK Source: https://docs.highnote.com/docs/developers/sdks/acquiring/checkout-sdk Initializes the checkout UI using the renderCheckout function, which returns a promise and unmount method. ```APIDOC ## Initialize Checkout ### Description Initializes the Checkout SDK by rendering the UI into a specified selector. It handles tokenization success and error callbacks. ### Method N/A (Client-side SDK) ### Parameters - **selector** (string) - Required - The DOM element ID where the checkout UI will be rendered. - **clientToken** (string) - Required - The client token fetched from your server. - **onTokenizeSuccess** (function) - Optional - Callback triggered upon successful tokenization; receives a payload with the payment token. - **onTokenizeError** (function) - Optional - Callback triggered if tokenization fails. ### Request Example ```javascript renderCheckout({ selector: "#checkoutForm", clientToken: "client_token_here", onTokenizeSuccess: (payload) => { console.log(payload.token); } }); ``` ``` -------------------------------- ### Account Holder Creation Input Variables Source: https://docs.highnote.com/docs/issuing/templates/consumer-charge Example JSON payload containing the necessary fields to create a US person account holder, including personal details, contact information, and credit risk data. ```json { "input": { "personAccountHolder": { "email": "gerrytest1@abc.com", "name": { "givenName": "Gerry", "familyName": "Wolfe" }, "billingAddress": { "streetAddress": "123 Main Street", "postalCode": "60654", "locality": "Chicago", "region": "IL", "countryCodeAlpha3": "USA" }, "phoneNumber": { "countryCode": "1", "number": "5555555555", "label": "MOBILE", "extension": "312" }, "identificationDocument": { "socialSecurityNumber": { "number": "111-11-1111", "countryCodeAlpha3": "USA" } }, "personCreditRiskAttributes": { "totalAnnualIncome": { "value": "1000", "currencyCode": "USD" }, "currentDebtObligations": { "value": "1000", "currencyCode": "USD" }, "employmentStatus": "EMPLOYED" }, "dateOfBirth": "1980-09-01", "externalId": "some-id" } } } ``` -------------------------------- ### Activate Installment Agreement Mutation Source: https://docs.highnote.com/docs/issuing/credit/revolving/credit-plans-bnpl This mutation is used to activate an installment agreement for a specific cleared transaction. It applies the selected installment plan payment terms to the transaction record. ```graphql mutation ActivateInstallmentAgreement($transactionId: ID!, $planId: ID!) { activateInstallmentAgreement(transactionId: $transactionId, planId: $planId) { agreement { id status effectiveDate } } } ``` -------------------------------- ### View Credit Card Product Configuration (GraphQL) Source: https://docs.highnote.com/docs/issuing/templates/commercial-credit This GraphQL query retrieves the credit configuration for a specific card product in the Test environment. It includes details about account aging, minimum payment, repayment, interest, and billing cycle settings. The query requires a card product ID as input. ```graphql query GetCardProductWithCreditConfiguration($id: ID!) { node(id: $id) { __typename ... on CardProduct { id creditConfiguration { ... on CreditCardProductConfiguration { accountAging { delinquentInDays suspendedInDays chargeOffInDays lateFeeGracePeriodInDays } minimumPayment { percentage thresholdAmount { value currencyCode } includesPastDueAmount includesPastDueAmount includesInterestAmount includesFeesCharged } repayment { repaymentWaterfall } interest { includesPurchase includesFees } billingCycleConfiguration { billingCyclePeriod billingCycleGracePeriodType billingCycleGracePeriodInDays } } } } } } ```