Linkly
On this page
Linkly is an integrated EFTPOS payment solution for StoreConnect POS, enabling card payments and refunds directly through Linkly-connected terminals. Linkly is a POS-only payment method and does not support online checkout.
Where Linkly can be used
Linkly is an Australian company, but the technology can be enabled beyond Australia. StoreConnect does not restrict Linkly to any country. Check with Linkly whether the service is available in your location.
Supported features
- POS card payments (integrated EFTPOS)
- POS refunds
- Surcharge support
- Crash recovery for incomplete transactions
What you need
- A Linkly Cloud account with API credentials (one set per register)
- Linkly-compatible EFTPOS terminal(s) connected to Linkly Cloud. Some major banks (including NAB, Westpac) can provide hardware that integrates with Linkly.
- Outlets configured in StoreConnect
:::note Each register requires a separate set of Linkly Cloud API credentials (API key and API secret). Contact your Linkly account manager to obtain credentials for each register you intend to use. :::
Configure Linkly in StoreConnect
Add the payment provider
- In StoreConnect, go to Settings > Payments > Payment providers.
- Select New. Complete the fields as follows, then Save.
| StoreConnect field | Value |
|---|---|
| Name | Linkly |
| Provider | Linkly |
| API Mode | sandbox / production |
Add API credentials
Each register uses a separate API credential pair, drawn from a pool you define on the payment provider record. You must add one credential pair to the pool for every register that will use Linkly.
Add the following to the API Options field, with one entry per register:
```yaml
unclaimed_api_creds: - api_key: “YOUR_API_KEY” api_secret: “YOUR_API_SECRET” ```
For multiple registers, add one entry per register:
```yaml
unclaimed_api_creds: - api_key: “REGISTER_1_API_KEY” api_secret: “REGISTER_1_API_SECRET” - api_key: “REGISTER_2_API_KEY” api_secret: “REGISTER_2_API_SECRET” ```
When a register pairs with the terminal, a credential is automatically claimed from this pool and assigned to that register. If pairing fails, the credential is returned to the pool.
Configure outlets
To enable Linkly at specific outlets, add the outlet SFIDs to the API Options field:
```yaml
pos_outlets: “YOUR_OUTLET_SFID”: true ```
To find an outlet SFID, open the outlet record in StoreConnect. The SFID appears in the browser URL, for example: a24ao000001lE6zAAE.
Enable Linkly as a store variable
- In StoreConnect, go to your store and open the Store Variables section.
- Select New.
- Enter the following values, then Save.
| Field | Value |
|---|---|
| Name | POS: Linkly payments |
| Key | pos.payment_options.card_linkly_integrated.enabled |
| Value | true |
Pair your terminal
Each register must pair with a Linkly EFTPOS terminal before taking payments. Pairing assigns a unique credential from the pool to the register.
- On your EFTPOS terminal, generate a 6-digit pair code. The exact steps vary by terminal model, so refer to your terminal documentation or contact Linkly support. On many terminals, you can access this via Func > 7410 > Terminal Setup > Cloud Comms.
- In the POS, go to Settings > Linkly.
- Enter the 6-digit pair code.
- Select Pair terminal.
- When the status shows Paired & Connected, the terminal is ready to use.
:::note The pair code expires after a short time. If pairing fails, generate a new code on the terminal and try again. :::
Terminal connection states
| Status | Meaning |
|---|---|
| Paired & Connected | Terminal is paired and the session token is active |
| Disconnected | Terminal is paired but the session token has expired — select Reconnect |
| Pairing in progress | Pairing request sent, waiting for terminal confirmation |
| No setup | Terminal has not been paired on this register |
Linkly bearer tokens refresh automatically in the background 15 minutes before they expire. This prevents the daily timeout that previously required cashiers to re-pair their terminal after overnight inactivity. If a token does expire before the automatic refresh completes, select Reconnect to restore the session without re-pairing.
To disconnect a terminal from a register, select Unpair in POS Settings. The register’s credential is returned to the unclaimed pool and can be used by another register.
Take a payment
- Add items to the cart and proceed to checkout.
- Select Linkly as the payment method.
- Confirm the payment amount.
- Select Take payment.
- The EFTPOS terminal prompts the customer to tap, insert, or swipe their card.
- The POS polls the terminal automatically until the transaction completes.
- On success, the payment is recorded and the order is finalized.
You can select Cancel transaction at any point while waiting for the terminal.
Failed payments
When Linkly reports that a payment did not go through, the POS shows Transaction failed with
Linkly’s reason underneath, for example PINpad Offline — no payment processed. No payment is
recorded against the order, and the Linkly Transaction Recovery prompt does not offer the
transaction later.
Transaction failed covers every result that is neither approved nor cancelled, so the reason tells you what to do next:
| Reason | What it means | What to do |
|---|---|---|
PINpad Offline |
Linkly could not reach the terminal. | Bring the terminal back online, then take the payment again. |
| The card was declined | The terminal reached the bank, and the bank refused the card. | Ask the customer for another card, or take the payment with a different payment method. |
If the customer says they were charged anyway, check whether the customer was charged before you take the payment again, so they are not charged twice.
Check whether the customer was charged
A charge that StoreConnect did not record shows up in the terminal’s own transaction list with no
matching payment in Salesforce. Each Linkly payment in Salesforce stores the terminal’s
transaction number in the Response field, for example RRN: 123456789012.
- Open the terminal’s transactions for the day of the sale in your Linkly or acquiring bank portal.
- Find the approved transaction that matches the sale’s amount and time.
- Compare the transaction’s RRN with the RRNs in the Response field of the Linkly payments taken on that register in Salesforce.
- If the RRN matches an existing payment, the charge is already recorded. Do not add it again.
- If no payment has that RRN, open the order in Salesforce and create a payment
(
s_c__Payment__c) in the Payments related list, using the values in the table below.
| Field | Value |
|---|---|
| Payment Provider | Your Linkly payment provider |
| Amount | The amount the terminal charged, including any surcharge |
| Status | success |
| Response | The terminal’s RRN, for example RRN: 123456789012 |
The payment now appears in the order’s Payments related list with the terminal’s RRN in the Response field, so the next person reconciling that register finds the charge already recorded.
Take the payment again
:::warning
Take the payment again from the POS, not by entering the amount on the terminal. StoreConnect never receives a sale started on the terminal, so the customer is charged while the order still shows the amount owing.
:::
- Check the terminal is switched on and connected to the network.
- On the POS checkout, select Take payment again.
When the terminal approves the card, the POS records the payment against the order and the checkout no longer shows an amount owing.
Process a refund
- Open the original order and initiate a return.
- Select Refund and choose Linkly as the payment method.
- Confirm the refund amount.
- The terminal prompts the customer to present their card.
- On success, the refund is recorded against the original order.
Transaction recovery
When you send a payment to a Linkly terminal, the POS saves it on the register as pending before the terminal replies. If the reply never arrives, because the browser was closed, the network dropped, or the app crashed part way through, the terminal may have taken the payment while the POS never recorded it.
The next time you sign in on that register with the terminal paired, the Linkly Transaction Recovery prompt opens and checks that transaction with Linkly Cloud. The prompt only ever refers to a payment or refund that was started from the POS. What it offers depends on what Linkly reports.
| What Linkly reports | What the prompt says | What to do |
|---|---|---|
| The payment completed | A previous payment of [amount] was completed on the terminal but not recorded in the POS. | Select Record Payment. |
| The payment did not complete | The previous payment of [amount] was not completed on the terminal. No charge was made. | Select OK. Nothing was charged, so take the payment again. |
| Linkly could not be reached | An error message, such as a network or authentication problem | Select Retry. Select Dismiss only if you intend to reconcile the transaction yourself. |
The prompt handles a recovered refund the same way, and names it as a refund rather than a payment.
Record Payment does not charge the customer again
Record Payment sends nothing to the terminal. Before the button is offered at all, the POS asks Linkly whether the transaction completed, which is the Checking step you see while the prompt opens. The button appears only when Linkly confirms the payment went through. Selecting it records that existing payment against the order and syncs the order to Salesforce.
:::warning
Select Dismiss on a completed payment only if you are going to reconcile it manually. The customer has already been charged, and dismissing the prompt leaves the order unrecorded in the POS, so the sale and the money will not match.
:::
Where the payment carried a Linkly surcharge, the surcharge is added to the order as part of recovery, so the recovered order matches what the customer was charged.
If the order cannot be found
The prompt records the payment against the order held on that register. If that order is no longer on the device, the prompt reports that the order was not found locally and asks you to reconcile the transaction manually, and Record Payment is withdrawn. Find the customer’s order in Salesforce and add the payment there.
Pending transactions expire after 7 days
A pending transaction older than 7 days is discarded without a prompt. A register that has been out of use for longer than that will not offer to recover a transaction, so anything unresolved from that long ago has to be reconciled manually.
If the prompt does not appear
The prompt depends on the terminal being paired, so if the terminal was unpaired when the POS restarted, pair it again in Settings > Linkly. The prompt opens as soon as pairing completes. If the terminal is paired, the payment is less than 7 days old, and still no prompt appears, then no pending transaction is saved on that device. Reconcile the payment against the order in Salesforce instead.
Surcharge
To apply a surcharge for Linkly card payments, configure a surcharge product on the payment provider record. See Passing payment surcharges to customers for details.
Was this article helpful?
Thanks for your feedback! It helps us improve our docs.