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...
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:
Accept any payment app, any wallet, any card any way your customer wants.
SensePass supports currently 59 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
Trustly
ACH
Mobile Money
PIX
Boleto
Abitab
PSE
OXXO
MercadoPago
SPEI
Pago Efectevio
Infonet
Pago al Paso
Pago Efectivo
Pay Cash
Pay Valida
Yape
Coinbase
BitPay
PalWallet
GET
/transactions/paymentProvides/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
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 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.
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.
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 currently supports 18 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 POS
Oracle Netsuite ERP
VRP
Vend - Lightspeed R
Shopify POS
Anthology - Student Management
Aptos - Capstone
Dimension Computer
NCR
Prism RBS - POS + MPOS
PAR
Vela POS
SABX POS
API for creating new payment requests, this API create Transaction Entity.
POST
https://api.sensepass.com/api/transactions/init
This API creates new payment request based on the fields below.
Authentication Request Body fields
See here our Authentication page
methodType
string
Transaction Type: 0. 'payment' = Regular Payment 1. 'tokenize' = Tokenization 2. 'authorize' = Authorization 3. '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.
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 ]
maxInstallments
number
Installments Limit for this transaction - Valid only for credit card payment
returnURL
string
URL to redirect consumer after Success or Error (For E-Commerce Transactions)
cancelURL
string
URL to redirect consumer on cancel event from consumer (For E-Commerce Transactions)
callbackURL
string
URL to Callback API - SensePass will call this API with full Transaction Entity for every status change about this transaction
posData
object
Any data (object/array/string/number etc...) to be received in the callback url or transaction's responses
clientPhoneNumber
string
SMS message will be sent to this consumer number for SMS payment
clientEmail
string
email message will be sent to this consumer email for remote payment
clientName
string
consumer name for the payment
reason
string
The reason for this payment - This field will be presented to the consumer
invoice
object
Used to present invoice for the consumer before the payment
receipt
object
Used for present receipt for the consumer after the payment
emailConfig.paymentRequest.language
string
[ en, he, ru ]
receiptNotifications
object
Receipt Notifications
products
object
Products information
metadata
object
billingAddress
object
shippingAddress
object
paymentDetails
object
Payment details Input
See Transactions entity schema: #transaction-entity
Basic request example to create a new transaction.
See our full examples for creating transactions on the left menu.
Full Transaction Entity schema: #transaction-entity
See our payment flow chart here
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
See Transactions entity schema: #transaction-entity
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.
For delivery status - See "SMS" field in
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.
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.
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 .
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.
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.
Please see the full invoice model here:
URL: /transactions/init
Request Body:
POST
/transactions/init
This API creates new payment request based on the fields below.
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.
It is required to implement a POST endpoint on your server based on the same interface as
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.
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
For delivery status - See "SMS" field in
See invoice object entity:
See receipt object entity:
entity:
See product object entity:
a unique array with a key-value pair for displaying information on SensePass Dashboard (backoffice)
Customer's billing address entity:
Customer's shipping address entity:
entity:
See product object entity:
See Transactions entity schema:
See Transactions entity schema:
See Transactions entity schema:
See Transactions entity schema:
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
For delivery status - See "SMS" field in #transaction-entity
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
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
See invoice object entity: #invoice-entity
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
Basic request example to create a new transaction.
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
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
See Transactions entity schema: #transaction-entity
Simple request example to create new transaction with website custom data.
The data is key-value pairs 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 e-commerce platform on any transaction event - Socket.IO messages, callback, transaction status API.
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
posData
object
Any data (object/array/string/number etc...) to be received in the callback url or transaction's responses
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
See Transactions entity schema: #transaction-entity
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:
Terminal Agent works as a proxy to all SensePass cloud API describes in this docs.
In addition, Terminal agent allows you to use specific API's created for the Terminal Agent software.
Stroing and sending Device ID in the request body is not required for all API requests, Terminal Agent stores and will append this data to your requests automatically.
Instead of calling our cloud API (api.sensepass.com / api.sandbox.sensepass.com) - just change the base URL of your requests to http://localhost:8003/
Example: http://localhost:8003/api/transactions/init
The schema of this requets is identical to the cloud API.
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.
See full information about callbacks logic here: Callback
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.
See the full interface model here: Transaction Entity
Notification Example:
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.
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
products
object
Products information
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
cancelURL
string
URL to redirect consumer on cancel event from consumer
See Transactions entity schema: #transaction-entity
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:
Request Body:
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.
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:
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:
"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:
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.
Please see the full invoice model here:
Request Body:
POST
/transactions/init
This API creates new payment request based on the fields below.
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
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:
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:
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
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.
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
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.
It is required to implement a POST endpoint on your server based on the same interface as
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.
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 device immediately after the payment approved, and on their SensePass account.
Receipt full documentation:
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:
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}
Authentication Request Body fields
See Transactions entity schema:
POST
https://api.sensepass.com/api/transactions
Body
FilterData
Example Request
Body
Response
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
Authentication Request Body fields
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:
Payment commit is a mechanisim that allows SensePass to get acknowledgement from the POS or e-commerce website that the payment approval event identified and processed by the POS or e-commerce website.
This entity will be included in transaction-entity only for "Approved" status.
You are required to parse this entity and check whether the flag "isPaymentCommitted" (see below) is "true", in this case call "commitLink" URL with GET method, without any additional headers or query params. Calling this API will mark the transaction as "Payment Committed".
This model is referenced in "paymentCommit" field of transaction-entity response body
Flow:
The transaction must be created with "readyForPayment": false flag first
The customer can see the transaction page and can't choose any payment method
The platform calls PATCH API to update transaction details including "amount" field, this API can be invoke multiple times
The platform calls "readyForPayment" API - which allows the customer to choose a payment method and pay - without having to refresh the page or tap again
This flow is useful for POS who would like to create an initial transaction object with zero amount and update the total amount and other fields during the products scanning proccess, or any other flow where there is a requirement to create transaction once, and update it's amount and data later.
The customer will be allowed to make payment only after "readyForPayment" API will be called
POST
https://api.sandbox.sensepass.com/api/transactions/init
PATCH
https://api.sandbox.sensepass.com/api/transactions/250b859e1fb5b162d476f67dcc9ef9f0e2cb3a9412d13a610412d769
POST
https://api.sandbox.sensepass.com/api/transactions/250b859e1fb5b162d476f67dcc9ef9f0e2cb3a9412d13a610412d769/readyForPayment
reason
products
posData
metadata
PATCH
https://api.sandbox.sensepass.com/api/transactions/250b859e1fb5b162d476f67dcc9ef9f0e2cb3a9412d13a610412d769
The SensePass token migration process allows merchants to securely transfer customer payment information for tokenization.
This process involves the merchant sending a structured Excel file, which contains sensitive customer data such as credit card numbers, expiration dates, and other relevant information.
The process can be completed in two distinct workflows:
Workflow 1: Generating New Tokens
File Submission: The merchant submits an Excel file following the prescribed format available on our documentation page. This file should include all required customer data fields.
Tokenization by SensePass: Upon receiving the file, SensePass processes the data by generating new, unique tokens for each credit card entry. These tokens are securely mapped to the original payment information within the SensePass system.
File Return: SensePass returns the processed file to the merchant. This file will contain the newly generated tokens, replacing the original credit card numbers, ensuring that sensitive data is securely handled.
Workflow 2: Using Merchant-Specified Tokens
File Submission: The merchant submits an Excel file in the standard format, including the existing tokens that they wish to retain. The file should also include the corresponding credit card numbers and other required customer data fields.
Token Matching by SensePass: SensePass processes the file by matching the provided tokens to the corresponding payment information within the system. This allows for the creation of identical tokens within the SensePass environment, ensuring seamless continuity for the merchant.
File Return: After processing, SensePass returns the file to the merchant with the specified tokens mapped to the original data, ensuring that the migration is completed without altering the token structure.
SensePass follows stringent security protocols to ensure the safe handling of sensitive customer information throughout the token migration process.
All data is encrypted during transfer and processing, adhering to SOC 2 and PCI DSS standards.
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
POST
https://api.sensepass.com/api/transactions/cancel/{transactionNumber}
Authentication Request Body fields
API to credit (transfer money from merchant to customer) by credit card token.
Token can be created using the .
POST
https://api.sensepass.com/api/transactions/credit
Authentication Request Body fields
errorCode = 0 indicating successful credit operation.
On error see "errorMessage" field which describes the error cause.
Basic request example to credit using Device ID:
Basic request example to credit using Location API Key or Merchant API key:
Double click on "SensePass Configurator" icon on your desktop, if you can't find it - open your browser with this URL: http://localhost:3031
Make sure you are using Chrome or Edge with the latest version installed
This screen will be shown:
Location - Choose the current location for your POS, adding locations to this list can be performed using the Partners platform
EMV - Choose the required pinpad type
POS Name - friendly name for the POS that will be shown in the merhcnat dashboard to recognize your payments
Pairing Code - the (XXX-XXX-XXX) code that is shown below the QR code on the SensePass tag
Click on the "Continue" button and close the window after the succesful pairing message presented.
All set !
There are multiple options to get notifications about the transaction status changes:
Callback
Web sockets (Socket.IO)
Post message event on the client side
All of the notifications are conforms to Transaction Entity interface.
See the full interface model here:
Notification Example:
API for retrieving input from consumer using SensePass Tags and EMV devices.
POST
https://api.sensepass.com/api/transactions/customer-input
For terminal agent invoke use this endpoint: http://localhost:8003/api/transactions/customer-input
See Transactions entity schema:
POST
https://api.sensepass.com/api/transactions/customer-input/reset
For terminal agent invoke use this endpoint:
http://localhost:8003/api/transactions/customer-input/reset
See product object entity:
See Transactions entity schema:
See Transactions entity schema:
Refer to the Subscritption entity at for additional information.
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).
Refer to the Subscritption entity at for additional information.
Refer to the Subscritption entity at for additional information.
See Transactions entity schema:
Full Transaction Entity schema:
The following fields can be updated using the PATCH method based on :
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
receipt-file
Your File Here - PDF or Image
jsonStr
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
invoice
object
Used to present invoice for the consumer before the payment
See invoice object entity: #invoice-entity
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
transactionNumber
string
Transaction Number
active
default value that sets the subscription to active status
paused
pauses the subscription untill set back to active
canceled
canceles the subscription indefinitly
subscriptionUid
string
bf8b7e01-466d-4996-b9a2-fc0880923359.
subscription ID received from the Create a Transaction response
deviceId*
string
2ooeww5ufzg3nkuf8a10g15i5epu8o58jv1rznif3o1tr6xsb1rm
branchApiKey*
string
mQzMLLSpqjRZfWBgQcAej5Dus7HHvmRsSsrN6FYoeWWUAehm3RjD596pZb9gfrxx4jQOP2MCQgoLaaU9SAdlzVsWnR63ZETqALpn
merchantApiKey*
string
xvRKKxOWAYbTH2yKQLlzkta2eovvkzlzTW98NcA9KVfwrOF22GA7bBOHHAeooQrmKelv0TU3Q7c8wiJgTQweKCbXR5ohC6JtCygJ
status*
string
active,paused,canceled
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
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
parmeter
KeyValue
any custom data to filter by: E.G: "name":"Joe"
operator
string
message
string
example: Payment commit is enabled for this transaction
Human readable message about the status of the payment commit
isPaymentCommitted
boolean
example: false
Flag indicating whether the commit is performed
secondsToCommit
number
example: 60
Remaining time in seconds to commit this payment
commitLink
string
example: https://api.sensepass.com/api/transactions/commitPayment/ec2dc489d161aa27a803f48bcf5ffcf
URL of the API to call in GET method in order to mark this transaction as payment committed
deviceId*
string
unique device ID provided by SensePass
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
subscriptionUid
string
bf8b7e01-466d-4996-b9a2-fc0880923359
subscription ID received from the Create a Transaction response
deviceId
string
2ooeww5ufzg3nkuf8a10g15i5epu8o58jv1rznif3o1tr6xsb1rm
merchantApiKey
string
xvRKKxOWAYbTH2yKQLlzkta2eovvkzlzTW98NcA9KVfwrOF22GA7bBOHHAeooQrmKelv0TU3Q7c8wiJgTQweKCbXR5ohC6JtCygJ
branchApiKey
string
mQzMLLSpqjRZfWBgQcAej5Dus7HHvmRsSsrN6FYoeWWUAehm3RjD596pZb9gfrxx4jQOP2MCQgoLaaU9SAdlzVsWnR63ZETqALpn
transactionNumber*
String
Transaction Number
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
transactionNumber*
String
Transaction number to cancel
token*
string
Credit card token - Required
refundAmount
number
The credit amount - Required
deviceId*
string
unique device ID provided by SensePass
inputs*
array
Array of Customer Input Model
Terminal Agent expose synchronous payment request call that reduce the integration time and logics.
Call POST request to: http://localhost:8003/api/transactions/init/sync Use the same schema as - Create a transaction
DeviceId field is not required - Terminal agent will append it automatically
Cancelling the payment request can be done using cancelling the HTTP request from #1
On final result (Approve, timeout or Cancel) - you will get response to this request
URL: http://localhost:8003/api/transactions/init/sync
Request Body:
Response body:
Terminal Agent expose an API to recover from network issue while using the Sync payment API,
in event of error or closed connection, you can use this API to fetch the current status of the last transaction created.
Call GET request to: http://localhost:8003/api/transactions/last Without any request payload
DeviceId field is not required - Terminal agent will append it automatically
Reponse will return immediately according to Transaction Status schema
URL: http://localhost:8003/api/transactions/last
Response body:
Implement Socket.IO client on your platform and listen to this URL:
Production - https://api.sensepass.com?id=id_<Device_Id>
Sandbox - https://api.sandbox.sensepass.com?id=id_<Device_Id>
Listen to "message" event to get notifcations about the transaction for a specific device.
Read here about Socket.IO: https://socket.io/docs/
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
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
See Transactions entity schema: #transaction-entity
Basic request example to pay using credit card
Response
Adding callback URL using "callbackURL" field to request body enables you to get POST request from SensePass on any transaction update events.
It is required to implement a POST endpoint on your server based on the same interface as #get-transaction-object-by-transaction-number
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.
Simple request example to create new transaction with callback URL data.
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
See Transactions entity schema: #transaction-entity
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"
Our system expects for 200-299 status code as an indication for a successful callback handling.
Failure to get these status codes triggers retries logic of 6 attempts with these intervals:
15 seconds
60 seconds
120 seconds
600 seconds
2000 seconds
32000 seconds
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
SensePass Front-end SDK allows front-end websites to control SensePass's wide variety of a payment methods through a simple UI (iFrame).
Credit Cards
Apple Pay - No integration and authentication is required with Apple
Google Pay - No integration and authentication is required with Google
PayPal
Venmo
ACH
Affirm
Amazon Pay
Bit (IL locale)
SensePass SDK enables you fast integration with all the payment methods listed above without having to whitelist your domain for Apple and Google
Add the SensePass's javascript SDK to your website's scripts (Front-end SDK).
Initiate the SensePass client with your clientId
Listen to SDK events on the front-end
Call sensepass.pay() on form submission on the front-end
On successful callback from the SDK - get the transactionNumber
Call from your backend to the API /transactions/:transactionNumber/commit with the transactionNumber to capture the payment, see Commit Transaction for further details
See here full the SDK API Flow
The frontend uses client ID that does not have permissions to payment except for initalizing the SDK
The backend uses device ID / Merchant API Key / Branch API key for calling the commit API
See the API Page
You can play around with the SDK in SensePass's Front-end Playground website
The SDK exposes a few methods to let you operate the iFrame in various ways.
Add the following SDK and add it to your front-end website's scripts: https://js.sensepass.com/scripts/sensepass-front-end@1.0.9.sdk.js
The frontend uses client ID that does not have permissions to payment except for initalizing the SDK
The backend uses device ID / Merchant API Key / Branch API key for calling the commit API
Create a global variable in your front-end website called SensePassFrontEndSDK
.
Set the following configuration for the sandbox
or production
environment:
Create an HTML element with the id sensepass-front-end
.
Initiate the iframe with the init
method:
You can also handle the SDK client from the global variable, e.g. SensePassFrontEndSDK.init()
There is an optional argument for the spClient.init(iframeContainerEl)
to let you set the iframe's container-element directly.
This is a replacement option for the element by id search for the sensepass-front-end
value.
Use the method frameDimensions
to get the iframe's width & height value (in pixels).
Assuming you have an element <div id="sensepass-front-end"></div>
you may get its iFrame (as its first child element) and apply the following callback's dimensions:
Using the above example, you may hook on to the following callbacks aswell:
Use the pay
method to let the payment method trigger its payment request:
POS iFrame allows the POS platform to show an iFrame that contains multiple flows with a single API call, without implementing multiple API's for each flow.
Cancel transaction
Send SMS message to consumer
Manual credit card number entry
QR display for consumer scanning
Timeout logics
SensePass Tag pairing
From the create transaction API - get the value of transactionPage.merchantPage.POS
Example:
3. Show in the POS an iFrame with the URL
These models are part of request and response:
Credit Card iFrame enables you to display iFrame in your checkout page or in your POS software in order to get sensitive credit card details without having to certify your website or software to PCI.
SensePass are PCI Level 1 certified.
Capture
Tokenization
Authorization
From the create transaction API - get the value of transactionPage.merchantPage.creditCard.default
Example of Transaction Response
E-commerce iFrame is useful for e-commerce website - the website displays the iFrame as part of the checkout page to enable customer to pay with multiple payment methods.
This iFrame enables fast integration to any website with minimal coding and enables you to get SensePass updates and new features seamlessly.
Capture, Authorization and Tokenization payment types
Products summary
Receipt
Invoice
Manual Capture
JS post message events,
Callback events,
Socket.IO events,
All SensePass payment methods,
From the create trasnaction API - get the value of transactionPage.consumerPage
transactionPage.consumerPage.regular for full size view
transactionPage.consumerPage.medium
Medium view without the QR
transactionPage.consumerPage.small
Smaller view without the QR and without the header
Interface:
4. to be notified about approval, timeout and errors
Show the page using iFrame and listen for post message events or callback, see here
This model represents the URL of the invoice, the invoice will be presented to the consumer before the payment processing.
This model referenced in "invoice" field of #creating-new-transaction request body.
type
string
File extension name [ pdf, jpg, png ]
url
string
example: http://someDomain.com/invoice1.pdf
This model represent the list of Email and SMS addresses for sending receipts.
This model referenced in "receiptNotifications" field of #creating-new-transaction request body
Array
Email Recipients example: ["a@example.com"]
sms
Array
SMS Recipients example: ["9295522135"]
This model represents all the required data for displaying data on the SensePass Dashboard backoffice.
You must use this structure:
This model is referenced in "metadata" parameter of #creating-new-transaction request body
metadata
array
must contain array of key-value pairs
metadata[0].key
string
must be genericDisplay
metadata[0].value
array
must be array or sectionLabel
-values
pairs
metadata[0].value[0].sectionLabel
string
title to display in the SensePass dashboard's transaction information
metadata[0].value[0].values
array
must be array of label
-value
pairs.
example: {"label": "foo", "value": "bar"}
Payment commit is a mechanisim that allows SensePass to get acknowledgement from the POS or e-commerce website that the settlement event identified and processed by the POS or e-commerce website.
This entity will be included in #transaction-entity only for "Approved" status (settlement).
You are required to parse this entity and check whether the flag "isPaymentCommitted" (see below) is "true", in this case call "commitLink" URL with GET method, without any additional headers or query params.
Calling this API will mark the transaction as "Payment Committed".
This model is referenced in "paymentCommit" field of #transaction-entity response body
message
string
example: Payment commit is enabled for this transaction
Human readable message about the status of the payment commit
isPaymentCommitted
boolean
example: false
Flag indicating whether the commit is performed
secondsToCommit
number
example: 60
Remaining time in seconds to commit this payment
commitLink
string
example: https://api.sensepass.com/api/transactions/commitPayment/ec2dc489d161aa27a803f48bcf5ffcf
URL of the API to call in GET method in order to mark this transaction as payment committed
This model represents the required data to redirect the consumer to the transaction page to complete the payment.
This model referenced in "transactionPage" field of #transaction-entity response body.
qrURL
string
example: https://pay.sensepass.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872
SensePass unique Transaction Page - Responsive page for desktop and mobile
iOSLink
Deprecated
Deprecated
androidLink
Deprecated
Deprecated
This model is referenced in "inputs" field of Customer Input request body
type
string
true
email, shipping_address, first_name, last_name, postal_code, phone, text, boolean
minimumLength
integer
false
example: 2
maximumLength
integer
false
example: 5
question
string
true
example: Please input email address
acceptText
string
false
Relevant for type=boolean, Label of the accept button
rejectText
string
false
Relevant for type=boolean, Label of the reject button
This model represent the payment details as an input for creating a transaction.
This model referenced in "paymentDetails" field of #creating-new-transaction request body
creditCard
Object
Credit Card information
cardNumber
string
example: 4580111111111111
Credit Card Number
expiration
string
example: 12/34 Credit card expiration MM/YY
cvv
string
example: 123 Credit card CVV
socialId
string
example: 123456782 Card holder social ID (IL only)
cardHolderZipCode
string
example: 09231 Card holder ZIP code
cardHolderBillingAddress
string
example: Paul and Mary Moore, 1313 E Main St, Portage Card holder billing street address
This model represents subscription method type & its related data for a new transaction creation.
This model is referenced in the "subscription" field of the Transaction Model object.
Note: Subscription will create recurring payments for the transaction sum accornding to its set interval, due date (which increments with each interval) and expiration date (which stops the subscription).
interval
enum
false
"1month"
"14day", "1month", "1year"
Increment value for the due date of the payment
dueDate
date
false
null
2023-01-01T12:00:00Z
Designated date for which a payment attempt be made
expiration
date
false
null
2024-01-01T12:00:00Z
Available on status = 2 (done)
This model represents settlement status & final-confrimation value from the proccessor, the entity contains all the required data for accounting reports.
This model is referenced in the "settlement" field of the Confirmation Model object.
Note: One settlement object can be related to each confirmation in a transaction.
Settlements are polled by SensePass, therefore a callback/socket-message will be fired once its asserted as complete (status = 2)
status
enum
example: 2 1 = approved, 2 = settled Successful state of a settlement polling attempt
confirmation
string
example: 091239831
Final confirmation value from the processor for the transaction
created
date
example: 2019-12-20T09:47:59.105Z
Available on status = 2 (done)
customize credit card texts
This model represents all the required data for customizing the text for the SDK's credit card form field.
Description of the parameters required for various payment options configurations.
label
string
label of the field
placeholder
string
placeholder while the field is empty
hint
string | object
hint for the field's use
defaultHint
string
hint to default before user interaction
errors
object
mapping the display-keys of various errors
errors.required
string
required field error message
errors.minlength
string
minimum character length error message
errors.maxlength
string
maximum character length error message
Field specific parameters.
securityCode.hint.amex
string
hint for Amex's 4 digits once the credit card field detects an amex-type-card
securityCode.hint.default
string
hint for every card's 3 digits, that is not detected as Amex
cardNumber.errors.cardTypeLength
object
specific object keys to build an error message to clarify the credit card's length:
expiration.errors.cardExpiration
object
securityCode.errors.securityCodeLength
object
This model is referenced in the response of #creating-new-transaction
TransactionNumber
string
example: 14a4334a32c852aeb0cfae52cbff1314649da7f175a8e140b35c147c
The transaction number of the new transaction created
date
date
example: 2019-12-19T09:47:59.105Z
Creation date of this transaction entity
amount
string
example: "1234.56"
Amount of this this transaction entity
currency
string
[ USD, CAD, ILS, EUR, RUB ]
status
number
Current transaction Status of this transaction:
* Initialize (0)
- New Transaction
* TapDetected (1)
- At least one user tapped his mobile device
* UserApproved (2)
- A user approved the payment details for this transaction, the transaction not approved yet
* UserDeclined (3)
- A user declined the payment details for this transaction, it's not a final status, waiting for other users to approve
* ProccessingPayment (4)
- SensePass GW proccessing the payment using the providers and waiting for approval
* TransactionApproved (5)
- SensePass GW approved this transaction, confirmation Data will be sent using Web Socket messaging service
* TransactionDeclined (6)
- SensePass GW decline this transaction according to provider decision
* TransactionFailed (7)
- Transaction Failed
* TransactionTimeout (8)
- Transaction Timeout
* TransactionCancel (9)
- Transaction Cancel
* WaitingForTap (10)
- Waiting For Tap
* TransactionRefund (11)
- Transaction Refund
* TransactionProcessingRefund (12)
- Transaction Processing Refund
* TransactionPartiallyRefunded (13)
- Transaction Partially Refunded
* Transaction Setup (14)
- Transaction not ready for Payment (before update)
statusName
string
example: Transaction Approved
Friendly Status Description
pos
string
example: POS 3, Branch Tel Aviv
The terminal name associated for this transaction
posReceiptsEndpoint
string
example: http://pay.sensepass-api.com/api/invoicesReceipts/receipt/save/hofai3478o8o78o4s849j3920ckj
The endpoint for the pos's receipts to be handled by the selected mode in the transaction's creation
posData
objects
businessName
string
example: Coffee Bar
The business name associated for this terminal
businessId
number
example: 144
The business ID associated to this terminal
timeoutDate
date
example: 2019-12-19T09:47:59.105Z Timeout date for this transaction
SMS
string
paymentCommit
object
products
object
productSumMismatch
boolean
Informs if the sum of all products are not equal to the transaction's amount
confirmations
object
transactionPage
object
confirmation
Deprecated
Deprecated field
paymentMethodData
Deprecated
Deprecated field
subscription
object
parentTransaction
object
This model represents settlement data from the proccessor and SensePass, the entity contains all the required data for accounting reports.
This model is referenced in "confirmations" field of #transaction-entity response body.
Note: Multiple confirmations objects can be related to one transaction, for example after a refund or in a split payment scenario.
confirmationNumber
string
example: 063-d9j09YsY1
Reference ID of the settlement
dateApproval
date
example: 2019-12-19T09:47:59.105Z
Settlement Date
paymentMethodName
string
example: PayPal
Payment Provider Name
approvedBy
string
example: PayPal
Payment Acquirer
providerId
string
example: uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=
Payment Provider ID
requestID
string
example: a4dbf66e-d3f1-4a29-baf7-2591424a9a0c
Provider's Request ID
referenceNumber
string
example: 1778298289
Provider's Payment Reference Number
authNumber
string
example: 123213dsf13111
Provider's Payment Authorization Number
(For credit cards only)
acquirer
string
example: Visa
Provider's Payment Acquirer (For credit cards only)
voucher
string
example: AX09421
Provider's Payment Voucher (For credit cards only)
lastFourDigits
string
example: 8858
Credit Card Last 4 Digits (For credit cards only)
cardExpiration
string
example: 01/26 MM/YY Credit card expiration date (For credit cards only)
installments
number
example: 1
Payment Installments
sensePassReferenceId
string
example: 34e209ea8b24cc831cf
SensePass ReferenceId ID
settlement
object
This model represent the full details about the items in the ticket including sub-products.
This model referenced in "products" field of #creating-new-transaction request body
name
string
example: Coca-Colla
Name of the product
quantity
number
example: 100
Quantity of products
amount
number
example: 3499
Amount/Cost of a single product
discount
number
example: 3499
Discount amount of a signle product
vat
number
example: 100
VAT (Value Added Tax) / Tax, not percentage-based, of a signle product
posIdentifier
string
example: 1234A
POS Identifier for this product
itemNumber
number
example: 0
Receipt ID - Required for receipt generation
productUrl
string
example: https://your-store.com/products/1234
Product URL
productImageUrl
string
example: https://your-store.com/products/images/main.png
Product Image URL
subProducts
objects
Same as Product Entity:
All of these credit cards works with any future expiration and CVV.
Please use your real Venmo account - you won't be charge in SensePass sandbox environment.
Tap on Trustly button in the payment page
Search for "Demo" and choose any demo bank
Type any user and passoword
Click Pay
Tap on Alipay button in the payment page
Choose "No" - the app does not installed
Enter any phone number in the second field and click on the blue button
Click again on the blue button to confirm
Enter any 6 digits
Click on the red circle on the top right corner
Phone Number - 9106064853
OTP - 123456
Italy Iban - DE86120300001019407863
Germany IBAN - DE89370400440532013000
Mexico and Chile
Username - TESTQWG1JLOB
Email - test_user_68912416@testuser.com
Argentina (Direct)
Username - TESTUSER1254153477
Password - iFzPp6HFxV
Email - test_user_1254153477@testuser.com
OTP - 680627
All of the above credit cards works with these AVS values.
Import the Postman file provided below to gain access to a comprehensive collection of requests for all our payment workflows.
This detailed set of requests will enable you to explore, test, and understand each aspect of our payment flows.
Read here about Postman:
The adapter converts SOAP requests to JSON body, send it to our existing API and converts back the JSON response to SOAP envelope.
Our SOAP adapter is dynamic and will support all our future releases and endpoints.
The interaces are identical to our exisitng REST interfaces.
API URL: https://api.sensepass.com/api-soap/
API URL: https://api.sandbox.sensepass.com/api-soap/
URL: https://api.sandbox.sensepass.com/api-soap/transactions/init
Method: POST
Request Body
Response Body
URL: https://api.sandbox.sensepass.com/api-soap/transactions/2214cd9462fc815935f43e4379d9e90179f92ec60cd589267a104eb2
Method: GET
Request Body
Response Body
See
Any data (object/array/string/number etc...) received in "posData" field in
SMS delivery status, see "clientPhoneNumber" field in
See payment commit object entity:
See product object entity:
See confirmation object entity:
See transaction page entity:
see subscription object entity:
parent transaction with method type: Subscription/Authorization/Tokenization.
Amex
370000000000002
Amex
370276000431054
Amount should be higher than $10
Discover
6011000000000012
Discover
6011208703331119
Amount should be higher than $10
JCB
3088000000000017
Diners Club / Carte Blanche
38000000000006
VISA
4007000000027
VISA
4012888818888
VISA
4111-1111-1111-1111
VISA
4444-3333-2222-1111
Amount should be higher than $10
MasterCard
5424000000000015
MasterCard
2223000010309703
MasterCard
2223000010309711
MasterCard
5454545454545454
Amount should be higher than $10
sb-4ckmy3035527@personal.example.com
Jt17!9DX
056008849
123456789
Any
4242424242424242
(929) 552-3221
123123
2605
Any
Any
Any
Any
US - 5712657204 IT - 393339741231 UK - 4408082580300 DE - 4901761428434
Enter any value
11111
111
111111111
111
11111
999
111111111
999
99999
111
uid
string
example: 52c8e55d-26dc-4935-9214-e3fccf6c8bcf The ID of the onboarding created
url
string
example: https://partner.sandbox.sensepass.com/partnersOnBoarding/52c8e55d-26dc-4935-9214-e3fccf6c8bcf
The URL to the onboarding IFrame
status
string
example: Pending
The status of the onboarding process
status
string
settled/voided/expired
paymentMethod
string
paymentMethod name
settlementAmount
number
settled transaction amount
fee
number
submitDate
date
transaction date
settlementDate
date
settlement date
transactionNumber
string
sensepass unique identifier
pmTransId
string
payment method identifier
cardType
string
settlementCurrency
string
This model is referenced in the response of Get Onboarding Configuration Page
The model is an array of URLs that the merchant can go into, for example:
This model is referenced in the response of #onboarding-status
uid
string
example: 52c8e55d-26dc-4935-9214-e3fccf6c8bcf The ID of the created onboarding
message
string
example: Merchant with this license id already exist
The error message in case the onboarding process failed
status
string
example: Approved
The status of the onboarding process, can be "Approved", "Failed", "Pending"
merchant
object
The merchant details in case the onboarding process succeeds (status is "Approved")
merchant.merchant_info
object
The merchant information inserted on the onboarding creation request
merchant.merchant_info.category
string
The merchant's category
merchant.merchant_info.city
string
The merchant's city
merchant.merchant_info.country
string
The merchant's country
merchant.merchant_info.email
string
The merchant's email
merchant.merchant_info.house_number
number
The merchant's house number
merchant.merchant_info.phone_number
string
The merchant's phone number
merchant.merchant_info.social_id
string
The merchant's EIN
merchant.merchant_info.name
string
The merchant's name
merchant.merchant_info.state
string
The merchant's state
merchant.merchant_info.street
string
The merchant's street
merchant.merchant_info.website
string
The merchant's website
merchant.merchant_info.locale
string
The merchant's locale (default is USA if nothing was filled)
merchant.merchant_owner_info
object
The merchant's owner information inserted on the onboarding creation request
merchant.merchant_owner_info.email
string
The merchant's owner's email
merchant.merchant_owner_info.name
string
The merchant's owner's name
merchant.merchant_owner_info.phone_number
string
The merchant's owner's phone number
merchant.merchant_owner_info.social_id
string
The merchant's owner's social id
merchant.active
boolean
If the merchant is active or not (true/false)
merchant.verified
boolean
If the merchant is verified or not (true/false)
merchant.status
object
The merchant's status object
merchant.status.uid
string
The merchant's status uinque identifier
merchant.status.name
string
The merchant's status name
merchant.uid
string
The merchant's uinque identifier
merchant.created
string
The merchant's created date
merchant.displayName
string
The merchant's display name (title)
merchant.logo
string
The merchant's logo
merchant.locations
array of objects
The merchant's locations (stores) array
merchant.locations.active
boolean
If the merchant's location is active or not (true/false)
merchant.locations.verified
boolean
If the merchant's location is verified or not (true/false)
merchant.locations.uid
string
If the merchant's location unique identifer
merchant.locations.created
string
If the merchant's location created date
merchant.locations.dispaly_name
string
If the merchant's location display name (title)
merchant.locations.number
string
If the merchant's location number
merchant.locations.apiKey
string
If the merchant's location api key
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
See Transactions entity schema: #transaction-entity
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.
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 ]
See Transactions entity schema: #transaction-entity
Ensure your system meets the mentioned requirements
Login to SensePass Partners
Navigate to "Developers" -> "Terminal Agent"
Download the latest version of Terminal Agent software using the download link on the partners page
Click on the green button "Download config file"
Double click on the EXE file in your downloads folder and start the installation process
Click on "I agree" and click "Install"
Setup will complete with this message:
Move the config.json file from #5 to this location:
C:\Program Files (x86)\SensePass Ltd\Terminal Agent
Open the Services app (Run -> services.msc)
Look for "SensePass-Agent-V2", right click -> Restart
Terminal Agent is a SensePass software designed to connect platforms to SensePass network with a range of EMV pinpads and to simplify the integration process, allowing for quick setup and deployment.
Terminal Agent also works as a proxy to all SensePass cloud API describes in this portal.
In addition, Terminal agent allows you to use specific API's created for the Terminal Agent software to reduce the integration time.
Pairing of tags and EMV devices is already implemented
Terminal Agent handles the pairing process for all types of terminals and tags using SensePass UI
Storing API keys, Device ID's and EMV ID's is already implemented
Terminal Agent stores all the credentials and authentication keys and append them automatically to all of your requests
Implementing Web-sockets or Callback endpoint is already implemented
Terminal Agent internal logic works with Socket.IO websockets securely, according to SensePass interface and returns to your platform
Integrating using Terminal Agent enables you to support new features and releases without any change on your end
Most of the new features that will be released to our API will be available to you seamlessly by updating the Terminal Agent software on the POS, without having to change one line of code on your platform
Integration with the Cancel API is already implemented
Terminal Agent detects the cancel event of the HTTP request for and calls internally to the "Cancel" API in order to revoke the pending payment request
Terminal Agent software is already certified by SensePass
Integration using Terminal Agent reduces most of the certifcation process for your platform
System Requirements: Operating System: Compatible with Windows 7, 8, 10, and newer versions.
Terminal Agent expose synchronous payment request call that reduce the integration time and logics.
DeviceId field is not required - Terminal agent will append it automatically
Cancelling the payment request can be done using cancelling the HTTP request from #1
On final result (Approve, timeout or Cancel) - you will get response to this request
in event of error or closed connection, you can use this API to fetch the current status of the last transaction created.
Call GET request to: http://localhost:8003/api/transactions/last Without any request payload
DeviceId field is not required - Terminal agent will append it automatically
Reduces the intergation time: Pairing, cancelling request and working with websockets logics are already embeded inside terminal agent
Compatibility with Various Pinpads: Terminal Agent supports a wide array of EMV pinpad models and manufacturers, enhancing its utility in diverse environments.
Easy Integration: Designed for effortless setup, enabling quick deployment across multiple terminals.
Real-time Monitoring: Ensures continuous operation with live monitoring capabilities.
Automatic Updates: Keeps the system up-to-date with the latest features and security patches without manual intervention.
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.
For delivery status - See "SMS" field in
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.
Call POST request to: Use the same schema as -
Terminal Agent expose an API to recover from network issue while using the,
Reponse will return immediately according to schema
Pagination data
See Transactions entity schema:
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
paymentMethod
string
Sensepass payment method name
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: submitDate
filter[]
FilterData
filter query rows by array of conditions
parmeter
KeyValue
any custom data to filter by: E.G: "name":"Joe"
operator
string
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
For delivery status - See "SMS" field in #transaction-entity
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
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.
pinCode*
string
SensePass Tag ID - it's located below the QR code, for example: 53K-HMD-786
apiKey*
string
Location or Merchant API key
deviceId
string
Optional - Device ID of existing register, will add the tag to this device instead of creating a new device ID
posName
string
The name of the register, this value will be shown in merchant dashboard and partners dashboard
deviceAliasKey is the device ID created for the tag.
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
The flow chart below describes the possible transitions between Transaction status, see "status" field in #transaction-model
Green and red status are final, further transition to another status is not possible.
The flow chart below describes the typical payment flow for POS and E-commerce.
style selected elements & general themes
Customizing is possible only in the initial step of the configuration of SensePass's SDK client. If unfimiliar with the configuration step, refer to the step.
Download and edit the following themes you wish to style on your own:
Save your themes in a hosting site of your choosing and set their URL in the config JSON.
THIS METHOD WILL BE DEPRECATED IN FAVOR OF A NEW ONE
Please refer to for the new version.
Manual capture allows creating a transaction and call capture request later.
The capture request can only be called once, see for multi capture flow.
Manual capture is useful for making a payment and updating the payment details later.
Call "transactions/init" in order to create a capture request and add the "methodType" field with "manual_capture".
See here the full docs of
URL: /api/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: /api/transactions/{transactionNumber}/capture
Request Body:
Here is an example:
Response body:
This model represents all the required data for receipt handlind once the transaction is approved.
There are 3 possible options available for the POS/E-Commerce platform:
Sensepass generate the receipt using the model, the receipt will be presented to the consumer and to saved in SensePass Merchant dashboard
POS generates the receipt and will send it to SensePass on transaction approved, the receipt will be presented to the consumer and to saved in SensePass Merchant dashboard
No receipt handling is required
Multiple options can be selected in the same location and merchant, these options are in the transaction level.
This model is referenced in "receipt" field of request body
Receipt info model is referenced in "receiptInfo" field of
This model represents the recipients that will receive receipt by email and SMS.
Material theme:
SensePass theme:
Use the to set you custom text and other UI configurations.
You may test your themes on our playground:
You may add metadata to the request with the key "metadata", follow for further instructions.
Receipt notifications model is referenced in "receiptNotifications" field of request body
array
example:
sms
array
example:
mode
number
1 (GenerateReceipt)
= generates a receipt using the given configuration.
2 (POSProvidesReceipt)
= pos is responsible to send the receipts to the provided endpoint after the transation/'s creation.
3 (NoReceipt)
= does not generate any receipt.
null/undefined
= a null/undefined value will default the receipt configuration from its branch definition.
accountingProvider
number
accounting service provider for the receipts to be processed, required if mode is "1" (GenerateReceipt), "2" (POSProvidesReceipt) or a null value.
1 (Rivhit)
2 (ICount)
3 (QuickBook)
4 (SensePass)
5 (Priority)
receiptInfo
object
See receipt info object entity: #receipt-info-entity
customerId
string
example: 123456789
firstName
string
example: John
lastName
string
example: Doe
address
string
example: 144 Begin Dw
city
string
example: Tel Aviv
zipCode
string
example: 90745
socialID
string
example: 123456789
phoneNumber
string
example: 2124567890
languageCode
string
[ he, en, ru ]
currencyCode
string
[ ILS, USD, EUR, RUB ]
string
example: john@doe.com
discount
number
example: 0
vat
boolean
example: true
See our Partner API documentation here:
https://app.swaggerhub.com/apis-docs/SensePass3/Partners-API/1.1.3
All of our API's are organized around REST, accepts JSON request body and JSON response.
We also provide SOAP and XML Adapters for our REST API, using the same interface and entities.
The adapters are dynamic and will support all our future releases and endpoints.
You can play around with the SDK in SensePass's Front-end Playground website
This model represents customer shipping/billing details that the merchant/platform shares with SensePass in order for SensePass to send this information to the payment methods to simplify the payment flows without having the consumer to type this information.
This model is referenced in the "billingAddress" field and "shippingAddress" field of the Creating a transaction.
title
string
Customer’s Title
given_name
string
Customer's given name
family_name
string
Customer's family name
string
Customer’s email address
country
string
Customer’s country
city
string
Customer’s city
street_address
string
Customer’s street address
street_address2
string
Customer’s street address. Second Line.
phone
string
Phone number. Preferably a mobile phone number.
postal_code
string
Customer’s postal code. Validation according to Universal Postal Union addressing systems.
region
string
Customer’s region or state - Mandatory for US and AU market. Validations according to ISO 3166-2 format, e.g. OH, NJ, etc.
customize payment method's texts and other UI parameters
This model represents all the required data for displaying data on the SensePass Dashboard backoffice.
You must use this structure:
Description of the parameters required for various payment options configurations.
creditCard
object
credit card ui-data orientation
creditCard.animation
enum
options for animating the selected payment method display:w "expand" / "one-line" / "none"
creditCard.customText
object
credit card's customizable texts
creditCard.customText.direction
enum
options for the text direction: "ltr" | "rtl". (left-to-right / right-to-left)
creditCard.customText.fields
object
credit card fields with options to edit their text. keep in mind to handle various languages.
creditCard.customText.fields[MODEL_FIELD]
model
Backend verification step to complete the payment
This API call must be performed from your backend and not through the JS in the frontend.
make sure to receive the transaction number from the SDK's "pay" callback in order to continue.
POST
https://api.sensepass.com/api/transactions/:transactionNumber/commit
Authentication options:
Device ID / Merchant API Key + Branch Number / Branch API key
transactionNumber*
String
transaction number of the ready-transaction
deviceId
String
location's device id - required if no api key
methodType*
Enum
manual_capture or tokenize or authorize
apiKey
String
merchant/location api key
branchNumber
String
required if merchant api key is used.
e.g. 123
callbackURL
String
URL (POST/GET) to receive transaction changes
metadata
Array
currency
String
Defaults to location's locale.
USD | CAD | EUR | ILS (etc)
Required for manual_capture transactions
amount
Amount in cents.
Required for manual_capture
or authorize
transactions
products
Array
posData
Object
Any object/array you'd like to receive using the callback URL
The interaces are identical to our exisitng REST interfaces.
API URL: https://api.sensepass.com/api-xml/
API URL: https://api.sandbox.sensepass.com/api-xml/
URL: https://api.sandbox.sensepass.com/api-xml/transactions/init
Method: POST
Request Body
Response Body
URL: https://api.sandbox.sensepass.com/api-xml/transactions/2214cd9462fc815935f43e4379d9e90179f92ec60cd589267a104eb2
Method: GET
Request Body
Response Body
field model for editting a credit card form field text .