Terminal
The Terminal API allows you to build delightful in-person payment experiences.
Send Event
Send an event from your application to the Paystack Terminal
authorization String | Set value to Bearer SECRET_KEY |
content-type String | Set value to application/json |
terminal_id String | The ID of the Terminal the event should be sent to. |
type String | The type of event to push. We currently support invoice and transaction |
action String | The action the Terminal needs to perform. For the invoice type, the action can either be process or view. For the transaction type, the action can either be process or print. |
data Object | The paramters needed to perform the specified action. For the invoice type, you need to pass the invoice id and offline reference: {id: invoice_id, reference: offline_reference}. For the transaction type, you can pass the transaction id: {id: transaction_id} |
POST/terminal/:terminal_id/event
cURL
1#!/bin/sh2url="https://api.paystack.co/terminal/{terminal_id}/event"3authorization="Authorization: Bearer YOUR_SECRET_KEY"4content_type="Content-Type: application/json"5data='{6 "type": "invoice",7 "action": "process",8 "data": {9 "id": 7895939,10 "reference": 463433789593911 }12}'1314curl "$url" -H "$authorization" -H "$content_type" -d "$data" -X POST
Sample Response
200 Ok
1{2 "status": true,3 "message": "Event sent to Terminal",4 "data": {5 "id": "616d721e8c5cd40a0cdd54a6"6 }7}
Fetch Event Status
Check the status of an event sent to the Terminal
authorization String | Set value to Bearer SECRET_KEY |
terminal_id String | The ID of the Terminal the event was sent to. |
event_id String | The ID of the event that was sent to the Terminal |
GET/terminal/:terminal_id/event/:event_id
cURL
1#!/bin/sh2url="https://api.paystack.co/terminal/{terminal_id}/event/{event_id}"3authorization="Authorization: Bearer YOUR_SECRET_KEY"45curl "$url" -H "$authorization" -X GET
Sample Response
200 Ok
1{2 "status": true,3 "message": "Message Status Retrieved",4 "data": {5 "delivered": true6 }7}
Fetch Terminal Status
Check the availiability of a Terminal before sending an event to it
authorization String | Set value to Bearer SECRET_KEY |
terminal_id String | The ID of the Terminal you want to check |
GET/terminal/:terminal_id/presence
cURL
1#!/bin/sh2url="https://api.paystack.co/terminal/{terminal_id}/presence"3authorization="Authorization: Bearer YOUR_SECRET_KEY"45curl "$url" -H "$authorization" -X GET
Sample Response
200 Ok
1{2 "status": true,3 "message": "Terminal status retrieved",4 "data": {5 "online": true,6 "available": false7 }8}
List Terminals
List the Terminals available on your integration
authorization String | Set value to Bearer SECRET_KEY |
perPage Integer | Specify how many records you want to retrieve per page. If not specify we use a default value of 50. | |
next String | A cursor that indicates your place in the list. It can be used to fetch the next page of the list | |
previous String | A cursor that indicates your place in the list. It should be used to fetch the previous page of the list after an intial next request | |
| Show optional parameters | ||
|---|---|---|
GET/terminal
cURL
1#!/bin/sh2url="https://api.paystack.co/terminal"3authorization="Authorization: Bearer YOUR_SECRET_KEY"45curl "$url" -H "$authorization" -X GET
Sample Response
200 Ok
1{2 "status": true,3 "message": "Terminals retrieved successfully",4 "data": [5 {6 "id": 30,7 "serial_number": "033301504100A563877",8 "device_make": null,9 "terminal_id": "2872S934",10 "integration": 463433,11 "domain": "live",12 "name": "Damilola's Terminal",13 "address": null,14 "status": "active"15 }16 ],17 "meta": {18 "next": null,19 "previous": null,20 "perPage": 121 }22}
Fetch Terminal
Get the details of a Terminal
authorization String | Set value to Bearer SECRET_KEY |
terminal_id String | The ID of the Terminal the event was sent to. |
GET/terminal/:terminal_id
cURL
1#!/bin/sh2url="https://api.paystack.co/terminal/{terminal_id}"3authorization="Authorization: Bearer YOUR_SECRET_KEY"45curl "$url" -H "$authorization" -X GET
Sample Response
200 Ok
1{2 "status": true,3 "message": "Terminal retrieved successfully",4 "data": {5 "id": 30,6 "serial_number": "033301504100A563877",7 "device_make": null,8 "terminal_id": "2872S934",9 "integration": 463433,10 "domain": "live",11 "name": "Damilola's Terminal",12 "address": null,13 "status": "active"14 }15}
Update Terminal
Update the details of a Terminal
authorization String | Set value to Bearer SECRET_KEY |
content-type String | Set value to application/json |
terminal_id String | The ID of the Terminal you want to update |
name String | Name of the terminal |
address String | The address of the Terminal |
PUT/terminal/:terminal_id
cURL
1#!/bin/sh2url="https://api.paystack.co/terminal/{terminal_id}"3authorization="Authorization: Bearer YOUR_SECRET_KEY"4content_type="Content-Type: application/json"5data='{6 "address": "Somewhere on earth7}'89curl "$url" -H "$authorization" -H "$content_type" -d "$data" -X PUT
Sample Response
200 Ok
1{2 "status": true,3 "message": "Terminal Details updated"4}
Commission Terminal
Activate your debug device by linking it to your integration
authorization String | Set value to Bearer SECRET_KEY |
content-type String | Set value to application/json |
serial_number String | Device Serial Number |
POST/terminal/commission_device
cURL
1#!/bin/sh2url="https://api.paystack.co/terminal/commission_device"3authorization="Authorization: Bearer YOUR_SECRET_KEY"4content_type="Content-Type: application/json"5data='{6 "serial_number": "1111150412230003899"7}'89curl "$url" -H "$authorization" -H "$content_type" -d "$data" -X POST
Sample Response
200 Ok
1{2 "status": false,3 "message": "Device has been commissioned already"4}
Decommission Terminal
Unlink your debug device from your integration
authorization String | Set value to Bearer SECRET_KEY |
content-type String | Set value to application/json |
serial_number String | Device Serial Number |
POST/terminal/decommission_device
cURL
1#!/bin/sh2url="https://api.paystack.co/terminal/decommission_device"3authorization="Authorization: Bearer YOUR_SECRET_KEY"4content_type="Content-Type: application/json"5data='{6 "serial_number": "1111150412230003899"7}'89curl "$url" -H "$authorization" -H "$content_type" -d "$data" -X POST
Sample Response
200 Ok
1{2 "status": true,3 "message": "Device decommissioned successfully"4}