Track transactions with external IDs
One of the required fields of any transaction request is the externalId
. This value allows you to track a transaction using a unique value and keep a record to assist a merchant with reconciliation. Clover also records this value so any transaction can be examined for issues in the future. There are two types of transaction identifiers used by integrated apps:
externalId
- a required UUID for tracking transactions in Clover systemsexternalReferenceId
- an optional UUID (sometimes used for invoice or PO tracking) that flows through to external reporting systems
Best practices
Generate the ID using the SDK utility
Uniqueness of the IDs is essential. Each example app shows a simple method for creating an ID in the recommended format (a string of at least thirteen alphanumeric characters).
- Remote Pay Android—
MainActivity.java
- Remote Pay Cloud—
Register.js
- Remote Pay iOS—
RegisterViewController.swift
- Remote Pay Windows—
CloverExamplePOSForm.cs
Save the external ID immediately
To ensure the value is always available, it is recommended that POS apps save the external ID as soon as possible and not wait for the transaction response from Clover. If Clover does not return a response for some reason, the POS will still have a record that the transaction was attempted.

Best practices for external reference IDs
Merchants may use non-Clover reporting tools to view their settlement information. To provide traceability of a given transaction, you must set theexternalReferenceId
to a unique ID that is 12 or fewer characters (this length is a limitation of other systems the merchant may use).
Save the external reference ID immediately
To ensure the value is always available, you must ensure that POS apps save the reference ID as soon as possible and not wait for the transaction response from Clover. If Clover doesn't return a response for some reason, your POS app will still have a record that the transaction was attempted.

Updated 2 months ago