Card terminals

Physical card terminals.

The object#

FieldTypeDescription
idread-onlyintegerNolaPro id.
inventorylocationidintegerInventorylocationid. Id only.
inventorylocationstring(20)The locationcode of the referenced inventorylocations, instead of the id. Send this or inventorylocationid, not both unless they agree.
codestring(255)Short code identifying the terminal wherever one is picked (POS, order payment).
descriptionstring(255)Free-form name of the terminal.
ipstring(45)Network address the payment middleware uses to reach the terminal device.
portintegerPort the payment middleware uses to reach the terminal device.
checkedoutread-onlybooleanTrue while a user has the terminal checked out for exclusive use. Managed by the check-out/check-in workflow, so it cannot be written through the API.
checkedoutuseridread-onlyintegerThe user who currently has the terminal checked out. Managed by the check-out workflow, so read-only.
checkedoutuserread-onlystring(50)The name of the user who currently has the terminal checked out.
checkacctidintegerReference to checkaccounts, by id. Write either this or checkacct.
checkacctstring(30)The name of the referenced checkaccounts, instead of the id. Send this or checkacctid, not both unless they agree.
cancelbooleanCancelled. NolaPro cancels rather than deletes, so a cancelled row is still readable.
entrydateread-onlystringWhen the record was created.
lastchangedateread-onlystringLast modification. Drives modifiedsince.
ccaccountidintegerReference to ccaccounts, by id. Write either this or ccaccount.
ccaccountstring(100)The name of the referenced ccaccounts, instead of the id. Send this or ccaccountid, not both unless they agree.
settingstextTerminal behavior options as a JSON object (timeouts, whether the customer name is sent to the device). Edited on the terminal setup screen. Stored as mediumtext, no practical length limit.
ccterminaltypeintegerWhat drives the terminal: 0 = a local device reached through the NolaPro payment middleware, 2 = a PaidYET terminal.
metaread-onlytextDevice metadata synced from the payment provider (for PaidYET, the terminal record it reports). Maintained by the sync, so it cannot be written through the API. Stored as mediumtext, no practical length limit.
activeccterminallogidread-onlyintegerThe in-flight terminal transaction (ccterminallog id) while a payment is processing; 0 when idle. Managed by the payment flow, so it cannot be written through the API.
externalidstring(100)Your own key. Scoped to your company.

Endpoints#

POST/ccterminals/batch 207

Create many.

Requires scope banking:write.

Parameters
NameInTypeNotes
Body array
FieldTypeDescription
idread-onlyintegerNolaPro id.
inventorylocationidintegerInventorylocationid. Id only.
inventorylocationstring(20)The locationcode of the referenced inventorylocations, instead of the id. Send this or inventorylocationid, not both unless they agree.
codestring(255)Short code identifying the terminal wherever one is picked (POS, order payment).
descriptionstring(255)Free-form name of the terminal.
ipstring(45)Network address the payment middleware uses to reach the terminal device.
portintegerPort the payment middleware uses to reach the terminal device.
checkedoutread-onlybooleanTrue while a user has the terminal checked out for exclusive use. Managed by the check-out/check-in workflow, so it cannot be written through the API.
checkedoutuseridread-onlyintegerThe user who currently has the terminal checked out. Managed by the check-out workflow, so read-only.
checkedoutuserread-onlystring(50)The name of the user who currently has the terminal checked out.
checkacctidintegerReference to checkaccounts, by id. Write either this or checkacct.
checkacctstring(30)The name of the referenced checkaccounts, instead of the id. Send this or checkacctid, not both unless they agree.
cancelbooleanCancelled. NolaPro cancels rather than deletes, so a cancelled row is still readable.
entrydateread-onlystringWhen the record was created.
lastchangedateread-onlystringLast modification. Drives modifiedsince.
ccaccountidintegerReference to ccaccounts, by id. Write either this or ccaccount.
ccaccountstring(100)The name of the referenced ccaccounts, instead of the id. Send this or ccaccountid, not both unless they agree.
settingstextTerminal behavior options as a JSON object (timeouts, whether the customer name is sent to the device). Edited on the terminal setup screen. Stored as mediumtext, no practical length limit.
ccterminaltypeintegerWhat drives the terminal: 0 = a local device reached through the NolaPro payment middleware, 2 = a PaidYET terminal.
metaread-onlytextDevice metadata synced from the payment provider (for PaidYET, the terminal record it reports). Maintained by the sync, so it cannot be written through the API. Stored as mediumtext, no practical length limit.
activeccterminallogidread-onlyintegerThe in-flight terminal transaction (ccterminallog id) while a payment is processing; 0 when idle. Managed by the payment flow, so it cannot be written through the API.
externalidstring(100)Your own key. Scoped to your company.
curl -X POST \
  'https://acme.nolapro.com/!/api/v2/ccterminals/batch' \
  -H 'Authorization: Bearer $NP_TOKEN' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: your-unique-key' \
  -d '[
    {
        "inventorylocationid": 104,
        "inventorylocation": "Example inventorylocation",
        "code": "ACME-01",
        "description": "Example description",
        "ip": "Example ip",
        "port": 1
    }
]'
GET/ccterminals 200403

List card terminals.

Requires scope banking:read.

Parameters
NameInTypeNotes
inventorylocationidquerystringRestrict to one inventorylocationid.
descriptionquerystringdescription. Partial match, case-insensitive.
codequerystringcode. Partial match, case-insensitive.
cancelquerystringDefaults to false. Pass true or any.
externalidquerystringExact match on your own key.
includequerystringComma-separated extras to embed. Only custom_fields is available: the extra fields this install has defined on the record. Off by default, and an unrecognised value is refused rather than ignored. See Conventions.
When it fails
StatusCodeMeaning
403insufficient_scopeToken lacks read scope.
curl \
  'https://acme.nolapro.com/!/api/v2/ccterminals' \
  -H 'Authorization: Bearer $NP_TOKEN'
POST/ccterminals 201400

Create.

Requires scope banking:write.

Parameters
NameInTypeNotes
Body
FieldTypeDescription
idread-onlyintegerNolaPro id.
inventorylocationidintegerInventorylocationid. Id only.
inventorylocationstring(20)The locationcode of the referenced inventorylocations, instead of the id. Send this or inventorylocationid, not both unless they agree.
codestring(255)Short code identifying the terminal wherever one is picked (POS, order payment).
descriptionstring(255)Free-form name of the terminal.
ipstring(45)Network address the payment middleware uses to reach the terminal device.
portintegerPort the payment middleware uses to reach the terminal device.
checkedoutread-onlybooleanTrue while a user has the terminal checked out for exclusive use. Managed by the check-out/check-in workflow, so it cannot be written through the API.
checkedoutuseridread-onlyintegerThe user who currently has the terminal checked out. Managed by the check-out workflow, so read-only.
checkedoutuserread-onlystring(50)The name of the user who currently has the terminal checked out.
checkacctidintegerReference to checkaccounts, by id. Write either this or checkacct.
checkacctstring(30)The name of the referenced checkaccounts, instead of the id. Send this or checkacctid, not both unless they agree.
cancelbooleanCancelled. NolaPro cancels rather than deletes, so a cancelled row is still readable.
entrydateread-onlystringWhen the record was created.
lastchangedateread-onlystringLast modification. Drives modifiedsince.
ccaccountidintegerReference to ccaccounts, by id. Write either this or ccaccount.
ccaccountstring(100)The name of the referenced ccaccounts, instead of the id. Send this or ccaccountid, not both unless they agree.
settingstextTerminal behavior options as a JSON object (timeouts, whether the customer name is sent to the device). Edited on the terminal setup screen. Stored as mediumtext, no practical length limit.
ccterminaltypeintegerWhat drives the terminal: 0 = a local device reached through the NolaPro payment middleware, 2 = a PaidYET terminal.
metaread-onlytextDevice metadata synced from the payment provider (for PaidYET, the terminal record it reports). Maintained by the sync, so it cannot be written through the API. Stored as mediumtext, no practical length limit.
activeccterminallogidread-onlyintegerThe in-flight terminal transaction (ccterminallog id) while a payment is processing; 0 when idle. Managed by the payment flow, so it cannot be written through the API.
externalidstring(100)Your own key. Scoped to your company.
When it fails
StatusCodeMeaning
400invalid_requestA required field was missing.
curl -X POST \
  'https://acme.nolapro.com/!/api/v2/ccterminals' \
  -H 'Authorization: Bearer $NP_TOKEN' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: your-unique-key' \
  -d '{
    "inventorylocationid": 104,
    "inventorylocation": "Example inventorylocation",
    "code": "ACME-01",
    "description": "Example description",
    "ip": "Example ip",
    "port": 1
}'
Response 201
{
    "inventorylocationid": 104,
    "inventorylocation": "Example inventorylocation",
    "code": "ACME-01",
    "description": "Example description",
    "ip": "Example ip",
    "port": 1
}
GET/ccterminals/{id} 200404

Retrieve one record.

Requires scope banking:read.

Parameters
NameInTypeNotes
idrequiredpathintegerThe record id.
includequerystringComma-separated extras to embed. Only custom_fields is available: the extra fields this install has defined on the record. Off by default, and an unrecognised value is refused rather than ignored. See Conventions.
When it fails
StatusCodeMeaning
404not_foundNo record with that id.
curl \
  'https://acme.nolapro.com/!/api/v2/ccterminals/104' \
  -H 'Authorization: Bearer $NP_TOKEN'
Response 200
{
    "inventorylocationid": 104,
    "inventorylocation": "Example inventorylocation",
    "code": "ACME-01",
    "description": "Example description",
    "ip": "Example ip",
    "port": 1
}
PATCH/ccterminals/{id} 200404

Update.

Requires scope banking:write.

Parameters
NameInTypeNotes
idrequiredpathintegerThe record id.
Body
FieldTypeDescription
idread-onlyintegerNolaPro id.
inventorylocationidintegerInventorylocationid. Id only.
inventorylocationstring(20)The locationcode of the referenced inventorylocations, instead of the id. Send this or inventorylocationid, not both unless they agree.
codestring(255)Short code identifying the terminal wherever one is picked (POS, order payment).
descriptionstring(255)Free-form name of the terminal.
ipstring(45)Network address the payment middleware uses to reach the terminal device.
portintegerPort the payment middleware uses to reach the terminal device.
checkedoutread-onlybooleanTrue while a user has the terminal checked out for exclusive use. Managed by the check-out/check-in workflow, so it cannot be written through the API.
checkedoutuseridread-onlyintegerThe user who currently has the terminal checked out. Managed by the check-out workflow, so read-only.
checkedoutuserread-onlystring(50)The name of the user who currently has the terminal checked out.
checkacctidintegerReference to checkaccounts, by id. Write either this or checkacct.
checkacctstring(30)The name of the referenced checkaccounts, instead of the id. Send this or checkacctid, not both unless they agree.
cancelbooleanCancelled. NolaPro cancels rather than deletes, so a cancelled row is still readable.
entrydateread-onlystringWhen the record was created.
lastchangedateread-onlystringLast modification. Drives modifiedsince.
ccaccountidintegerReference to ccaccounts, by id. Write either this or ccaccount.
ccaccountstring(100)The name of the referenced ccaccounts, instead of the id. Send this or ccaccountid, not both unless they agree.
settingstextTerminal behavior options as a JSON object (timeouts, whether the customer name is sent to the device). Edited on the terminal setup screen. Stored as mediumtext, no practical length limit.
ccterminaltypeintegerWhat drives the terminal: 0 = a local device reached through the NolaPro payment middleware, 2 = a PaidYET terminal.
metaread-onlytextDevice metadata synced from the payment provider (for PaidYET, the terminal record it reports). Maintained by the sync, so it cannot be written through the API. Stored as mediumtext, no practical length limit.
activeccterminallogidread-onlyintegerThe in-flight terminal transaction (ccterminallog id) while a payment is processing; 0 when idle. Managed by the payment flow, so it cannot be written through the API.
externalidstring(100)Your own key. Scoped to your company.
When it fails
StatusCodeMeaning
404not_foundNo record with that id.
curl -X PATCH \
  'https://acme.nolapro.com/!/api/v2/ccterminals/104' \
  -H 'Authorization: Bearer $NP_TOKEN' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: your-unique-key' \
  -d '{
    "inventorylocationid": 104,
    "inventorylocation": "Example inventorylocation",
    "code": "ACME-01",
    "description": "Example description",
    "ip": "Example ip",
    "port": 1
}'
Response 200
{
    "inventorylocationid": 104,
    "inventorylocation": "Example inventorylocation",
    "code": "ACME-01",
    "description": "Example description",
    "ip": "Example ip",
    "port": 1
}
DELETE/ccterminals/{id} 200404

Cancel.

Requires scope banking:cancel.

Parameters
NameInTypeNotes
idrequiredpathintegerThe record id.
When it fails
StatusCodeMeaning
404not_foundNo record with that id.
curl -X DELETE \
  'https://acme.nolapro.com/!/api/v2/ccterminals/104' \
  -H 'Authorization: Bearer $NP_TOKEN'
Response 200
{
    "inventorylocationid": 104,
    "inventorylocation": "Example inventorylocation",
    "code": "ACME-01",
    "description": "Example description",
    "ip": "Example ip",
    "port": 1
}