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...
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.
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
Name | Type | Description |
---|---|---|
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.
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
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
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
For delivery status - See "SMS" field in #transaction-entity
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
See invoice object entity: #invoice-entity
receipt
object
Used for present receipt for the consumer after the payment
See receipt object entity: #receipt-entity
emailConfig.paymentRequest.language
string
[ en, he, ru ]
receiptNotifications.email
array
Invoice & Receipt Recipients Email
example: ["a@example.com"]
receiptNotifications.sms
array
Invoice & Receipt Recipients SMS
example: ["9295522135"]
products
object
Products information
See product object entity: #product-model
metadata
object
a unique array with a key-value pair for displaying information on SensePass Dashboard (backoffice) Metadata Model
billingAddress
object
Customer's billing address entity: Customer Billing Details Model
shippingAddress
object
Customer's shipping address entity: Customer Shipping Details Model
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.
See Transactions entity schema: #transaction-entity
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.
See Transactions entity schema: #transaction-entity
Adding invoice to your payment request alllows your customers to view the full payment information before processing the payment.
Supported invoice file formats: PDF, JPEG, PNG.
It is required to host the invoice on a publicy accessible server and send SensePass the full URL of the file, SensePass will not expose to the consumers the URL, instead our servers will download the invoice from your server and host it securely.
URL: /transactions/init
Request Body:
POST
/transactions/init
This API creates new payment request based on the fields below.
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.
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Please see the full invoice model here:
Name | Type | Description |
---|
See Transactions entity schema:
Name | Type | Description |
---|
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
products
object
Products information
See product object entity: #product-model
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 |
clientEmail | string | email message will be sent to this consumer email for remote payment |
emailConfig.paymentRequest.language | string | [ en, he, ru ] |
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:
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 |
Adding receipt to your payment request alllows your customers to view the full payment receipt on their mobile device immediately after the payment approved, and on their SensePass account.
Receipt full documentation: Receipts Model
URL: /transactions/init
Request Body:
Response body:
See "posReceiptsEndpoint" field in the response body, the value of the field represents the unique endpoint created for saving the receipt created by the POS.
Save this value in the POS for a case of "Approved" status event.
Register to Socket.IO channel or use callback URL to get notifications about transaction status changes.
Once the transaction status changes to status "Approved" (5) you will get "confirmations" object in the Transaction model:
Save all "confirmationNumber" objects, and create receipt in your POS.
More than one "confirmations" object can be available in cases of split payment, refund and partial refund
Once the receipt is ready in your POS, invoke API request to the endpoint from "posReceiptsEndpoint" (see the previous section).
Example URL (based on "posReceiptsEndpoint"): https://api.sandbox.sensepass.com/api/invoicesReceipts/receipt/save/0128c664-1a2a-422c-91d0-85a8af229ed4
Request Body as form-data:
"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:
Simple request example to create new transaction with callback URL data.
Adding callback URL to request body enables you to get POST request from SensePass on any transaction update events.
In event of communication error from SensePass to your server - SensePass will retry multiple times to call your server will the callback URL over a period of days.
Make sure the URL provided in "callbackURL" is fully accessible from the internet and does not contain local IP or private DNS.
SensePass IP's are dynamic - Limiting your endpoint to specific IP address is not possible.
Request Body:
POST
/transactions/init
This API creates new payment request based on the fields below.
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
See invoice object entity:
Field | Value |
---|---|
It is required to implement a POST endpoint on your server based on the same interface as
Name | Type | Description |
---|
See Transactions entity schema:
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 |
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 |
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.
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.
Interface:
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|
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 ]
apiKey*
string
Unique API provided by SensePass, unique for each location of your merchant
products
object
Products information
See product object entity: #product-model
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
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 |
Adding receipt to your payment request alllows your customers to view the full payment receipt on their device immediately after the payment approved, and on their SensePass account.
Receipt full documentation: Receipts Model
Request Body:
Response body:
See "posReceiptsEndpoint" field in the response body, the value of the field represents the unique endpoint created for saving the receipt created by the e-commerce platform.
Save this value in your website platform for a case of "Approved" status event.
Register to Socket.IO channel or use callback URL to get notifications about transaction status changes.
Once the transaction status changes to status "Approved" (5) you will get "confirmations" object in the Transaction model:
Save all "confirmationNumber" objects, and create receipt in your website platform.
More than one "confirmations" object can be available in cases of split payment, refund and partial refund
Once the receipt is ready in your platform, invoke API request to the url from "posReceiptsEndpoint" (see the previous section).
It is required to host the receipt on a publicy accessible server and send SensePass the full URL of the file, SensePass will not expose to the consumers the URL, instead our servers will download the receipt from your server and host it securely.
Request Body:
"associateToConfirmationNumbers" is an array of "confirmationNumber" for the previous sections, this is the relation between the receipt to the payments of the consumer.
Response body:
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}
See Transactions entity schema: #transaction-entity
Full Transaction Entity schema: #transaction-entity
See our payment flow chart here
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.
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:
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
transactionNumber*
String
Transaction Number
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
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.
See our docs regarding Transaction Events
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.
The "token" field represents authorization token from the previous section, or token from Tokenization API.
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:
Name | Type | Description |
---|
Name | Type | Description |
---|
Refer to the Subscritption entity at for additional information.
deviceId | string | 2ooeww5ufzg3nkuf8a10g15i5epu8o58jv1rznif3o1tr6xsb1rm |
merchantApiKey | string | xvRKKxOWAYbTH2yKQLlzkta2eovvkzlzTW98NcA9KVfwrOF22GA7bBOHHAeooQrmKelv0TU3Q7c8wiJgTQweKCbXR5ohC6JtCygJ |
branchApiKey | string | mQzMLLSpqjRZfWBgQcAej5Dus7HHvmRsSsrN6FYoeWWUAehm3RjD596pZb9gfrxx4jQOP2MCQgoLaaU9SAdlzVsWnR63ZETqALpn |
subscriptionUid | string | bf8b7e01-466d-4996-b9a2-fc0880923359 |
Cancelling a pending transaction endpoint allows you to block the payment flow for consumers that currently visiting the payment page and also block the payment page for new consumers - only for specific transaction.
This API will not refund approved transactions, see Refund a transaction
POST
https://api.sensepass.com/api/transactions/cancel/{transactionNumber}
See our payment flow chart here
API for refund 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
errorCode = 0 indicating successful refund operation.
On error see "errorMessage" field which describes the error cause.
Basic request example to refund a new transaction using Device ID:
Basic request example to refund a new transaction using Location API Key or Merchant API key:
See our payment flow chart here
subscription ID received from the response
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
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
Name | Type | Description |
---|
See Transactions entity schema:
transactionNumber*
String
Transaction number to cancel
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
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
transactionNumber*
string
The Transaction Number To Be Refunded
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
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 |
branchNumber | string | Location ID provided by SensePass |
currency* | string | [ USD, CAD, ILS, EUR, RUB ] |
creditCardDetails.securityCode* | string | Credit card CVV |
deviceId | string | Terminal unique device ID provided by SensePass (For Device based Transactions) - Required if apiKey is empty |
merchantApiKey | string | Merchant ID provided by SensePass (For Web based Transactions) - Required if deviceId is empty |
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 |
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
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.
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 #transaction-entity
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.
See Transactions entity schema: #transaction-entity
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 #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.
URL: /transactions/init
Request Body:
POST
/transactions/init
This API creates new payment request based on the fields below.
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"
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
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.
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|
See Transactions entity schema:
Name | Type | Description |
---|
See Transactions entity schema:
field
type
description
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
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
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
callbackURL
string
URL to your POST endpoint
amount* | number | The required amount for this transaction (Cents). If products are a part of the transaction - they are all summed up & calculated via the following formula: (amount + vat - discount) * quantity e.g. (10 + 1.7 - 1) * 2. |
isCent | boolean | Determines if Amount represents in cents or not |
timeOut | number | Time until the transaction will be timed out (seconds) |
currency* | string | [ USD, CAD, ILS, EUR, RUB ] |
apiKey* | string | Unique API provided by SensePass, unique for each location of your merchant |
returnURL | string | URL to redirect consumer after Success or Error |
cancelURL | string | URL to redirect consumer on cancel event from consumer |
callbackURL | string | URL to Callback API - SensePass will call this API with full Transaction Entity for every status change about this transaction |
amount* | number | The required amount for this transaction (Cents). If products are a part of the transaction - they are all summed up & calculated via the following formula: (amount + vat - discount) * quantity e.g. (10 + 1.7 - 1) * 2. |
isCent | boolean | Determines if Amount represents in cents or not |
timeOut | number | Time until the transaction will be timed out (seconds) |
currency* | string | [ USD, CAD, ILS, EUR, RUB ] |
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 |
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
Request 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: #invoice-model
Request Body:
POST
/transactions/init
This API creates new payment request based on the fields below.
See Transactions entity schema: #transaction-entity
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 #transaction-entity
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.
See Transactions entity schema: #transaction-entity
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:
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
Refer to the Subscritption entity at Subscription Model for additional information.
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
Refer to the Subscritption entity at Subscription Model for additional information.
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
status | description |
---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
The callback endpoint can be configured using "callbackURL" field on of subscriptions.
Main model structure is identical to
"parentTransaction.subscription" field was added with the subscription object, according to
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
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
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
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