FD1 Client Protocol
 
Library Developer Home FD1 Client Protocol Home Concepts Reading Data Writing Data Protocol Defined Servers Connect & Authenticate Proxies & Tunnels
Webhooks Programming Support Logging Minor Facts State Facts Response Format How To Guides eCommerce Sites Custom Point of Sale Customer Access Bulk Downloads Major APIs / Endpoints All Endpoints Products Sales SalesBuilder Session Sale Capture General Purpose Data Capture Devices Barcode Scanners Eftpos IoT Sensors Power Outlets Printing Scales Security Cameras Purchasing / Supply Side Purchase Orders Invoices Invoice Payments Document Capture Rare APIs / Endpoints SSL Certificates API Key Management Diagnositics Server to Client Messages Overview Resources / Objects Purchase Order Invoice Payable Invoice Payment Product Supplier Location Sale Lines Sale Delivery Details Sales Price Maps Employees Carriers Payments Product Kits Department 1 Customers

FD1 Eftpos Devices

These functions allow you to query available payment devices and to start payment transactions

Eftpos payment providers may impose restrictions on what your application must do. You must follow these requirements exactly and completely. Should Fieldpine detect non-compliance, your ability to invoke eftpos payments may be revoked.

Eftpos payment providers may require specific user interaction and screens during payment handling. We recommend you use the Fieldpine client side Javascript library to handle this phase as this meets all current requirements.

fd1.devices.get_eftpos_devices

Fetch allocated and potentially available eftpos devices

Example, fetching by direct key.
{
  a: "fd1.devices.get_eftpos_devices",
  q: {
    latitude: -34.892344,
    longitude: 174.99988872,
    location: 45
  }
}

Transaction Flow

Your CodeFieldpine Client SideData over WebsocketFieldpine Server
1 User clicks to request payment request_eftpos_payment »
2 Payment process begins
3 « eftpos_status_update
4 Eftpos transaction screen displayed
5 Status screen updated « eftpos_status_update
6 If cancel or other options selected update_eftpos_request »
7 Payment request complete
8 «eftpos_payment_complete Payment request complete
9 Transaction screen removed
10 Sale completed, etc

Steps 5 and 6 can occur multiple times, with a two way exchange of messages between client and server

fd1.devices.request_eftpos_payment

Starts a new payment request.

Available Fields

NameDescriptionExample
deviceidSpecific Eftpos pinpad to use.deviceid: "blue-pinpad"
purchaseamount Amount of payment purchaseamount: 39.95
cashamount Amount of cash out cashamount: 200.00
salephyskey

fd1.devices.eftpos_status_update

Sent from the server to advise the current status and/or invoke local functions

fd1.devices.update_eftpos_request

Sent from your code to advise changes to the payment transaction. For example, if the user clicks cancel to abort a payment request

fd1.devices.eftpos_payment_complete

Final status from an eftpos payment request.

fd1.devices.direct_eftpos_command

Direct control and interaction with pinpads in order to perform non purchase transactions such as login, reprint.

Available Fields

NameDescriptionExample
deviceidSpecific Eftpos pinpad to use.deviceid: "blue-pinpad"
commandSub Commandcommand: "logon"

fd1.devices.set_eftpos_device

Creates or alters a pinpad definition. This endpoint is rarely called, it is not part of normal payment flow

Available Fields

NameDescriptionExampleSmartpayWindcaveEftposNZLinkly
deviceidSpecific Eftpos pinpad to use.deviceid: "blue-pinpad"All
providerName of EFTpos vendor supplying this pinpad.provider: "smartpay"All
registeridInternal Register Idregisterid: "blue"
registernameregistername: "front counter"
businessnameShort name of business. Typically displayed on Pinpadbusinessname: "Bobs Bones"
loginnameUser name used for API authenticationloginname: "bb17"
loginpassPassword used for API authenticationloginpass: "secret"