Home / Acquiring / Accept Payments
Highnote accepts online payments through the following payment networks:
Payment Network | Rail | Payment Instrument |
---|---|---|
Visa | Credit and debit | Card |
Mastercard | Credit and debit | Card |
American Express | Credit | Card |
Discover | Credit | Card |
To maintain PCI SAQ-A compliance, we recommend using Highnote’s Secure Inputs SDK to build your payment form. The Secure Inputs SDK uses client tokens to request the Highnote API on your behalf. Secure Inputs will prevent PCI data from being sent through your server.
Follow the Secure Inputs SDK setup guide and add the following SDK snippet to your payment form:
Once a customer completes your payment form and the Secure Inputs SDK has returned a PaymentMethod
, you can process the payment.
For consumer purchases, the payment process uses the following steps:
These steps are outlined as follows:
In most cases, transactions can be authorized and captured in a single step. However, there are some scenarios where an authorization request may need to be done first. This is particularly true for transactions involving tips or delayed/partial shipments. Once the amount is finalized, a capture request can then be executed.
A payment transaction begins with the authorization of a payment card. You can use authorizations to capture transactions at the point of sale or schedule to capture the payment later for transactions with an authorization request.
There are two methods for authorizing a payment card:
Use the following mutation to verify the customer’s payment details and authorize a payment card:
After authorizing a payment card, you can use the following mutation to charge the customer's card:
A payment can only be canceled before Highnote captures the payment. When a payment is canceled before capture, no money has moved out of the cardholder's account, resulting in the funds being returned to their account balance.
Payments can be canceled by the cardholder, merchant, issuing bank, acquiring bank, or payment network. Payment cancellations are common in the following use cases:
Full and partial payment cancellations are supported for all card networks except American Express. For an overview of use cases for partial cancellations, see Cancel a partial amount.
To process a full cancellation, use the following mutation and ensure the value
input variable is equal to the full amount of the authorization:
Note: Partial cancellations are not supported for American Express.
Partial cancellations are common in the following use cases:
To process a partial cancellation, use the following mutation and enter the partial amount in the value
input variable field:
Capturing a payment transaction moves funds from the customer’s account to your merchant account. Full and partial captures are supported for all card networks except for American Express.
To capture a full amount, use the following mutation and ensure the value
input variable field reflects the full amount of the original authorization:
Note: Partial captures are not supported for American Express.
Partial captures are common in the following use cases:
To capture a partial amount, use the following mutation and enter a partial amount in the value
input variable field:
Note: Refunds can only be issued against captured and disbursed transactions.
Refunds are issued after a payment has been captured and funds have been disbursed. Highnote supports full and partial refunds. Multiple partial refunds can be done if the total of the refunds does not exceed the captured amount.
Use the following mutation to refund the full amount of a payment transaction:
To refund a partial amount, ensure the amount
value provided in the RefundPaymentTransaction
mutation does not exceed the authorizedAmount
.
Use the following mutation to refund a partial amount of a payment transaction. In the response payload, note the difference between the authorizedAmount
and refundedAmount
:
Use the following query to create a list view of all payment transactions:
Use the following query to find a single payment transaction: