Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
SensePass Transaction API allows developers to create payment requests and proccess payments using SensePass network.
SensePass API organized around REST, accepts JSON request body and JSON response.
Our API also supports SOAP and XML.
SensePass network supports multiple payment methods, including credit cards, Venmo, PayPal, Alipay, Klarna, WeChat Pay, Trustly, Coinbase, BitPay.
See our full payment methods list here
SensePass provides a fully functioning sandbox environment for development and testing, payments in the sandbox enviorement doesn't affect your live data or proccess money.
API URL: https://api.sensepass.com/api/
Socket.IO URL: https://api.sensepass.com
API URL: https://api.sandbox.sensepass.com/api/
Socket.IO URL: https://api.sandbox.sensepass.com
Multiple authentication options are available, based on your use case:
Authentication fields: deviceId
Only one field is required for authentication - deviceId, this field represents the unique identifier of the POS in SensePass network.
Device ID can be generated using the "match" API (Pairing) or using SensePass Partner platform.
Authentication fields: merchant apiKey Or Location apiKey
apiKey can be associated to a merchant or to a location in specific merchant.
Merchant API key requires branchId field to be provided, Location API key does not requires branchId field.
Accept any payment app, any wallet, any card any way your customer wants.
SensePass supports currently 105 payment methods with a single API interface for all of them, we continue to add payment methods to our network.
Cardknox
NMI
TSYS
Shift4
Authorize.net
Elavon
Clover
Moneris
Chase
Nuvei
DLocal
Adyen
Coastal Pay
Stripe
Square
Shopify Payments
Linkly
Westpac
First Data
Global Payments
Heartland Payment
Worldpay
North American Bancard
Electronic Payment Exchange (EPX)
Braintree
Apple Pay
Google Payâ„¢
PayPal
Venmo
Amazon Pay
Samsung Pay
AliPay
WeChat Pay
Kakao Pay
Klarna
SplitIt
Sezzle
ChargeAfter
AfterPay
Zip
Affirm
WeGetFinancing
Jifiti
Skeps
Trustly
ACH
EFT
Link Money
Mobile Money
PIX
Boleto
Abitab
PSE
OXXO
MercadoPago
SPEI
Pago Efectevio
Infonet
Pago al Paso
Pago Efectivo
Pay Cash
Pay Valida
Yape
au PAY
Dana
dBarai
DragaonPay
DuitNow
Kobini
LINE Pay
Lpay
Merpay
Momo wallet
Naver Pay
NPP
Payco
PayPay
PromptPay
QRIS
Rakuten Pay
SSGPAY
TOSS Payments
Touch 'n Go
TrueMoney
UPI
ZaloPay
CLAVE
CoDi
Daviplata
Efecty
Nequi
Pay4Fun
Sencillito
WebPay
Rapipago
Cobro Express
Pago Facil
PicPay
NuPay
Sencillito
Khipu
Servipag
Sinpe
Sinpe Movil
PuntoXpress
Akisi
Practipago
Wepa
Zimple
Sigo Money
Billetera Personal
Wally
Giros Claro
BCP
Payvalida
Redpagos
Coinbase
BitPay
PalWallet
GET
/transactions/paymentProviders/list
deviceId
string
Terminal unique device ID provided by SensePass (For Device based Transactions) - Required if apiKey is empty
apiKey
string
Merchant ID provided by SensePass (For Web based Transactions) - Required if deviceId is empty
GET
/transactions/paymentProviders/payment-methods
deviceId
string
Terminal unique device ID provided by SensePass (For Device based Transactions) - Required if apiKey is empty
apiKey
string
Merchant ID provided by SensePass (For Web based Transactions) - Required if deviceId is empty
methodType
string
Transaction Type: 0. 'payment' = Regular Payment 1. 'tokenize' = Tokenization 2. 'authorize' = Authorization 3. 'credit' = Credit transaction
All merchants must adhere to the Google Pay APIs Acceptable Use Policy and accept the terms defined in the Google Pay API Terms of Service.
Google Pay is a trademark of Google LLC.
SensePass currently supports 20 POS systems and we continue to add more POS to our network.
Microsoft Dynamics 365 (D365)
Microsoft Dynamics 365 Business Central (D365 Business Central)
RMH
RMH iPOS
Oracle Micros X-Store
Oracle Netsuite NSPOS
Oracle Netsuite ERP
Oracle Netsuite SCIS
VRP
Lightspeed R (previously Vend)
Shopify POS
Anthology - Student Management
Aptos
Dimension Computer
NCR
Prism RBS - POS + MPOS
PAR
Vela POS
SABX POS
Storis
SensePass currently supports 10 e-commerce systems and we continue to add more integrations to our network.
WooCommerce
Gravity Forms
JotForm
Zapier
PrestaShop
Oracle Netsuite SuiteCommerce
Shopify
BigCommerce
PayTech Trust
Magento
SensePass Transaction API allows developers to create payment requests and process payments using SensePass network.
SensePass API organized around REST, accepts JSON request body and JSON response.
SensePass network supports multiple payment methods, including credit cards, Venmo, PayPal, Alipay, Klarna, WeChat Pay, Trustly, Coinbase, BitPay.
SensePass provides a fully functioning sandbox environment for development and testing, payments in the sandbox enviorement doesn't affect your live data or proccess money.
API URL: https://api.sensepass.com/api/
Socket.IO URL: https://api.sensepass.com
API URL: https://api.sandbox.sensepass.com/api/
Socket.IO URL: https://api.sandbox.sensepass.com
Multiple authentication options are available, based on your use case:
Authentication fields: deviceId
Only one field is required for authentication - deviceId, this field represents the unique identifier of the POS in SensePass network.
Device ID can be generated using the "match" API (Pairing) or using SensePass Partner platform.
Authentication fields: merchant apiKey Or Location apiKey
apiKey can be associated to a merchant or to a location in specific merchant.
Merchant API key requires branchId field to be provided, Location API key does not requires branchId field.
Multiple authentication options are available, based on your use case:
Authentication fields: deviceId
Only one field is required for authentication - deviceId, this field represents the unique identifier of the POS in SensePass network.
Device ID can be generated using the "match" API (Pairing) or using SensePass Partner platform.
Authentication fields: apiKey
Location API key identifies the merchant and the location, Location API key is the recommended option for e-commerce.
Authentication fields: apiKey + branchNumber
Merchant API key requires branchId field to be provided.
All of the keys types can be generated using our API or using or Partners Dashboard:
Location API key: Developer -> Branch API -> New
Merchant API Key: Developer -> Merchant API -> New
Device Id: POS/Register -> New
URL: /transactions/init
Request Body:
URL: /transactions/init
Request Body:
URL: /transactions/init
Request Body:
Our API also supports .
Simple request example to create new transaction with POS data.
POS data is key-value data that can be sent in the request body to store custom information about the transaction, for example - order id, consumer name.
This information will not be visible to the consumer and this data will be available to the POS on any transaction event - Socket.IO messages, callback, transaction status API.
URL: /transactions/init
Request Body:
POST
/transactions/init
This API creates new payment request based on the fields below.
amount*
number
The required amount for this transaction (Cents).
If products are a part of the transaction - they are all summed up & calculated via the following formula:
(amount + vat - discount) * quantity e.g. (10 + 1.7 - 1) * 2.
isCent
boolean
Determines if Amount represents in cents or not
timeOut
number
Time until the transaction will be timed out (seconds)
currency*
string
[ USD, CAD, ILS, EUR, RUB ]
deviceId
string
Terminal unique device ID provided by SensePass (For Device based Transactions) - Required if apiKey is empty
posData
object
Any data (object/array/string/number etc...) to be received in the callback url or transaction's responses
Simple request example to create new transaction with callback URL data.
Adding callback URL to request body enables you to get POST request from SensePass on any transaction update events.
In event of communication error from SensePass to your server - SensePass will retry multiple times to call your server will the callback URL over a period of days.
Make sure the URL provided in "callbackURL" is fully accessible from the internet and does not contain local IP or private DNS.
SensePass IP's are dynamic - Limiting your endpoint to specific IP address is not possible.
URL: /transactions/init
Request Body:
POST
/transactions/init
This API creates new payment request based on the fields below.
amount*
number
The required amount for this transaction (Cents).
If products are a part of the transaction - they are all summed up & calculated via the following formula:
(amount + vat - discount) * quantity e.g. (10 + 1.7 - 1) * 2.
isCent
boolean
Determines if Amount represents in cents or not
timeOut
number
Time until the transaction will be timed out (seconds)
currency*
string
[ USD, CAD, ILS, EUR, RUB ]
deviceId
string
Terminal unique device ID provided by SensePass (For Device based Transactions) - Required if apiKey is empty
callbackURL
string
URL to your POST endpoint
HMAC (Hash-based Message Authentication Code) signature authentication for callbacks is a security mechanism used to ensure the integrity and authenticity of a message between two systems.
This authentication logic will enables you to verify that the callback API call was originated by SensePass.
HMAC Verification steps:
Extract "HMAC-Random-Key" header from the callback API request
Concat the header from #1 to the request body
Perform HMAC 256 calculation with the concatenated string and using your secret HMAC key
Compare the result from #3 against the value of the request header "HMAC-Authorization"
By default all the callbacks are sent with JSON body and POST method, it is possible to choose GET method callback without request body.
Callback with GET method will be sent with TransactionNumber as query param.
URL: /transactions/init
Request Body for GET callbacks:
This API call will be sent to this URL:
https://google.com/callback/api/callback?TransactionNumber=573942fsdqe90342k304242&callbackType=transaction_status
Simple request example to create new transaction and products information.
Adding products to request body allows the consumer to view before and after the payment the full product information including product names, quantity, pricing per products, sub products and tax.
In addition, the products information will be visible in the merchant back office.
URL: /transactions/init
Request body:
POST
/transactions/init
This API creates new payment request based on the fields below.
amount*
number
The required amount for this transaction (Cents).
If products are a part of the transaction - they are all summed up & calculated via the following formula:
(amount + vat - discount) * quantity e.g. (10 + 1.7 - 1) * 2.
isCent
boolean
Determines if Amount represents in cents or not
timeOut
number
Time until the transaction will be timed out (seconds)
currency*
string
[ USD, CAD, ILS, EUR, RUB ]
deviceId
string
Terminal unique device ID provided by SensePass (For Device based Transactions) - Required if apiKey is empty
products
object
Products information
Adding receipt to your payment request alllows your customers to view the full payment receipt on their mobile device immediately after the payment approved, and on their SensePass account.
Receipt full documentation: Receipts Model
URL: /transactions/init
Request Body:
Response body:
See "posReceiptsEndpoint" field in the response body, the value of the field represents the unique endpoint created for saving the receipt created by the POS.
Save this value in the POS for a case of "Approved" status event.
Register to Socket.IO channel or use callback URL to get notifications about transaction status changes.
Once the transaction status changes to status "Approved" (5) you will get "confirmations" object in the Transaction model:
Save all "confirmationNumber" objects, and create receipt in your POS.
More than one "confirmations" object can be available in cases of split payment, refund and partial refund
Once the receipt is ready in your POS, invoke API request to the endpoint from "posReceiptsEndpoint" (see the previous section).
Example URL (based on "posReceiptsEndpoint"): https://api.sandbox.sensepass.com/api/invoicesReceipts/receipt/save/0128c664-1a2a-422c-91d0-85a8af229ed4
Request Body as form-data:
receipt-file
Your File Here - PDF or Image
jsonStr
"associateToConfirmationNumbers" is an array of "confirmationNumber" for the previous sections, this is the relation between the receipt to the payments of the consumer.
Response body:
It is required to host the receipt on a publicly accessible server and send SensePass the full URL of the file, SensePass will not expose to the consumers the URL, instead our servers will download the receipt from your server and host it securely.
Example URL (based on "posReceiptsEndpoint"): https://api.sandbox.sensepass.com/api/invoicesReceipts/receipt/save/0128c664-1a2a-422c-91d0-85a8af229ed4
Request Body:
"associateToConfirmationNumbers" is an array of "confirmationNumber" for the previous sections, this is the relation between the receipt to the payments of the consumer.
Response body:
Example URL (based on "posReceiptsEndpoint"): https://api.sandbox.sensepass.com/api/invoicesReceipts/receipt/save/0128c664-1a2a-422c-91d0-85a8af229ed4
Request Body:
"associateToConfirmationNumbers" is an array of "confirmationNumber" for the previous sections, this is the relation between the receipt to the payments of the consumer.
Response body:
See Transactions entity schema:
It is required to implement a POST endpoint on your server based on the same interface as
Interface:
See Transactions entity schema:
See product object entity:
See Transactions entity schema:
Adding invoice to your payment request alllows your customers to view the full payment information before processing the payment.
Supported invoice file formats: PDF, JPEG, PNG.
It is required to host the invoice on a publicy accessible server and send SensePass the full URL of the file, SensePass will not expose to the consumers the URL, instead our servers will download the invoice from your server and host it securely.
URL: /transactions/init
Request Body:
POST
/transactions/init
This API creates new payment request based on the fields below.
amount*
number
The required amount for this transaction (Cents).
If products are a part of the transaction - they are all summed up & calculated via the following formula:
(amount + vat - discount) * quantity e.g. (10 + 1.7 - 1) * 2.
isCent
boolean
Determines if Amount represents in cents or not
timeOut
number
Time until the transaction will be timed out (seconds)
currency*
string
[ USD, CAD, ILS, EUR, RUB ]
deviceId
string
Terminal unique device ID provided by SensePass (For Device based Transactions) - Required if apiKey is empty
invoice
object
Used to present invoice for the consumer before the payment
Basic request example to create a new transaction.
URL: /transactions/init
POST
/transactions/init
This API creates new payment request based on the fields below.
amount*
number
The required amount for this transaction (Cents).
If products are a part of the transaction - they are all summed up & calculated via the following formula:
(amount + vat - discount) * quantity e.g. (10 + 1.7 - 1) * 2.
isCent
boolean
Determines if Amount represents in cents or not
timeOut
number
Time until the transaction will be timed out (seconds)
currency*
string
[ USD, CAD, ILS, EUR, RUB ]
deviceId*
string
Terminal unique device ID provided by SensePass (For Device based Transactions) - Required if apiKey is empty
SMS Payment Request enables you to send payment request to a consumer remotely, without asking the consumer any confidential information like credit card number.
The SMS message will be sent from SensePass servers, all of the countries globally are supported.
URL: /transactions/init
Request Body:
Full customization of the SMS message including variables can be done using "customSmsText" field in the "/transactions/init" API.
Request Body:
businessName: Merchant name
locationName: Location name
amount: Transaction amount including currency
link: Full URL to payment request page
reason: Reason field of the transaction
expiration: Transaction expiration date formatted
Add %% before and after the name of the variable.
Examples:
%%businessName%% asks you to pay
Hi, you got payment request from %%businessName%%, %%locationName%% of %%amount%% - %%reason%%. Please click here to pay: %%link%%
POST
/transactions/init
This API creates new payment request based on the fields below.
Email Payment Request enables you to send payment request to a consumer remotely, without asking the consumer any confidential information like credit card number.
The Email will be sent from SensePass servers from this address: no-reply@sensepass.com
Multiple languages are available, see "emailConfig" field below.
URL: /transactions/init
Request Body:
POST
/transactions/init
This API creates new payment request based on the fields below.
Basic request example to create a new transaction and present it on iFrame.
Response body:
See the URL of the iFrame in transactionPage.consumerPage.
You can choose to display the cosumer two different sizes:
1. Regular display (transactionPage.consumerPage.regular) for full size view, see example:
2. Medium display (transactionPage.consumerPage.medium) for medium view without the QR, see example:
3. Small display (transactionPage.consumerPage.small) for smaller view without the QR and without the header, see example:
There are multiple options to get notifications about the transaction status changes:
Callback
Web sockets (Socket.IO)
Post message event on the client side
Adding callback URL using "callbackURL" field to request body enables you to get POST request from SensePass on any transaction update events.
Implement Socket.IO client on your platform and listen to this URL:
Production - https://api.sensepass.com?id=tr_<TransactionNumber-From-Response-Body>
Sandbox - https://api.sandbox.sensepass.com?id=tr_<TransactionNumber-From-Response-Body>
Listen to "message" event to get notifcations about the transaction.
Post messsge events are sent to client side using the browser API.
Code example:
All of the notifications are conforms to Transaction Entity interface.
Notification Example:
Adding receipt to your payment request alllows your customers to view the full payment receipt on their mobile device immediately after the payment approved, and on their SensePass account.
URL: /transactions/init
Request Body:
Please see the full invoice model here:
See invoice object entity:
See Transactions entity schema:
See Transactions entity schema:
For delivery status - See "SMS" field in
See Transactions entity schema:
See Transactions entity schema:
See Transactions entity schema:
See full information about callbacks logic here:
See the full interface model here:
Receipt full documentation:
amount*
number
The required amount for this transaction (Cents).
If products are a part of the transaction - they are all summed up & calculated via the following formula:
(amount + vat - discount) * quantity e.g. (10 + 1.7 - 1) * 2.
isCent
boolean
Determines if Amount represents in cents or not
timeOut
number
Time until the transaction will be timed out (seconds)
currency*
string
[ USD, CAD, ILS, EUR, RUB ]
deviceId
string
Terminal unique device ID provided by SensePass (For Device based Transactions) - Required if apiKey is empty
clientEmail
string
email message will be sent to this consumer email for remote payment
emailConfig.paymentRequest.language
string
[ en, he, ru ]
amount*
number
The required amount for this transaction (Cents).
If products are a part of the transaction - they are all summed up & calculated via the following formula:
(amount + vat - discount) * quantity e.g. (10 + 1.7 - 1) * 2.
isCent
boolean
Determines if Amount represents in cents or not
timeOut
number
Time until the transaction will be timed out (seconds)
currency*
string
[ USD, CAD, ILS, EUR, RUB ]
apiKey*
string
Unique API provided by SensePass, unique for each location of your merchant
returnURL
string
URL to redirect consumer after Success or Error
cancelURL
string
URL to redirect consumer on cancel event from consumer
callbackURL
string
URL to Callback API - SensePass will call this API with full Transaction Entity for every status change about this transaction
amount*
number
The required amount for this transaction (Cents).
If products are a part of the transaction - they are all summed up & calculated via the following formula:
(amount + vat - discount) * quantity e.g. (10 + 1.7 - 1) * 2.
isCent
boolean
Determines if Amount represents in cents or not
timeOut
number
Time until the transaction will be timed out (seconds)
currency*
string
[ USD, CAD, ILS, EUR, RUB ]
deviceId
string
Terminal unique device ID provided by SensePass (For Device based Transactions) - Required if apiKey is empty
clientPhoneNumber
string
SMS message will be sent to this consumer number for SMS payment
Email Payment Request enables you to send payment request to a consumer remotely, without asking the consumer any confidential information like credit card number.
The Email will be sent from SensePass servers from this address: no-reply@sensepass.com
Multiple languages are available, see "emailConfig" field below.
Request Body:
POST
/transactions/init
This API creates new payment request based on the fields below.
amount*
number
The required amount for this transaction (Cents).
If products are a part of the transaction - they are all summed up & calculated via the following formula:
(amount + vat - discount) * quantity e.g. (10 + 1.7 - 1) * 2.
isCent
boolean
Determines if Amount represents in cents or not
timeOut
number
Time until the transaction will be timed out (seconds)
currency*
string
[ USD, CAD, ILS, EUR, RUB ]
apiKey*
string
Unique API provided by SensePass, unique for each location of your merchant
clientEmail
string
email message will be sent to this consumer email for remote payment
emailConfig.paymentRequest.language
string
[ en, he, ru ]
cancelURL
string
URL to redirect consumer on cancel event from consumer
returnURL
string
URL to redirect consumer after Success or Error
callbackURL
string
URL to Callback API - SensePass will call this API with full Transaction Entity for every status change about this transaction
SMS Payment Request enables you to send a payment request to a consumer remotely, without asking the consumer any confidential information like credit card number.
The SMS message will be sent from SensePass servers, all of the countries globally are supported.
Request Body:
Full customization of the SMS message including variables can be done using "customSmsText" field in the "/transactions/init" API.
Request Body:
businessName: Merchant name
locationName: Location name
amount: Transaction amount including currency
link: Full URL to payment request page
reason: Reason field of the transaction
expiration: Transaction expiration date formatted
Add %% before and after the name of the variable.
Examples:
%%businessName%% asks you to pay
Hi, you got payment request from %%businessName%%, %%locationName%% of %%amount%% - %%reason%%. Please click here to pay: %%link%%
POST
/transactions/init
This API creates new payment request based on the fields below.
amount*
number
The required amount for this transaction (Cents).
If products are a part of the transaction - they are all summed up & calculated via the following formula:
(amount + vat - discount) * quantity e.g. (10 + 1.7 - 1) * 2.
isCent
boolean
Determines if Amount represents in cents or not
timeOut
number
Time until the transaction will be timed out (seconds)
currency*
string
[ USD, CAD, ILS, EUR, RUB ]
apiKey*
string
Unique API provided by SensePass, unique for each location of your merchant
clientPhoneNumber
string
SMS message will be sent to this consumer number for SMS payment
returnURL
string
URL to redirect consumer after Success or Error
cancelURL
string
URL to redirect consumer on cancel event from consumer
callbackURL
string
URL to Callback API - SensePass will call this API with full Transaction Entity for every status change about this transaction
Simple request example to create new transaction with callback URL data.
Adding callback URL to request body enables you to get POST request from SensePass on any transaction update events.
In event of communication error from SensePass to your server - SensePass will retry multiple times to call your server will the callback URL over a period of days.
Make sure the URL provided in "callbackURL" is fully accessible from the internet and does not contain local IP or private DNS.
SensePass IP's are dynamic - Limiting your endpoint to specific IP address is not possible.
Request Body:
POST
/transactions/init
This API creates new payment request based on the fields below.
amount*
number
The required amount for this transaction (Cents).
If products are a part of the transaction - they are all summed up & calculated via the following formula:
(amount + vat - discount) * quantity e.g. (10 + 1.7 - 1) * 2.
isCent
boolean
Determines if Amount represents in cents or not
timeOut
number
Time until the transaction will be timed out (seconds)
currency*
string
[ USD, CAD, ILS, EUR, RUB ]
apiKey*
string
Unique API provided by SensePass, unique for each location of your merchant
callbackURL
string
URL to your POST endpoint
cancelURL
string
URL to redirect consumer on cancel event from consumer
returnURL
string
URL to redirect consumer after Success or Error
HMAC (Hash-based Message Authentication Code) signature authentication for callbacks is a security mechanism used to ensure the integrity and authenticity of a message between two systems.
This authentication logic will enables you to verify that the callback API call was originated by SensePass.
HMAC Verification steps:
Extract "HMAC-Random-Key" header from the callback API request
Concat the header from #1 to the request body
Perform HMAC 256 calculation with the concatenated string and using your secret HMAC key
Compare the result from #3 against the value of the request header "HMAC-Authorization"
By default all the callbacks are sent with JSON body and POST method, it is possible to choose GET method callback without request body.
Callback with GET method will be sent with TransactionNumber as query param.
URL: /transactions/init
Request Body for GET callbacks:
This API call will be sent to this URL:
https://google.com/callback/api/callback?TransactionNumber=573942fsdqe90342k304242&callbackType=transaction_status
Adding receipt to your payment request alllows your customers to view the full payment receipt on their mobile device immediately after the payment approved, and on their SensePass account.
Request Body:
For delivery status - See "SMS" field in
See Transactions entity schema:
For delivery status - See "SMS" field in
For delivery status - See "SMS" field in
See Transactions entity schema:
It is required to implement a POST endpoint on your server based on the same interface as
Interface:
See Transactions entity schema:
Receipt full documentation:
Adding receipt to your payment request alllows your customers to view the full payment receipt on their device immediately after the payment approved, and on their SensePass account.
Receipt full documentation: Receipts Model
Request Body:
Response body:
See "posReceiptsEndpoint" field in the response body, the value of the field represents the unique endpoint created for saving the receipt created by the e-commerce platform.
Save this value in your website platform for a case of "Approved" status event.
Register to Socket.IO channel or use callback URL to get notifications about transaction status changes.
Once the transaction status changes to status "Approved" (5) you will get "confirmations" object in the Transaction model:
Save all "confirmationNumber" objects, and create receipt in your website platform.
More than one "confirmations" object can be available in cases of split payment, refund and partial refund
Once the receipt is ready in your platform, invoke API request to the url from "posReceiptsEndpoint" (see the previous section).
It is required to host the receipt on a publicy accessible server and send SensePass the full URL of the file, SensePass will not expose to the consumers the URL, instead our servers will download the receipt from your server and host it securely.
Request Body:
"associateToConfirmationNumbers" is an array of "confirmationNumber" for the previous sections, this is the relation between the receipt to the payments of the consumer.
Response body:
Tokenization is the proccess of representing sensitive payment information with a token that does not contain data and represents the payment method of the consumer in SensePass.
Tokenization is useful for recurring payments or any kind of future payments with interaction with the consumer.
Call "transactions/init" in order to create an tokenization request and add the "methodType" field with "Tokenize".
URL: /transactions/init
Request Body:
Response body:
The consumer tap the sticker, or get the payment link through e-mail or SMS, and choose a payment method.
Call "transactions/init" in order to create an capture and tokenization request - add the "methodType" field with "Capture+Tokenize".
URL: /transactions/init
Request Body:
Response body:
The consumer tap the sticker, or get the payment link through e-mail or SMS, and choose a payment method.
URL: /transactions/tokenize
Request Body:
Response body:
The consumer choose the payment method as usual and you will get an update regarding this transaction by websocket, callback and transaction status API.
Example of callback response:
See the token in "paymentDetails.token".
The token length is 256 characters.
URL: /transactions/pay
Amount field only supports cents. This API does not support sending isCent=false
Request Body:
Request Body for Authroize.net token:
Response body:
SensePass sends callbacks about any change regarding subscription item.
The callback endpoint can be configured using "callbackURL" field on "Init" API of subscriptions.
Main model structure is identical to transaction status model
"parentTransaction" field was added for subscriptions, this field represents the orginal subscription transaction information
"parentTransaction.subscription" field was added with the subscription object, according to Subscription Model
Cancelling a pending transaction endpoint allows you to block the payment flow for consumers that currently visiting the payment page and also block the payment page for new consumers - only for specific transaction.
This API will not refund approved transactions, see Refund a transaction
POST
https://api.sensepass.com/api/transactions/cancel/{transactionNumber}
transactionNumber*
String
Transaction number to cancel
Authentication Request Body fields
See here our Authentication page
POST
https://api.sensepass.com/api/transactions/cancelByDeviceId/{deviceId}
deviceId*
String
Device ID of the transaction
Authentication Request Body fields
See here our Authentication page
See our payment flow chart here
API to refund payments of approved transaction or partial refund transaction with available balance to refund.
This endpoint automaticlly detects if void or refund operation is required.
POST
https://api.sensepass.com/api/transactions/refund
transactionNumber*
string
The Transaction Number To Be Refunded - Required
isPartial
boolean
true for partial refund transaction, requires "refundAmount" field for partial amount
refundAmount
number
The refund amount - for partial refund only, see "isPartial" flag
Authentication Request Body fields
See here our Authentication page
errorCode = 0 indicating successful refund operation.
On error see "errorMessage" field which describes the error cause.
Basic request example to refund a new transaction using Device ID:
Basic request example to refund a new transaction using Location API Key or Merchant API key:
See our payment flow chart here
API for retrieving the current status of a given transaction.
Do not implement poll logic with this API, instead implement Socket.IO listener or callback API to get transaction status events.
GET
https://api.sensepass.com/api/transactions/{transactionNumber}
transactionNumber*
String
Transaction Number
Authentication Request Body fields
See here our Authentication page
See our payment flow chart here
See our transaction status flow here
POST
https://api.sensepass.com/api/transactions
Body
deviceId
string
Terminal unique device ID provided by SensePass (For Device based Transactions) - Required if apiKey is empty
apiKey
string
Merchant ID provided by SensePass (For Web based Transactions) - Required if deviceId is empty
startDate*
string
2024-01-01T12:00:00Z
endDate*
string
2024-02-01T12:00:00Z
status
string
settled/expired/voided
currency
string
currency Iso code
pagination.limit
number
limit the number of records returned (between 1 and 1000)
pagination.offset
number
skip N amount of records
orderBy
string
column to sort the results by:
default: date
filter[]
FilterData
filter query rows by array of conditions
FilterData
parmeter
KeyValue
any custom data to filter by: E.G: "name":"Joe"
operator
string
Example Request
Body
Response
Subscription is the process of recurring payments by a interval.
Subscription is useful for charging consumers a fixed sum of money, e.g. $10.99 per month, or any kind of future payments with a chosen sum.
POST
https://api.sensepass.com/api/transactions/init
timeOut
number
600
amount
number
1000
deviceId*
string
2ooeww5ufzg3nkuf8a10g15i5epu8o58jv1rznif3o1tr6xsb1rm
methodType*
string
subscription
callbackURL
string
https://your-domain.com/some-post-method-callback-endpoint
subscription.interval
string
Examples: 1day, 14day, 1month, 3month, 1year.
Default value: 1month
subscription.expiration
string
2024-01-01T12:00:00Z
subscription.dueDate
string
2023-01-01T12:00:00Z
Refer to the Subscritption entity at Subscription Model for additional information.
API for direct payment by credit card number without using payment page.
Sending credit card information using API requires your server to be PCI compliant, if you don't have PCI certification - please see our documentation of Credit Card iFrame
POST
https://api.sensepass.com/api/transactions/pay
Authentication Request Body fields
See here our Authentication page
This API only support merchant API authentication - See Authenticating page for examples
methodType
string
Transaction Type: 1. 'payment' = Regular Payment 2. 'tokenize' = Tokenization 3. 'authorize' = Authorization 4. 'credit' = Credit transaction (Refund transaction without a reference to original payment transaction)
amount*
number
The required amount for this transaction (Cents).
If products are a part of the transaction - they are all summed up & calculated via the following formula:
(amount + vat - discount) * quantity e.g. (10 + 1.7 - 1) * 2.
creditCardDetails.cardNumber*
string
Credit card number
currency*
string
[ USD, CAD, ILS, EUR, RUB ]
creditCardDetails.securityCode*
string
Credit card CVV
reason
string
The reason for this payment - This field will be presented to the consumer
creditCardDetails.socialID
String
Israel Only - Social ID of the credit card owner
creditCardDetails.cardExpiration*
string
Credit card expiration MM/YY
installments
number
Israel Only - Installments
metadata
array
Basic request example to pay using credit card
Response
Update the subscription item to pause, resume or cancel its due payments.
Subscription with status canceled
can't be updated.
These are the available values for the status
parameter in the request body.
active
default value that sets the subscription to active status
paused
pauses the subscription untill set back to active
canceled
canceles the subscription indefinitly
Only one header key is required for the request in the example below
PATCH
https://api.sensepass.com/api/subscription/:subscriptionUid
available status values are: active
, paused
, canceled
subscriptionUid
string
bf8b7e01-466d-4996-b9a2-fc0880923359.
deviceId*
string
2ooeww5ufzg3nkuf8a10g15i5epu8o58jv1rznif3o1tr6xsb1rm
branchApiKey*
string
mQzMLLSpqjRZfWBgQcAej5Dus7HHvmRsSsrN6FYoeWWUAehm3RjD596pZb9gfrxx4jQOP2MCQgoLaaU9SAdlzVsWnR63ZETqALpn
merchantApiKey*
string
xvRKKxOWAYbTH2yKQLlzkta2eovvkzlzTW98NcA9KVfwrOF22GA7bBOHHAeooQrmKelv0TU3Q7c8wiJgTQweKCbXR5ohC6JtCygJ
status*
string
active,paused,canceled
Refer to the Subscritption entity at Subscription Model for additional information.
Fetch a subscription by subscription ID.
It is required to send one authentication header, only one header key is required for the request in the example below
GET
https://api.sensepass.com/api/subscription/:subscriptionUid
subscriptionUid
string
bf8b7e01-466d-4996-b9a2-fc0880923359
deviceId
string
2ooeww5ufzg3nkuf8a10g15i5epu8o58jv1rznif3o1tr6xsb1rm
merchantApiKey
string
xvRKKxOWAYbTH2yKQLlzkta2eovvkzlzTW98NcA9KVfwrOF22GA7bBOHHAeooQrmKelv0TU3Q7c8wiJgTQweKCbXR5ohC6JtCygJ
branchApiKey
string
mQzMLLSpqjRZfWBgQcAej5Dus7HHvmRsSsrN6FYoeWWUAehm3RjD596pZb9gfrxx4jQOP2MCQgoLaaU9SAdlzVsWnR63ZETqALpn
Refer to the Subscritption entity at Subscription Model for additional information.
API for getting device ID using SensePass tags.
This API should be called once on new tag assignment for a register, then the register saves the device ID for the next transactions until un-pairing proccess occur.
POST
https://api.sensepass.com/api/devices/match
API for getting device ID using SensePass tags.
Authorization is a process of placing a hold on the available credit of the consumer for the requested amount, no settlement will be created.
This process is useful for reserving funds from the consumer, after a successful authorization you will get token in order to create payment transaction based on the funds reserved.
The funds will be reserved until a payment will be made or void will be called to release the funds.
Call "transactions/init" in order to create an authorization request and add the "methodType" field with "authorize".
The amount field can be sent blank for future authorization transaction, the amount will be sent later using "authorize" API
URL: /transactions/init
Request Body:
Response body:
The consumer tap the sticker, or get the payment link through e-mail or SMS, and choose a payment method.
The consumer choose the payment method as usual and after a successful authorization you will get an update regarding this transaction by websocket, callback and transaction status API.
Example of callback response:
The token field in "paymentDetails" object is the authorization token.
Now that we have our authorization token you can make a capture will the full authorization amount, or capture smaller amount than the authorization amount multiple times, or you can void the authorization.
Capturing can be made with the full authorization amount once, or with smaller amount multiple times until you reach the authorization amount.
URL: /transactions/pay
Request Body:
The amount fields represents the amount in cents, value of 100 represents 1.00
Request Body for Authorize.net token:
Response body:
Void is the process of cancelling a pending authorization and release the credit on the consumer.
Void will not refund the payment already settled.
URL: /transactions/void
Request Body:
Request Body for Authorize.net token:
Response body:
Re-Authorization enables you to place an hold on the available credit of the consumer for the requested amount again, using the same token of the original authorization.
URL: /transactions/authorize
Request Body:
The amount fields represents the amount in cents, value of 100 represents 1.00
Request body for Authorize.net token:
Response body:
POST
/transactions/:transactionNumber/closeAuth
Supported only for "Cardknox" processor.
Close Authorization is the process of closing an active authorization after at least one payment has been made and release the remaining credit.
To activate Close Authorization all these should exist:
The transaction's method type has to be of type Authorization
The sum of successful payments under the Authorization transaction must be less than the original auth amount.
Request Body:
Response body:
See Transactions entity schema:
Full Transaction Entity schema:
See
See Transactions entity schema:
subscription ID received from the response
subscription ID received from the response
deviceAliasKey is the device ID created for the tag.
See our docs regarding
The "token" field represents authorization token from the previous section, or token from .
At least one successful payment has been made (if there aren't any successful payments, use endpoint to release the remaining credit).