Subscribers can enable their systems to let account holders send payments by check. Checks are funded by a FinancialAccount
. Checks greater than $2,000 USD must have a signature of the Primary Authorized Person linked to the FinancialAccount
.
Only checks greater than or equal to $2,000 require a signature.
Signatures must be saved in PNG or JPG format and attached to a FinancialAccount
. High-level steps are:
FinancialAccount
.To begin, create a check payment document upload session to associate a signature with a FinancialAccount
.
Next, upload the signature to Hignote. Signatures can be uploaded to Highnote one of two ways:
If you use the Highnote GraphQL API, the document upload process consists of the following steps:
Note: For compliance reasons, you must generate a client token to make requests directly from your client if you are not using a server or do not have access to one. See Client Tokens.
The Start mutation generates a session URL. Upload sessions expire 30 days from creation; and each session notifies you of any requirements your system needs to enforce to upload the file.
Use the following mutation to start a document upload session:
Note: Document upload links expire 5 minutes after creation. If the link expires, an error message is returned, and you must request a new link.
Each upload link created with this mutation represents a single upload file. If, for example, you are required to upload two signature files, you must create a unique link for each.
When creating upload links, the document upload session status transitions to PENDING
. You can use the uploadURL
field in the mutation's response to stream the document upload.
To create a document upload link, use the DOCUMENT_UPLOAD_SESSION_ID
from the startDocumentUploadSession
response for this mutation’s variable field:
After the signature has been uploaded, you can end the document upload session. When ending a session, the session status transitions to SUBMITTED
and no other actions can be taken. If more documentation is required, a new session must be started to upload the additional documents.
Use the following mutation to end a document upload session:
Refer to the check image below to see how physical check items map to API fields.
To begin a check payment, call the initiatePhysicalCheckPayment
mutation using a sufficiently funded FinancialAccount
and a recipient’s name and an address (ideally, a validatedAddressTokenId
).
Before initiating a check payment, Highnote recommends that you utilize the Address Validation service (below) to ensure the recipient’s address is correctly formatted and verified.
Steps are:
validateAddress
to check if the check payment address is valid.validatedAddressTokenId
representing the validated address.InitiatePhysicalCheckPayment
with the response token Id.You can specify the type of check and the shipping method when initiating a check payment. The check funding process takes 2-3 business days to complete, in addition to the stated mailing times.
The following shipping methods are supported:
Method | Timing | Carrier |
---|---|---|
STANDARD | 2-5 business days | USPS |
CERTIFIED | 2-5 business days | USPS |
EXPEDITED | 2 days | FEDEX or UPS |
OVERNIGHT | Next day | FEDEX or UPS |
You can validate the check payment address using the validateAddress
mutation. This mutation validates addresses using a CASS-certified service to ensure it is properly formatted to reduce possible shipping delays or returns.
The Highnote API returns an AddressValidationResult
response with a validated address token, or an error message explaining why the address is invalid.
Use the following mutation to initiate a check payment with a validatedAddressTokenId
:
While not recommended, you can use the following mutation to initiate a check payment with an unvalidated address.
To use a validated address instead, see Initiate physical check payment with validated address token (above).
Payments made by check follow an event lifecycle with the possible types outlined below. Your platform receives a notification event as each check payment transitions to a new type.
The Highnote transaction event and notification event for all check payment types is the CheckPaymentEvent.
Status | Description |
---|---|
PENDING_PROCESSING_BY_HIGHNOTE | The check has been initiated and is pending processing by Highnote. |
PROCESSED_BY_HIGHNOTE | The check has been processed by Highnote. |
FUNDING_PENDING | The check has been initiated and is pending funding. |
FUNDING_STARTED | The check funding has been initiated. |
FUNDING_COMPLETED | The check has been funded and is pending disbursement. |
FUNDING_DISBURSED | The funds have been disbursed to external accounts. |
PENDING_SHIPMENT | The check has been printed and is pending shipment. |
SHIPPED | The check has been shipped. |
COMPLETED | The check has been delivered, and cashed or deposited. |
VOIDED | The check has been voided. |
FAILED | The check has failed. The reason for the failure is included in the event. |
REVERSAL_INITIATED | The check has been reversed due to voiding or failure. |
REVERSAL_COMPLETED | The check reversal has been completed. |
Use the following mutations to query for one check payment or list multiple check payments.
Use the FinancialAccount.checkPayments
query to return a list of CheckPayments
. The query can return all check-related fields including the check image.
The following image maps API fields to the physical check:
legalBusinessName
or Personal account holder familyName
and givenName
amount
: InitiatePhysicalCheckPaymentInputrecipient
: InitiatePhysicalCheckPaymentInputmemo
: InitiatePhysicalCheckPaymentInput