arrow-left

Only this pageAll pages
gitbookPowered by GitBook
triangle-exclamation
Couldn't generate the PDF for 119 pages, generation stopped at 100.
Extend with 50 more pages.
1 of 100

SensePass Docs

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...

Loading...

Loading...

Payment Flows

E-commerce

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

  • WizCommerce

Examples for POS (In-Store)

Integrations

hashtag
POS Integrations

hashtag
E-Commerce Integrations

Receipts

Payment request with receipt generated by the POSchevron-rightPayment request with receipt generated by SensePasschevron-right

Examples for e-commerce

Other Flows

Socket.IO Websockets

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/arrow-up-right

Usage

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.

hashtag
Authentication

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.

hashtag
Web Server

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.

Flow Charts

SDK & iFrames

Overview

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.

hashtag
Payment Methods

SensePass network supports multiple payment methods, including credit cards, Venmo, PayPal, Alipay, Klarna, WeChat Pay, Trustly, Coinbase, BitPay.

hashtag
Testing

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.

hashtag
Environments

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

hashtag
Authentication

Multiple authentication options are available, based on your use case:

hashtag
POS

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.

hashtag
E-Commerce

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.

hashtag
Idempotency

The optional header field idempotency-key can be used to uniquely identify a request to prevent duplicate operations.

When provided, the API uses this key to detect if an identical request has already been processed, ensuring that the operation is executed only once even if the client sends multiple identical requests.

This key is supported across all of our API's.

Pairing

hashtag
Configuration

  1. Double click on "SensePass Configurator" icon on your desktop, if you can't find it - open your browser with this URL: http://localhost:3031

circle-info

Make sure you are using Chrome or Edge with the latest version installed

  1. 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 !

Payment Flow

The flow chart below describes the typical payment flow for POS and E-commerce.

Transaction Status Flow

The flow chart below describes the possible transitions between Transaction status, see "status" field in

circle-info

Green and red status are final, further transition to another status is not possible.

Get Device ID

Terminal Agent expose an API to get the paired device ID.

hashtag
Usage Flow:

  1. Call GET request to: http://localhost:8003/api/devices Without any request payload

  2. Reponse will return immediately with the device ID

hashtag
Example

URL: http://localhost:8003/api/devices

Response body:

Transaction API

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 .

hashtag
Payment Methods

Authentication

Multiple authentication options are available, based on your use case:

hashtag
POS

Authentication fields: deviceId

Only one field is required for authentication - deviceId, this field represents the unique identifier of the POS in SensePass network.

POS (In-Store)

SensePass currently supports 20 POS systems and we continue to add more POS to our network.

  • Microsoft Dynamics 365 (D365)

  • Microsoft Dynamics 365 Business Central (D365 Business Central)

Payment request with receipt generated by SensePass

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:

Payment Commit

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".

hashtag
Payment Commit Model

Installation

hashtag
Getting Started

  1. Ensure your system meets the mentioned requirements

  2. Login to SensePass Partners

Token Migration

hashtag
SensePass Token Migration Process

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:

RMH
  • RMH iPOS

  • Oracle Micros X-Store

  • Oracle Netsuite NSPOS

  • Oracle Netsuite ERP

  • Oracle Netsuite SCIS

  • VRP

  • Lightspeed R (previously Vend)

  • Shopify POS

  • Anthology - Student Management

  • Aptos

  • Dimension Computer

  • NCR

  • Prism RBS - POS + MPOS

  • PAR

  • Vela POS

  • SABX POS

  • Storis

  • This model is referenced in "paymentCommit" field of transaction-entity response body
    Name
    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

    See our full payment methods list here
    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

    hashtag
    Testing

    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.

    hashtag
    Environments

    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

    hashtag
    Authentication

    Multiple authentication options are available, based on your use case:

    hashtag
    POS

    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.

    hashtag
    E-Commerce

    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.

    SOAP and XML

    Workflow 1: Generating New Tokens

    1. 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.

    2. 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.

    3. 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

    1. 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.

    2. 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.

    3. 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.

    hashtag
    Excel File Template

    hashtag
    Security and Compliance

    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.

    file-download
    9KB
    Template-BrainTree.xlsx
    arrow-up-right-from-squareOpen
    {
        "deviceId": "1orrpzqmx2b6w5l7iw23nnrm86v7yivoor5a6p9bdxc6zy0ahck64waepnofwxlfrlhx8ifi6cja5qs7c1neiuik911y8ayq6lru6q1plqyrqrbyrhrjitwx4hlyjlitwdsqt1b9wjwayk43s8o42a02x5oj9o44oxof3isbqozbdys4v4abytztg31cj12xicol08fgmssgd3dmvtpfuowiblekpxkk0k4395ljot8fs7fnf9rlluaz4x3f7aov"
    }
    {
      "timeOut": 600,
      "amount": 200,
      "isCent": true,
      "currency": "USD",
      "deviceId": "2ooeww5ufzg3nkuf8a10gu5n695yolixlbgb042o03to9bxfkr7t815i5epu8o58jv1rznif3o1tr6xsb1rm",
      "receipt": {
        "mode": 1,
        "accountingProvider": 4,
        "receiptInfo": {
          "customerId": "123456789",
          "firstName": "John",
          "lastName": "Doe",
          "address": "Begin Dw 12",
          "city": "Tel Aviv",
          "zipCode": "90745",
          "socialID": "123456789",
          "phoneNumber": "5551112232",
          "languageCode": "en",
          "currencyCode": "USD",
          "email": "[email protected]",
          "discount": 0,
          "vat": true
        }
      },
      "receiptNotifications": {
        "email": [
          "[email protected]"
        ],
        "sms": [
          "9295522135"
        ]
      }
    }
    Receipts Model

    Payment request with receipt generated by SensePass

    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:

    {
      "timeOut": 600,
      "amount": 200,
      "isCent": true,
      "currency": "USD",
      "apiKey": "2ooeww5ufzg3nkuf8a10gu5n695yolixlbgb042o038o58jv1rznif3o1tr6xsb1rm",
      "returnURL": "https://merchantDomain.com/thankYouPage",
      "cancelURL": "https://merchantDomain.com/cart",
      "callbackURL": "https://merchantDomain.com/sensepass/callbackEndPoint",
      "receipt": {
        "mode": 1,
        "accountingProvider": 4,
        "receiptInfo": {
          "customerId": "123456789",
          "firstName": "John",
          "lastName": "Doe",
          "address": "Begin Dw 12",
          "city": "Tel Aviv",
          "zipCode": "90745",
          "socialID": "123456789",
          "phoneNumber": "5551112232",
          "languageCode": "en",
          "currencyCode": "USD",
          "email": "[email protected]",
          "discount": 0,
          "vat": true
        }
      },
      "receiptNotifications": {
        "email": [
          "[email protected]"
        ],
        "sms": [
          "9295522135"
        ]
      }
    }

    Device ID can be generated using the "match" API (Pairing) or using SensePass Partner platform.

    hashtag
    E-Commerce Location API key

    Authentication fields: apiKey

    Location API key identifies the merchant and the location, Location API key is the recommended option for e-commerce.

    hashtag
    E-Commerce Merchant API key (Deprecated)

    Authentication fields: apiKey + branchNumber

    Merchant API key requires branchId field to be provided.

    hashtag
    Creating Authentication Keys

    All of the keys types can be generated using our API or using or Partners Dashboard:

    1. Location API key: Developer -> Branch API -> New

    2. Merchant API Key: Developer -> Merchant API -> New

    3. Device Id: POS/Register -> New

    hashtag
    Examples

    hashtag
    DeviceId Authentication

    URL: /transactions/init

    Request Body:

    hashtag
    Merchant API Key Authentication

    URL: /transactions/init

    Request Body:

    hashtag
    Location API Key Authentication

    URL: /transactions/init

    Request Body:

    {
      "deviceId": "2ooeww5ufzg3nkuf8a10g15i5epu8o58jv1rznif3o1tr6xsb1rm"
    }
    {
      "apiKey": "hjfkf942tiwgkf4w89253rhfgdjnkkf9823qrndcsg",
      "branchNumber": "12"
    }
    {
      "apiKey": "hg8t9wwtgehdfjk394oitrjgknfgfknglfsfs43213vbnhf"
    }
  • Navigate to "Developers" -> "Terminal Agent"

    1. Download the latest version of Terminal Agent software using the download link on the partners page

    2. Click on the green button "Download config file"

    hashtag
    Installation

    1. Double click on the EXE file in your downloads folder and start the installation process

    2. Click on "I agree" and click "Install"

    1. Setup will complete with this message:

    1. Move the config.json file from #5 to this location:

    C:\Program Files (x86)\SensePass Ltd\Terminal Agent

    1. Open the Services app (Run -> services.msc)

    2. Look for "SensePass-Agent-V2", right click -> Restart

    hashtag
    Pairing

    Please continue to the pairing page

    Real-time product information update

    This flow is useful for POS who would to send an API call on each cart update event, this will allow the customer to see the order information in realtime on the EMV Pinpad device and on SensePass tag.

    hashtag
    Step 1 - Send product information on every cart change

    POST

    http://localhost:8003/api/transactions/products/updatearrow-up-right

    {
        "products": [
            {
                "amount": 123,
                "discount": 0,
                "name": "First",
                "quantity": 4,
                "posIdentifier": "100001",
                "vat": 0
            },
            {
                "amount": 111,
                "discount": 0,
                "name": "Second",
                "quantity": 2,
                "posIdentifier": "invalid",
                "vat": 2
            }
        ],
        "timeout": "1000",
        "currency": "USD",
        "isCent": true,
        "amount": 1900,
        "readyForPayment": false,
    } 

    hashtag
    Step 2 - Call Init as usual once the POS is ready to accept payment (Sync/Async)

    POST

    OR

    Tags Pairing

    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.

    hashtag
    API Interface

    Cancel a pending transaction

    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.

    circle-info

    This API will not refund approved transactions, see

    hashtag

    Update a Transaction

    hashtag
    Updating transaction amount

    Flow:

    1. The transaction must be created with "readyForPayment": false flag first

    Create Dynamic QR

    API for creating a dynamic QR without using SensePass tags.

    hashtag
    API Interface

    hashtag

    http://localhost:8003/api/transactions/init/syncarrow-up-right
    http://localhost:8003/api/transactions/initarrow-up-right

    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 PATCH API with "readyForPayment" = true , 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.

    circle-info

    The customer will be allowed to make payment only after "readyForPayment" API will be called

    hashtag
    Step 1 - Creating a transaction in Setup state

    POST

    https://api.sandbox.sensepass.com/api/transactions/init

    hashtag
    Step 2 - Updating transaction Data

    PATCH

    https://api.sandbox.sensepass.com/api/transactions/250b859e1fb5b162d476f67dcc9ef9f0e2cb3a9412d13a610412d769

    hashtag
    Step 3 - Allowing user to make payments

    PATCH

    https://api.sandbox.sensepass.com/api/transactions/250b859e1fb5b162d476f67dcc9ef9f0e2cb3a9412d13a610412d769

    hashtag
    Updating transaction fields

    The following fields can be updated using the PATCH method based on Transaction Entity:

    1. reason

    2. products

    3. posData

    4. metadata

    5. clientPhoneNumber

    6. clientEmail

    7. readyForPayment

    hashtag
    Example

    PATCH

    https://api.sandbox.sensepass.com/api/transactions/250b859e1fb5b162d476f67dcc9ef9f0e2cb3a9412d13a610412d769

    {
        "products": [
            {
                "amount": 123,
                "discount": 0,
                "name": "First",
                "quantity": 4,
                "posIdentifier": "100001",
                "vat": 0
            },
            {
                "amount": 111,
                "discount": 0,
                "name": "Second",
                "quantity": 2,
                "posIdentifier": "invalid",
                "vat": 2
            }
        ],
        "timeout": "1000",
        "currency": "USD",
        "isCent": true,
        "amount": 1900,
        "clientPhoneNumber": "789454223",
        "clientEmail": "[email protected]"
    } 
    {
        "amount": 100,
        "currency": "USD",
        "isCent": true,
        "readyForPayment": false,
        "deviceId": "YOUR-DEVICE-ID"
    } 
    {
        "amount": 550,
        "currency": "USD",
        "isCent": true,
        "deviceId": "YOUR-DEVICE-ID",
        "products": [
          {
            "name": "Shirt",
            "quantity": 1,
            "amount": 190,
            "discount": 0,
            "vat": 0
          },
          {
            "name": "Service Fee",
            "quantity": 1,
            "amount": 10,
            "discount": 0,
            "vat": 0
          }
        ]
    } 
    {
        "amount": 550,
        "currency": "USD",
        "isCent": true,
        "deviceId": "YOUR-DEVICE-ID",
        "products": [
          {
            "name": "Shirt",
            "quantity": 1,
            "amount": 190,
            "discount": 0,
            "vat": 0
          },
          {
            "name": "Service Fee",
            "quantity": 1,
            "amount": 10,
            "discount": 0,
            "vat": 0
          }
        ],
        "readyForPayment": true
    } 
    {
      "reason": "New Reason",
      "posData": {
        "a": "b"
      },
      "metadata": {
        "x": "y"
      },
      "deviceId": "YOUR-DEVICE-ID"
    }
    hashtag
    Pair Tag with a register

    POST https://api.sensepass.com/api/devices/match

    API for getting device ID using SensePass tags.

    hashtag
    Request Body

    Name
    Type
    Description

    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.

    {
      "name": "POS",
    
    {
        // Response
    }
    {
        // Response
    }

    hashtag
    Examples

    hashtag
    Creating a new device ID for a tag

    hashtag
    Attaching a tag to existing device ID

    hashtag
    Pair Response

    hashtag
    New EMV terminal Creation

    hashtag
    EMV terminal creation response

    API Interface

    hashtag
    Cancelling a pending transaction object (Payment Request)

    POST https://api.sensepass.com/api/transactions/cancel/{transactionNumber}

    hashtag
    Path Parameters

    Name
    Type
    Description

    transactionNumber*

    String

    Transaction number to cancel

    Authentication Request Body fields

    See here our Authentication page

    {
      "status": 200,
      "
    
    {
        // Response
    }
    {
        // Response
    }
    {
        // Response
    }

    hashtag
    Cancelling a pending transaction object using Device ID

    POST https://api.sensepass.com/api/transactions/cancelByDeviceId/{deviceId}

    hashtag
    This API will cancel the last pending transaction of a given device

    hashtag
    Path Parameters

    Name
    Type
    Description

    deviceId*

    String

    Device ID of the transaction

    Authentication Request Body fields

    See here our Authentication page

    hashtag

    hashtag
    Flow Chart

    See our payment flow chart here

    hashtag
    Transaction Status Flow

    See our transaction status flow here

    Refund a transaction
    Create Device

    POST https://api.sensepass.com/api/devices/create

    API for creating a device without using SensePass tags.

    hashtag
    Request Body

    Name
    Type
    Description

    apiKey*

    string

    Location or Merchant API key

    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.

    {
      "name": "POS",
    
    {
        // Response
    }
    {
        // Response
    }

    hashtag
    Examples

    hashtag
    Creating a new device ID for a tag

    hashtag
    Response

    Credit by Credit Card

    API to credit (transfer money from merchant to customer) by credit card token.

    Token can be created using the Tokenization flow.

    hashtag
    API Interface

    hashtag
    Credit API

    POST https://api.sensepass.com/api/transactions/credit

    hashtag
    Request Body

    Name
    Type
    Description

    Authentication Request Body fields

    errorCode = 0 indicating successful credit operation.

    On error see "errorMessage" field which describes the error cause.

    hashtag
    Example

    Basic request example to credit $1.23 using Device ID:

    Basic request example to credit $100.01 using Location API Key or Merchant API key:

    hashtag
    Flow Chart

    hashtag
    Transaction Status Flow

    Refund a transaction

    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.

    hashtag
    API Interface

    hashtag
    Refund approved transaction object

    POST https://api.sensepass.com/api/transactions/refund

    hashtag
    Request Body

    Name
    Type
    Description

    Authentication Request Body fields

    errorCode = 0 indicating successful refund operation.

    On error see "errorMessage" field which describes the error cause.

    hashtag
    Example of Successful Refund

    hashtag
    Example of Unsuccessful Refund

    hashtag
    Refund Request Examples

    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:

    hashtag
    Flow Chart

    hashtag
    Transaction Status Flow

    Get Last Transaction Status

    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.

    hashtag
    Usage Flow:

    1. Call GET request to: http://localhost:8003/api/transactions/last Without any request payload

    2. DeviceId field is not required - Terminal agent will append it automatically

    3. Reponse will return immediately according to schema

    hashtag
    Example

    URL: http://localhost:8003/api/transactions/last

    Response body:

    JavaScript UI SDK

    SensePass Front-end SDK allows front-end websites to control SensePass's wide variety of a payment methods through a simple UI (iFrame).

    hashtag
    Supported Payment Methods

    1. Credit Cards

    2. Apple Pay - No integration and authentication is required with Apple

    3. Google Pay - No integration and authentication is required with Google

    4. PayPal

    5. Venmo

    6. ACH

    7. Affirm

    8. Amazon Pay

    9. Bit (IL locale)

    circle-info

    SensePass SDK enables you fast integration with all the payment methods listed above without having to whitelist your domain for Apple and Google

    hashtag
    SDK Flow

    1. Add the SensePass's javascript SDK to your website's scripts ().

    2. Initiate the SensePass client with your clientId

    3. Listen to SDK events on the front-end

    hashtag
    Security

    1. The frontend uses client ID that does not have permissions to payment except for initalizing the SDK

    2. The backend uses device ID / Merchant API Key / Branch API key for calling the

    hashtag
    API

    See the

    SOAP and XML

    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.

    hashtag
    SOAP Adapter

    Simulator

    Sandbox playground: https://js.sandbox.sensepass.comarrow-up-right

    Production playground: https://js.sensepass.comarrow-up-right

    Customer Input

    API for retrieving input from consumer using SensePass Tags and EMV devices.

    hashtag
    API Interface

    hashtag

    Update a subscription

    Update the subscription item to pause, resume or cancel its due payments.

    circle-info

    Subscription with status canceled can't be updated.

    hashtag

    Terminal Agent

    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.

    hashtag
    Advantages:

    Settlement

    API for retrieving transactions settlements by date

    POST https://api.sensepass.com/api/settlements/all

    hashtag
    Request Body

    Name
    Type

    Elements SDK

    Complete your checkout process with a list of payment options. From easy-to-use ones like Apple Pay, Google Pay and PayPal (etc), to buy-now-pay-later ones like Klarna, Sezzle, Affirm and more.

    hashtag
    Quick demo

    Check out our demo page to see the flow in action.

    circle-info

    Synchronous Payment

    Terminal Agent expose synchronous payment request call that reduce the integration time and logics.

    hashtag
    Usage Flow:

    1. Call POST request to: Use the same schema as -

    Additional Data Model

    This model represents additional data that can be sent to the processor, currently only used by Klarna.

    Currently the data passed in the Additional Data Model is sent to klarna as EMD (extra merchant data), as of now, we support the passing of the following fields: "other_delivery_address" and "trip_reservation_details", the data can be seen also in the Klarna docs here:

    hashtag
    Example

    Basic example of "additionalData" object sent in the Transactions/Init request body

    Processor Data Model

    This model represents additional data that can be sent to the processor, currently used by Sola, TSYS and Stripe.

    field
    type
    description
    field name at processor

    Settlement Report Model

    See

    field
    type
    description

    Models

    These models are part of request and response:

    Receipt Notifications Model

    This model represent the list of Email and SMS addresses for sending receipts.

    hashtag
    Receipt Notifications Model

    This model referenced in "receiptNotifications" field of request body

    field
    type

    Settlement Model

    This model represents settlement status & final-confrimation value from the proccessor, the entity contains all the required data for accounting reports.

    hashtag
    Settlement Model

    This model is referenced in the "settlement" field of the object.

    circle-info

    Invoice Model

    This model represents the URL of the invoice, the invoice will be presented to the consumer before the payment processing.

    hashtag
    Invoice Model

    This model referenced in "invoice" field of request body.

    field
    type
    {
      "pinCode": "111-222-333",
      "apiKey": "a1b2c3d4e5f6g7h8",
      "posName": "NewYorkBranchPos"
    }
    {
      "pinCode": "111-222-333",
      "apiKey": "a1b2c3d4e5f6g7h8",
      "posName": "NewYorkBranchPos",
      "deviceId": "rti3vm59le3zf7r9og29ezz12xin95vxhewuzdhu0c4cqizeu9d3yvs8rhn60el4eqr4iq6qozrguyw7rgrgqiec6abb9ftygfhvvwl9ar833i1ztnghj7k9zkrvrw5e8ykd2bueemddgcygwci3q12u4fu07ivxm1i7tw50wog7n9mu1pirdj0cg188mbvdf4axxpgc98udh71kxnu9i56yrm207msqrtl0hj44mvoibt4nanvenr06hpq9h9bg"
    }
    {
      "name": "POS",
      "deviceAliasKey": "syi2vm59le3zf7r9og29ezz12xin95vxhewuzdhu0c4cqizeu9d3yvs8rhn60el4eqr4iq6qozrguyw7rgrgqiec6abb9ftygfhvvwl9ar833i1ztnghj7k9zkrvrw5e8ykd2bueemddgcygwci3q12u4fu07ivxm1i7tw50wog7n9mu1pirdj0cg188mbvdf4axxpgc98udh71kxnu9i56yrm207msqrtl0hj44mvoibt4nanvenr06hpq9h9tq",
      "merchantUID": "string",
      "branchUID": "string",
      "pinCode": "string",
      "clientBoxes": [
        "https://pay.sensepass.com/c_EG9RW3DMJ4WDRF7KFN5A0ICSB0UU16"
      ]
    }    
    {
      "apiKey": "a1b2c3d4e5f6g7h8",
      "posName": "NewPosWithTerminal",
      "emvTerminalType": "KCP"
    }    
    {
        "name": "NewPosWithTerminal",
        "deviceAliasKey": "syi2vm59le3zf7r9og29ezz12xin95vxhewuzdhu0c4cqizeu9d3yvs8rhn60el4eqr4iq6qozrguyw7rgrgqiec6abb9ftygfhvvwl9ar833i1ztnghj7k9zkrvrw5e8ykd2bueemddgcygwci3q12u4fu07ivxm1i7tw50wog7n9mu1pirdj0cg188mbvdf4axxpgc98udh71kxnu9i56yrm207msqrtl0hj44mvoibt4nanvenr06hpq9h9tq",
        "agentUUID": "xwj88sclyblma09lnu49857gn6iva2"
    }    
    {
      "status": 200,
      "status_message": "Transaction Was Canceled"
    }
    {
      "apiKey": "a1b2c3d4e5f6g7h8",
      "posName": "NewYorkBranchPos"
    }
    {
      "name": "POS",
      "deviceAliasKey": "syi2vm59le3zf7r9og29ezz12xin95vxhewuzdhu0c4cqizeu9d3yvs8rhn60el4eqr4iq6qozrguyw7rgrgqiec6abb9ftygfhvvwl9ar833i1ztnghj7k9zkrvrw5e8ykd2bueemddgcygwci3q12u4fu07ivxm1i7tw50wog7n9mu1pirdj0cg188mbvdf4axxpgc98udh71kxnu9i56yrm207msqrtl0hj44mvoibt4nanvenr06hpq9h9tq",
      "merchantUID": "string",
      "branchUID": "string",
      "clientBoxes": [
        "https://pay.sensepass.com/c_EG9RW3DMJ4WDRF7KFN5A0ICSB0UU16"
      ]
    }
    status_message
    "
    :
    "
    Transaction Was Canceled
    "
    }
    "deviceAliasKey": "syi2vm59le3zf7r9og29ezz12xin95vxhewuzdhu0c4cqizeu9d3yvs8rhn60el4eqr4iq6qozrguyw7rgrgqiec6abb9ftygfhvvwl9ar833i1ztnghj7k9zkrvrw5e8ykd2bueemddgcygwci3q12u4fu07ivxm1i7tw50wog7n9mu1pirdj0cg188mbvdf4axxpgc98udh71kxnu9i56yrm207msqrtl0hj44mvoibt4nanvenr06hpq9h9tq",
    "merchantUID": "string",
    "branchUID": "string",
    "clientBoxes": [
    "https://pay.sensepass.com/c_EG9RW3DMJ4WDRF7KFN5A0ICSB0UU16"
    ]
    }
    "deviceAliasKey": "syi2vm59le3zf7r9og29ezz12xin95vxhewuzdhu0c4cqizeu9d3yvs8rhn60el4eqr4iq6qozrguyw7rgrgqiec6abb9ftygfhvvwl9ar833i1ztnghj7k9zkrvrw5e8ykd2bueemddgcygwci3q12u4fu07ivxm1i7tw50wog7n9mu1pirdj0cg188mbvdf4axxpgc98udh71kxnu9i56yrm207msqrtl0hj44mvoibt4nanvenr06hpq9h9tq",
    "merchantUID": "string",
    "branchUID": "string",
    "pinCode": "string",
    "clientBoxes": [
    "https://pay.sensepass.com/c_EG9RW3DMJ4WDRF7KFN5A0ICSB0UU16"
    ]
    }

    emvTerminalType

    string

    create an EMV Terminal for the matched device. choose a type out of sensepass supported devices: Dejavoo Clover Adyen Verifone Flex CloudIM KCP VIVA

    agentConfig

    JSONObject

    key value pair of emv terminal specific settings

    Docs about our SOAP Adapter
    Product Model
  • Payment Commit Model

  • Confirmation Model

  • Settlement Model

  • Subscription Model

  • Transaction Page Model

  • Transaction Model

  • Create a transaction
    Receipts Model
    Invoice Model

    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)

    field
    type
    description

    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)

    Confirmation Model
    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

  • Front-end SDKarrow-up-right
    See here full the SDK API Flow
    commit API
    API Page

    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

    status

    string

    settled/voided/expired

    paymentMethod

    string

    paymentMethod name

    settlementAmount

    Settlement flow here

    number

    token*

    string

    Credit card token - Required

    refundAmount

    number

    The credit amount (cents) - Required

    See here our Authentication page
    See our payment flow chart here
    See our transaction status flow here
    {
      "errorMessage": null,
      "errorCode": 0,
      "refundConfirmation": "063-LlgKAzfRL",
      "approvedBy": "PayPal",
      "refundBy": "PayPal",
      "dateApproval": "2019-12-19T09:47:59.105Z",
      "result": "Approved",
      "providerId": "z+n1opZ+RFn50fstklvWoOsovKIY5AUfsrVdGsO653c=",
      "transaction": {
        "TransactionNumber": "14a4334a32c852aeb0cfae52cbff1314649da7f175a8e140b35c147c",
        "date": "2019-12-19T09:47:59.105Z",
        "amount": 1234.56,
        "currency": "USD",
        "status": 0,
        "businessId": 144
      }
    }

    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

    See here our Authentication page
    See our payment flow chart here
    See our transaction status flow here
    {
      "errorMessage": null,
      "errorCode": 0,
      "refundConfirmation": "063-LlgKAzfRL",
      "approvedBy": "PayPal",
      "refundBy": "PayPal",
      "dateApproval": "2019-12-19T09:47:59.105Z",
      "result": "Approved",
      "providerId": "z+n1opZ+RFn50fstklvWoOsovKIY5AUfsrVdGsO653c=",
      "transaction": {
        "TransactionNumber": "14a4334a32c852aeb0cfae52cbff1314649da7f175a8e140b35c147c",
        "date": "2019-12-19T09:47:59.105Z",
        "amount": 1234.56,
        "currency": "USD",
        "status": 0,
        "businessId": 144
      }
    }
    Transaction Status
    "additionalData": {
        "trip_reservation_details": {
            "min_age": 18,
            "max_age": 60
        },
        "other_delivery_address": {
            "shipping_method": "store pick-up",
            "shipping_type": "normal"
        }
    }
    https://docs.klarna.com/api/extra-merchant-data/arrow-up-right

    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

  • hashtag
    Example

    URL: http://localhost:8003/api/transactions/init/sync

    Request Body:

    Response body:

    http://localhost:8003/api/transactions/init/syncarrow-up-right
    Create a transaction
    {
        // Response
    }
    {
        // Response
    }
    {
      "token": "YOUR-TOKEN",
      "refundAmount": 123,
      "deviceId": "2ooeww5ufzg3nkuf8a10gu5n695yolixlbgb042o03to9bxfkr7t815i5epu8o58jv1rznif3o1tr6xsb1rm"
    }
    {
      "token": "YOUR-TOKEN",
      "refundAmount": 10001,
      "apiKey": "2ooeww5ufzg3nkuf8a10gu5n695yolixlbgb042o038o58jv1rznif3o1tr6xsb1rm"
    }
    {
        // Response
    }
    {
        // Response
    }
    {
      "errorMessage": null,
      "errorCode": 0,
      "refundConfirmation": "063-LlgKAzfRL",
      "approvedBy": "PayPal",
      "refundBy": "PayPal",
      "dateApproval": "2019-12-19T09:47:59.105Z",
      "result": "Approved",
      "providerId": "z+n1opZ+RFn50fstklvWoOsovKIY5AUfsrVdGsO653c=",
      "transaction": {
        "TransactionNumber": "14a4334a32c852aeb0cfae52cbff1314649da7f175a8e140b35c147c",
        "date": "2019-12-19T09:47:59.105Z",
        "amount": 1234.56,
        "currency": "USD",
        "status": 0,
        "businessId": 144
      }
    }
    {
        "errorMessage": "refund operation declined by Processor",
        "errorCode": 22,
        "transaction": null,
        "refundConfirmation": null,
        "dateApproval": null,
        "result": "Declined",
        "providerId": null,
        "approvedBy": null,
        "refundBy": null,
        "amount": null
    }
    {
      "transactionNumber": "14a4334a32c852aeb0cfae52cbff1314649da7f175a8e140b35c147c",
      "deviceId": "2ooeww5ufzg3nkuf8a10gu5n695yolixlbgb042o03to9bxfkr7t815i5epu8o58jv1rznif3o1tr6xsb1rm"
    }
    {
      "transactionNumber": "14a4334a32c852aeb0cfae52cbff1314649da7f175a8e140b35c147c",
      "apiKey": "2ooeww5ufzg3nkuf8a10gu5n695yolixlbgb042o038o58jv1rznif3o1tr6xsb1rm"
    }
    {
        "TransactionNumber": "1dde6de24cb4b96678517350c075a3e89a4103ed3132b3444ee055ed",
        "date": "2024-04-17T19:50:33.588Z",
        "amount": "1",
        "baseAmount": "1",
        "currency": "USD",
        "status": 5,
        "statusName": "Transaction Approved",
        "timeoutDate": "2024-04-17T19:58:53.820Z",
        "maxInstallments": 1,
        "reason": null,
        "paymentCommit": {
            "messsage": "Please Commit this payment in 7200 seconds",
            "secondsToCommit": 7200,
            "commitLink": "https://api.sandbox.sensepass.com/api/transactions/commitPayment/1dde6de24cb4b96678517350c075a3e89a4103ed3132b3444ee055ed"
        },
        "methodType": 0,
        "businessId": "91878198955101",
        "businessName": "SensePass",
        "pos": "SensePass",
        "businessOwnerPhone": "113654",
        "businessCountry": "USA",
        "businessCity": "A",
        "businessState": "B",
        "businessStreet": "NY",
        "businessAddress": "NY",
        "locale": {
            "language": "en"
        },
        "products": [],
        "productsSum": {
            "allAmountSum": "0.00",
            "allTipSum": "NaN",
            "allVatSum": "0.00",
            "allTotalSum": "0.00",
            "allDiscountSum": "0.00",
            "allDiscountedAmountSum": "0.00"
        },
        "paymentProcessRequestID": "5330731519",
        "confirmation": {
            "approvedBy": "Shift4 Sandbox",
            "dateApproval": "2024-04-17T19:50:44.964Z",
            "approvalDate": "2024-04-17T19:50:44.964Z",
            "paymentType": "Regular",
            "sensePassReferenceId": "d4t9xyubad5geoj1c2yc",
            "paymentMethodName": "Credit Card (Sensepass PCI)",
            "providerId": "bmU4Ip5koVvi8harpkh5WW50BEQj7FpdNJhWkTMEbqQ=",
            "authNumber": null,
            "acquirer": null,
            "voucher": null,
            "referenceNumber": null,
            "requestID": "5330731519",
            "amount": 1,
            "confirmationNumber": "297-OK522Z",
            "fullConfirmationCode": "297-OK522Z",
            "providerName": "Shift4 Sandbox",
            "cardType": "VISA",
            "lastFourDigits": "1111",
            "cardMask": "411111******1111",
            "expiration": "1234",
            "cardExpiration": "1234",
            "installments": 1,
            "paymentMethod": "Credit Card",
            "Credit Card": {
                "cardType": "VISA",
                "lastFourDigits": "1111",
                "mask": "411111******1111",
                "expiration": "1234"
            },
            "extraDetails": {
                "email": null
            }
        },
        "confirmationNumber": "297-OK522Z",
        "confirmations": [
            {
                "approvedBy": "Shift4 Sandbox",
                "dateApproval": "2024-04-17T19:50:44.964Z",
                "approvalDate": "2024-04-17T19:50:44.964Z",
                "paymentType": "Regular",
                "sensePassReferenceId": "d4t9xyubad5geoj1c2yc",
                "paymentMethodName": "Credit Card (Sensepass PCI)",
                "providerId": "bmU4Ip5koVvi8harpkh5WW50BEQj7FpdNJhWkTMEbqQ=",
                "authNumber": null,
                "acquirer": null,
                "voucher": null,
                "referenceNumber": null,
                "requestID": "5330731519",
                "amount": 1,
                "confirmationNumber": "297-OK522Z",
                "fullConfirmationCode": "297-OK522Z",
                "providerName": "Shift4 Sandbox",
                "cardType": "VISA",
                "lastFourDigits": "1111",
                "cardMask": "411111******1111",
                "expiration": "1234",
                "cardExpiration": "1234",
                "installments": 1,
                "paymentMethod": "Credit Card",
                "Credit Card": {
                    "cardType": "VISA",
                    "lastFourDigits": "1111",
                    "mask": "411111******1111",
                    "expiration": "1234"
                },
                "extraDetails": {
                    "email": null
                }
            }
        ],
        "balance": 1,
        "paymentMethodImages": {},
        "clientPhoneNumber": null,
        "clientEmail": null
    }
    {
        "amount": 100,
        "timeOut": 500,
        "currency": "USD",
        "isCent": true
    } 
    {
        "TransactionNumber": "1dde6de24cb4b96678517350c075a3e89a4103ed3132b3444ee055ed",
        "date": "2024-04-17T19:50:33.588Z",
        "amount": "1",
        "baseAmount": "1",
        "currency": "USD",
        "status": 5,
        "statusName": "Transaction Approved",
        "timeoutDate": "2024-04-17T19:58:53.820Z",
        "maxInstallments": 1,
        "reason": null,
        "paymentCommit": {
            "messsage": "Please Commit this payment in 7200 seconds",
            "secondsToCommit": 7200,
            "commitLink": "https://api.sandbox.sensepass.com/api/transactions/commitPayment/1dde6de24cb4b96678517350c075a3e89a4103ed3132b3444ee055ed"
        },
        "methodType": 0,
        "businessId": "91878198955101",
        "businessName": "SensePass",
        "pos": "SensePass",
        "businessOwnerPhone": "113654",
        "businessCountry": "USA",
        "businessCity": "A",
        "businessState": "B",
        "businessStreet": "NY",
        "businessAddress": "NY",
        "locale": {
            "language": "en"
        },
        "products": [],
        "productsSum": {
            "allAmountSum": "0.00",
            "allTipSum": "NaN",
            "allVatSum": "0.00",
            "allTotalSum": "0.00",
            "allDiscountSum": "0.00",
            "allDiscountedAmountSum": "0.00"
        },
        "paymentProcessRequestID": "5330731519",
        "confirmation": {
            "approvedBy": "Shift4 Sandbox",
            "dateApproval": "2024-04-17T19:50:44.964Z",
            "approvalDate": "2024-04-17T19:50:44.964Z",
            "paymentType": "Regular",
            "sensePassReferenceId": "d4t9xyubad5geoj1c2yc",
            "paymentMethodName": "Credit Card (Sensepass PCI)",
            "providerId": "bmU4Ip5koVvi8harpkh5WW50BEQj7FpdNJhWkTMEbqQ=",
            "authNumber": null,
            "acquirer": null,
            "voucher": null,
            "referenceNumber": null,
            "requestID": "5330731519",
            "amount": 1,
            "confirmationNumber": "297-OK522Z",
            "fullConfirmationCode": "297-OK522Z",
            "providerName": "Shift4 Sandbox",
            "cardType": "VISA",
            "lastFourDigits": "1111",
            "cardMask": "411111******1111",
            "expiration": "1234",
            "cardExpiration": "1234",
            "installments": 1,
            "paymentMethod": "Credit Card",
            "Credit Card": {
                "cardType": "VISA",
                "lastFourDigits": "1111",
                "mask": "411111******1111",
                "expiration": "1234"
            },
            "extraDetails": {
                "email": null
            }
        },
        "confirmationNumber": "297-OK522Z",
        "confirmations": [
            {
                "approvedBy": "Shift4 Sandbox",
                "dateApproval": "2024-04-17T19:50:44.964Z",
                "approvalDate": "2024-04-17T19:50:44.964Z",
                "paymentType": "Regular",
                "sensePassReferenceId": "d4t9xyubad5geoj1c2yc",
                "paymentMethodName": "Credit Card (Sensepass PCI)",
                "providerId": "bmU4Ip5koVvi8harpkh5WW50BEQj7FpdNJhWkTMEbqQ=",
                "authNumber": null,
                "acquirer": null,
                "voucher": null,
                "referenceNumber": null,
                "requestID": "5330731519",
                "amount": 1,
                "confirmationNumber": "297-OK522Z",
                "fullConfirmationCode": "297-OK522Z",
                "providerName": "Shift4 Sandbox",
                "cardType": "VISA",
                "lastFourDigits": "1111",
                "cardMask": "411111******1111",
                "expiration": "1234",
                "cardExpiration": "1234",
                "installments": 1,
                "paymentMethod": "Credit Card",
                "Credit Card": {
                    "cardType": "VISA",
                    "lastFourDigits": "1111",
                    "mask": "411111******1111",
                    "expiration": "1234"
                },
                "extraDetails": {
                    "email": null
                }
            }
        ],
        "balance": 1,
        "paymentMethodImages": {},
        "clientPhoneNumber": null,
        "clientEmail": null
    }
    Get customer input

    POST https://api.sensepass.com/api/transactions/customer-input

    For terminal agent invoke use this endpoint: http://localhost:8003/api/transactions/customer-input

    hashtag
    Request Body

    Name
    Type
    Description

    deviceId*

    string

    unique device ID provided by SensePass

    inputs*

    array

    Array of

    See Transactions entity schema:

    {
      "success": true,
      "
    
    {
        // Response
    }

    hashtag

    hashtag
    Example - Simple Questions

    hashtag
    Example - Yes/No Questions

    hashtag
    Clear all questions on device

    hashtag
    Clear customer input

    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

    hashtag
    Request Body

    Name
    Type
    Description

    deviceId*

    string

    unique device ID provided by SensePass

    hashtag

    Status

    These are the available values for the status parameter in the request body.

    status
    description

    active

    default value that sets the subscription to active status

    paused

    pauses the subscription untill set back to active

    canceled

    canceles the subscription indefinitly

    circle-info

    Only one header key is required for the request in the example below

    hashtag
    Update subscription's status

    PATCH https://api.sensepass.com/api/subscription/:subscriptionUid

    available status values are: active, paused, canceled

    hashtag
    Path Parameters

    Name
    Type
    Description

    subscriptionUid

    string

    bf8b7e01-466d-4996-b9a2-fc0880923359.

    subscription ID received from the response

    hashtag
    Headers

    Name
    Type
    Description

    deviceId*

    string

    2ooeww5ufzg3nkuf8a10g15i5epu8o58jv1rznif3o1tr6xsb1rm

    branchApiKey*

    string

    mQzMLLSpqjRZfWBgQcAej5Dus7HHvmRsSsrN6FYoeWWUAehm3RjD596pZb9gfrxx4jQOP2MCQgoLaaU9SAdlzVsWnR63ZETqALpn

    merchantApiKey*

    string

    xvRKKxOWAYbTH2yKQLlzkta2eovvkzlzTW98NcA9KVfwrOF22GA7bBOHHAeooQrmKelv0TU3Q7c8wiJgTQweKCbXR5ohC6JtCygJ

    hashtag
    Request Body

    Name
    Type
    Description

    status*

    string

    active,paused,canceled

    circle-info

    Refer to the Subscritption entity at Subscription Model for additional information.

    1. 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

    2. 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

    3. 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

    4. 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

    5. 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

    6. Realtime product update already implemented for EMV Pinpad and SensePass tags Terminal Agent detects product update API calls and creates a "Setup" transaction with the product information, once the POS is ready to accept a payment - an "Init" call should be sent as usual without any additional params. Terminal Agent detects the relation between the previous "Setup" transaction and makes all the API calls transparently.

    7. 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.

    hashtag
    Synchronous payment request

    Terminal Agent expose synchronous payment request call that reduce the integration time and logics.

    hashtag
    Usage Flow:

    1. Call POST request to: http://localhost:8003/api/transactions/init/syncarrow-up-right Use the same schema as - Create a transaction

    2. DeviceId field is not required - Terminal agent will append it automatically

    3. Cancelling the payment request can be done using cancelling the HTTP request from #1

    4. On final result (Approve, timeout or Cancel) - you will get response to this request

    See full docs about sync payment request

    hashtag
    Last Transaction Status

    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.

    hashtag
    Usage Flow:

    1. Call GET request to: http://localhost:8003/api/transactions/last Without any request payload

    2. DeviceId field is not required - Terminal agent will append it automatically

    3. Reponse will return immediately according to Transaction Status schema

    See full docs about last transaction status API

    hashtag
    Terminal Agent Key Features

    • 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.

    Description

    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

    FilterData

    Name
    Type
    Description

    parmeter

    KeyValue

    any custom data to filter by: E.G: "name":"Joe"

    operator

    string

    hashtag
    Example Request

    Response

    Pagination data Settlement Report Model

    This is a checkout page example with the Elements SDK.

    hashtag
    Configuration

    circle-info

    You can copy-paste the (relevant) following HTML code to your checkout page to get going.

    • Note that the current widget configuration is set up to use the mock client-id - and replace it with yours.


    hashtag
    Payment Data

    circle-info

    Example of the SDK's "pay" callback payload (sets the payment for commit)

    hashtag
    Customization

    circle-info

    This code sample demonstrates how to customize the appearance of the Elements Widget's payment buttons/elements. Set this object in our SDK configuration to apply your custom theme.

    Download and edit the following themes you wish to style on your own:

    1. Material theme: https://pay.sandbox.sensepass.com/publicAssets/themes/material.theme.cssarrow-up-right

    2. SensePass theme:

    3. Save your themes in a hosting site of your choosing and set their URL in the config JSON.

    4. Use the to set you custom text and other UI configurations.

    Tsys: Invoice.TaxIndicator

    unitOfMeasure

    string

    unit of measurement of a product

    Tsys: LineItem.UnitOfMeasure

    shippingAmount

    string

    shipping amount

    Tsys: Invoice.ShippingAmount

    extendedAmount

    string

    extended amount of a product

    Tsys: LineItem.ExtendedAmount

    totalTax

    string

    total amount of tax

    Sola: xTax

    payload

    object

    key value pairs that will be sent to Stripe as metadata in the payment -

    Stripe: metadata

    hashtag
    Example

    Basic example of "processorData" object sent in the Transactions/Init request body

    platformOrderNumber

    string

    order number

    Sola: xPONum Tsys: PurchaseOrderNumber

    taxIndicator

    string

    tax indicator

    description

    email

    Array

    Email Recipients example: ["[email protected]"]

    sms

    Array

    SMS Recipients example: ["9295522135"]

    description

    type

    string

    File extension name [ pdf, jpg, png ]

    url

    string

    example: http://someDomain.com/invoice1.pdf

    Subscription callbacks

    SensePass sends callbacks about any change regarding subscription item.

    The callback endpoint can be configured using "callbackURL" field on "Init" API of subscriptions.

    hashtag
    Callback Structure

    1. Main model structure is identical to

    2. "parentTransaction" field was added for subscriptions, this field represents the orginal subscription transaction information

    3. "parentTransaction.subscription" field was added with the subscription object, according to

    hashtag
    Callback example

    Fetch a subscription

    Fetch a subscription by subscription ID.

    circle-info

    It is required to send one authentication header, only one header key is required for the request in the example below

    hashtag
    Get the subscription details and its paid transactions.

    GET https://api.sensepass.com/api/subscription/:subscriptionUid

    hashtag
    Path Parameters

    Name
    Type
    Description

    hashtag
    Headers

    Name
    Type
    Description
    circle-info

    Refer to the Subscritption entity at for additional information.

    Subscription

    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.

    hashtag
    Create a Subscription

    POST https://api.sensepass.com/api/transactions/init

    hashtag
    Request Body

    Name
    Type
    Description
    circle-info

    Refer to the Subscritption entity at for additional information.

    Transaction Page Model

    This model represents the required data to redirect the consumer to the transaction page to complete the payment.

    hashtag
    Transaction Page Model

    This model referenced in "transactionPage" field of response body.

    field
    type
    description

    Customer Input Model

    This model is referenced in "inputs" field of Customer Input request body

    field
    type
    required
    description

    type

    string

    true

    email, shipping_address, first_name, last_name, postal_code, phone, text, boolean

    minimumLength

    Custom SDK Style

    style selected elements & general themes

    circle-info

    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 Configarrow-up-right step.

    hashtag
    Customizable themes

    hashtag
    When configuring the SDK, you may set the following code as the configuration object:

    Download and edit the following themes you wish to style on your own:

    1. Material theme:

    2. SensePass theme:

    3. Save your themes in a hosting site of your choosing and set their URL in the config JSON.

    You may test your themes on our playground:

    Migration to SensePass Elements

    When using the SDK with SensePass Elements, onboarding with Apple Pay enables paying without a intermediate pop-up.

    hashtag
    Installing a fresh SDK

    Follow the documentationarrow-up-right for installing SensePass element SDK:


    hashtag
    Upgrading from SDK Version 1.0.9/1.1.0 (or below)

    1. Update the SensePass SDK javascript link to version 1.1.1 (or above). For example: if your’e using https://js.sensepass.com/scripts/[email protected] -> you should update it to https://js.sensepass.com/scripts/[email protected] .

    2. Update your object with a key string payButtonId


    hashtag
    Onboarding your domain for Apple Pay

    1. Send SensePass the domain(s) you’ll use Apple Pay on. For example: - - -

    2. Open public access from your website(s) to a file from the base path of your url. For example: - https://www.my-store.com/.well-known/apple-developer-merchantid-domain-association.txt. * This will let Apple validate your domain is associated with SensePass’s Apple account.

    3. Receive from SensePass the apple-developer-merchantid-domain-association.txt file(s) and store them in your website(s). * SensePass will send you the file(s) in a

    triangle-exclamation

    Its very important to store the files & inform SensePass ASAP because the file(s) can expire.

    Post Message

    Post messsge events are sent to client side using the browser API.

    Code example:

    hashtag
    Payload Example - Approved Transaction

    API Notifications

    There are multiple options to get notifications about the transaction status changes:

    1. Callback

    2. Web sockets (Socket.IO)

    Customer Shipping/Billing Details Model

    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.

    hashtag
    Shipping/Billing Model

    This model is referenced in the "billingAddress" field and "shippingAddress" field of the .

    field
    type

    Payment Details Model

    This model represent the payment details as an input for creating a transaction.

    hashtag
    Payment Details Model

    This model referenced in "paymentDetails" field of request body

    field
    type

    Payment Commit Model

    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 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".

    {
        // Response
    }
    {
    }
    {
        // Response
    }
    {
        // Response
    }
    {
      "deviceId": "Your-Device-ID",
      "inputs": [
        {
          "type": "email",
          "question": "Please input your email address"
        },
        {
          "type": "phone",
          "minimumLength": 10,
          "question": "Please input your phone number"
        }
      ]
    }
    {
      "deviceId": "Your-Device-ID",
      "inputs": [
        {
          "type": "boolean",
          "question": "Please verify your email address is [email protected]",
          "acceptText": "Yes",
          "rejectText": "No"
        }
      ]
    }
    { "pagination": {
        "returnedRecords": 2,
        "totalRecords": 2
        "isPartialResult": "false"
      },
      "data": [
        {
            "status": "settled",
            "paymentMethod": "Authorize.Net",
            "settlementAmount": "10.21",
            "fee": null,
            "submitDate": "2024-03-27T13:29:07.200Z",
            "settlementDate": "2024-01-04T05:06:18.377Z",
            "transactionNumber": "c7bc37546cf53aa42fa4e2838bbda9cd355e99e680a7715fc4d85dc6",
            "pmTransId": "120012947718",
            "cardType": "MasterCard",
            "settlementCurrency": "USD"
        },
        {
            "status": "expired",
            "paymentMethod": "Authorize.Net",
            "settlementAmount": "12.79",
            "fee": null,
            "submitDate": "2024-03-27T13:29:07.404Z",
            "settlementDate": "2023-12-28T07:40:19.838Z",
            "transactionNumber": "4afa7ca11746f1e9b89ee05b56db6463728752a2a486893a6f44766a",
            "pmTransId": "120012495576",
            "cardType": "MasterCard",
            "settlementCurrency": "USD"
        }
        ]
    {
    }
    {
       "startDate": "2024-01-01T00:00:00Z",
        "endDate": "2024-06-01T00:00:00Z",
        "apikey": "myApiKey",
        "pagination": {
            "limit": "40",
            "offset": "0"
        },
        "orderBy": "settlementAmount",
        "filter": [{"accountId": "1000635", "operator": "!="}, {"age": "10", "operator": ">"}  ]    
    }
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>SensePass Elements SDK</title>
        <!-- Set the SensePass SDK script -->
        <script src="https://js.sensepass.com/scripts/[email protected]"></script>
    </head>
    <body style="width: 25rem; margin: 0 auto">
        <!-- Top Payment Button -->
        <button id="primary-payment-button" onclick="handlePaymentButtonClick()">Complete Payment (primary)</button>
        <!-- SensePass Elements Container -->
        <div id="sensepass-front-end"></div>
        <!-- Bottom Payment Button -->
        <button id="secondary-payment-button" onclick="handlePaymentButtonClick()">Complete Payment (secondary)</button>
        <script>
            // Configure the SDK
            const spClient = SensePassFrontEndSDK.config({
                mode: "sandbox", // "sandbox" | "production"
                debug: true,
                clientId: "SensePassSDKGeneralClientId",
                methodType: "manual_capture", // "manual_capture" | "authorize" | "tokenize"
                theme: {
                    paymentMethodGrid: "vertical" // "horizontal" | "vertical" | "vertical-b"
                },
                payButtonId: ['primary-payment-button', 'secondary-payment-button'], // Array of button IDs
            });
            // Initialize the SDK
            const sensepass = spClient.init();
            // Event: Payment method selected
            sensepass.paymentSelected(payload => console.log('Payment method selected:', payload));
            // Event: Payment in progress
            sensepass.paying(payload => console.log('Payment in progress:', payload));
            // Event: Payment method validation status
            sensepass.paymentMethodValidationStatus(payload => console.log('Payment validation status:', payload));
            // Event: Error occurred
            sensepass.error(payload => console.error('SDK Error:', payload));
    
            function handlePaymentButtonClick() {
                // Call the pay method when button is clicked
                sensepass.pay(payload => console.log('Payment result:', payload),
                    {
                        amount: 1299, // Amount in cents (12.99 USD)
                        currency: "USD",
                        billingAddress: {
                            city: "New York",
                            email: "[email protected]",
                            firstName: "John",
                            lastName: "Doe",
                            street: "123 Demo St",
                            state: "NY",
                            zipcode: "10001",
                            mobilePhone: "5551234567",
                            country: "US"
                        }
                    }
                );
            }
        </script>
    </body>
    </html>
    {
      "TransactionNumber": "7f943e53476a3efcc263d0f975a01c45a6118fc55852efde8dad7227",
      "status": 20
    }
    SensePassFrontEndSDK.config({
       // ...,
       theme: { // optional theme for various packages
    	/** angular material provides extensive documentation on customizing their theme
    	* you can find it at: https://material.angular.io/guide/theming */
    	material: "https://pay.sandbox.sensepass.com/publicAssets/themes/custom-sample-material.theme.css", // sample for a customized material theme
    	sensepassEcommerce: "https://pay.sandbox.sensepass.com/publicAssets/themes/custom-sample-ecommerce.theme.css", // sample for a customized sensepass theme
    	paymentMethodGrid: "horizontal", // horizontal | vertical style of the payment options
    	config: {} // a configuration object for specific payment methods text/animations
       }
    })
    "processorData": {
        "unitOfMeasure": "kg",
        "totalTax": "3",
        "payload": {
            "request_id": "d20f2b44-72c2-41de-80cc-d79452ae1a43",
            "ip_address": "161.239.206.69"
        },
        
    }

    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

    synchronous response
    Synchronous Payment API
    Create a Transaction
    https://docs.stripe.com/metadataarrow-up-right

    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

    Subscription Model
    {
        "id": "bf8b7e01-466d-4996-b9a2-fc0880923359",
        "active": true,
        "created": "2023-05-29T15:33:36.278Z",
        "updated": "2023-05-29T15:34:38.641Z",
        "expires": null,
        "start_date": "2023-06-01T11:00:00.000Z",
        "interval": "1month",
        "status": "active",
        "customer": {},
        "payments": [
            {
                "TransactionNumber": "d3d4f01b6e0ecb01e40f2ac3a9d223a1f64ca80afbf3dbfea732fc89",
                "date": "2023-05-29T15:34:24.701Z",
                "amount": "10",
                "baseAmount": "10",
                "currency": "USD",
                "status": 5,
                "statusName": "Transaction Approved",
                "timeoutDate": "2023-05-29T15:49:26.809Z",
                "maxInstallments": 1,
                "reason": null,
                "methodType": 0,
                "paymentProcessRequestID": "7DZ9KO003XRN51E4RHRML25",
                "confirmation": {
                    "approvedBy": "Credit Card",
                    "dateApproval": "2023-05-29T15:34:33.241Z",
                    "approvalDate": "2023-05-29T15:34:33.241Z",
                    "paymentType": "Regular",
                    "sensePassReferenceId": "sm0tgjpcjitbd9gfodhi",
                    "providerId": "jDPPZyn8zdGtBcKUP4EbxTfwy62j+JShtQGDlbwx4/c=",
                    "confirmationNumberNumeric": 16660218953577,
                    "authNumber": null,
                    "acquirer": null,
                    "voucher": null,
                    "referenceNumber": null,
                    "requestID": "7DZ9KO003XRN51E4RHRML25",
                    "confirmationNumber": "166-60218953577",
                    "fullConfirmationCode": "166-60218953577",
                    "cardType": "VISA",
                    "lastFourDigits": "4580",
                    "cardMask": "458045******4580",
                    "expiration": "1234",
                    "cardExpiration": "1234",
                    "installments": 1,
                    "extraDetails": {
                        "email": null
                    }
                },
                "confirmationNumber": "166-60218953577",
                "confirmations": [
                    {
                        "approvedBy": "Credit Card",
                        "dateApproval": "2023-05-29T15:34:33.241Z",
                        "approvalDate": "2023-05-29T15:34:33.241Z",
                        "paymentType": "Regular",
                        "sensePassReferenceId": "sm0tgjpcjitbd9gfodhi",
                        "providerId": "jDPPZyn8zdGtBcKUP4EbxTfwy62j+JShtQGDlbwx4/c=",
                        "confirmationNumberNumeric": 16660218953577,
                        "authNumber": null,
                        "acquirer": null,
                        "voucher": null,
                        "referenceNumber": null,
                        "requestID": "7DZ9KO003XRN51E4RHRML25",
                        "confirmationNumber": "166-60218953577",
                        "fullConfirmationCode": "166-60218953577",
                        "cardType": "VISA",
                        "lastFourDigits": "4580",
                        "cardMask": "458045******4580",
                        "expiration": "1234",
                        "cardExpiration": "1234",
                        "installments": 1,
                        "extraDetails": {
                            "email": null
                        }
                    }
                ]
            }
        ]
    }
    transaction status model
    Subscription Model
    Use the SDK Theme Config Model to set you custom text and other UI configurations.
    https://pay.sandbox.sensepass.com/publicAssets/themes/material.theme.cssarrow-up-right
    https://pay.sandbox.sensepass.com/publicAssets/themes/ecommerce.theme.cssarrow-up-right
    https://js.sensepass.comarrow-up-right

    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

    hashtag
    Payload Example - Cancelled Transaction
    const childWindow = document.getElementById('sensepass-iframe').contentWindow;
    window.addEventListener('message', message => {
        // Handle message
    });
    Post message event on the client side

    hashtag
    Notifications Interface

    All of the notifications are conforms to Transaction Entity interface.

    See the full interface model here:

    Notification Example:

    Transaction Modelchevron-right
    {
        "TransactionNumber": "926868c423s1f582de89c1fa3b43ad7de2bb745c17f27d5d30c37e65",
        "date": "2024-05-05T14:45:29.673Z",
        "amount": "10",
        "baseAmount": "10",
        "currency": "USD",
        "status": 5,
        "statusName": "Transaction Approved",
        "timeoutDate": "2024-05-05T14:46:27.536Z",
        "maxInstallments": 1,
        "reason": null,
        "methodType": 0,
        "businessId": "715288992006428",
        "businessName": "Merchant Name",
        "pos": "Merchant",
        "businessOwnerPhone": "4233434789342",
        "businessCountry": "United States",
        "businessCity": "NY",
        "businessState": "NY",
        "businessStreet": "14 Ave.",
        "businessAddress": "NY",
        "businessLocaleName": "USA",
        "branchNumber": "1",
        "branchId": "1",
        "branch": {
            "number": "1",
            "rules": {}
        },
        "locale": {
            "name": "USA",
            "currency": "USD",
            "timezone": "America/New_York",
            "timezoneNumber": "-5",
            "phoneNumberPrefix": "1",
            "countryIso": "US",
            "language": "en"
        },
        "metadata": {
            "receiptMode": "3",
            "receiptSaveUid": "975d3b8c-3c08-4dfc-a4f6-8b077f75164e"
        },
        "products": [],
        "productsSum": {
            "allAmountSum": "0.00",
            "allTipSum": "NaN",
            "allVatSum": "0.00",
            "allTotalSum": "0.00",
            "allDiscountSum": "0.00",
            "allDiscountedAmountSum": "0.00"
        },
        "parentTransaction": {
            "TransactionNumber": "ff836e3fe344e4566483f9bd242fe62bb8d04fdfed3cc2c68f3ccc9f",
            "date": "2024-03-18T21:00:34.554Z",
            "amount": "178390",
            "baseAmount": "10",
            "currency": "USD",
            "status": 5,
            "statusName": "Transaction Approved",
            "timeoutDate": "2024-03-18T21:02:34.623Z",
            "maxInstallments": 1,
            "reason": null,
            "methodType": 5,
            "locale": {
                "language": "en"
            },
            "subscription": {
                "id": "3e8101b7-4aac-4578-acbb-fd4f2e328a98",
                "active": true,
                "created": "2024-03-18T21:00:34.595Z",
                "updated": "2024-05-05T14:45:27.536Z",
                "expires": null,
                "count": 18461,
                "failure": 333,
                "success": 18127,
                "start_date": "2024-05-01T10:45:00.000Z",
                "interval": "1minute",
                "intervalObj": {
                    "amount": 1,
                    "unit": "minute"
                },
                "status": "active",
                "customer": {}
            },
            "paymentProcessRequestID": "ec36e27f-4945-4607-8088-eaa75927cb76",
            "paymentMethodImages": {}
        },
        "paymentProcessRequestID": "10186870604",
        "confirmation": {
            "approvedBy": "Cardknox Sandbox",
            "dateApproval": "2024-05-05T14:45:30.767Z",
            "approvalDate": "2024-05-05T14:45:30.767Z",
            "paymentType": "Regular",
            "sensePassReferenceId": "rv3t47ofka376obsrhyd",
            "paymentMethodCode": 25,
            "paymentMethodName": "Credit Card (Sensepass PCI)",
            "paymentMethodLogo": "https://pay.sandbox.sensepass.com/publicAssets/payment-method/cardknox.png",
            "providerId": "6wMjGG7cJ5KPTvzLOXKTIJjwdREImIsJGNpmGckfBiU=",
            "requestID": "10186870604",
            "amount": 10,
            "confirmationNumber": "174-69844A",
            "fullConfirmationCode": "174-69844A",
            "providerName": "Cardknox Sandbox",
            "cardType": "VISA",
            "lastFourDigits": "1111",
            "cardMask": "444433******1111",
            "expiration": "0127",
            "cardExpiration": "0127",
            "paymentMethod": "Credit Card",
            "Credit Card": {
                "cardType": "VISA",
                "lastFourDigits": "1111",
                "mask": "444433******1111",
                "expiration": "0127"
            },
            "extraDetails": {
                "email": null
            }
        },
        "confirmationNumber": "174-69844A",
        "confirmations": [
            {
                "approvedBy": "Cardknox Sandbox",
                "dateApproval": "2024-05-05T14:45:30.767Z",
                "approvalDate": "2024-05-05T14:45:30.767Z",
                "paymentType": "Regular",
                "sensePassReferenceId": "rv3t47ofka376obsrhyd",
                "paymentMethodCode": 25,
                "paymentMethodName": "Credit Card (Sensepass PCI)",
                "paymentMethodLogo": "https://pay.sandbox.sensepass.com/publicAssets/payment-method/cardknox.png",
                "providerId": "6wMjGG7cJ5KPTvzLOXKTIJjwdREImIsJGNpmGckfBiU=",
                "requestID": "10186870604",
                "amount": 10,
                "confirmationNumber": "174-69844A",
                "fullConfirmationCode": "174-69844A",
                "providerName": "Cardknox Sandbox",
                "cardType": "VISA",
                "lastFourDigits": "1111",
                "cardMask": "444433******1111",
                "expiration": "0127",
                "cardExpiration": "0127",
                "paymentMethod": "Credit Card",
                "Credit Card": {
                    "cardType": "VISA",
                    "lastFourDigits": "1111",
                    "mask": "444433******1111",
                    "expiration": "0127"
                },
                "extraDetails": {
                    "email": null
                }
            }
        ],
        "balance": 10,
        "clientPhoneNumber": null,
        "clientEmail": null,
        "callbackType": "transaction_status"
    }
    const spClient = SensePassFrontEndSDK.config({
       mode: "sandbox", // "sandbox" | "production"
       debug: true, // optional for logs
       visualizer: true, // optional visual logs, requires HTML with id="sensepass-front-end-visualizer"
       clientId: 'aee8d2cdc1cb...', // a SensePass's "clientId"
       methodType: "manual_capture", // type for the transaction, defaults to "manual_capture", enum: "manual_capture" | "tokenize"
       theme: { // optional theme for various packages
    	/** angular material provides extensive documentation on customizing their theme
    	* you can find it at: https://material.angular.io/guide/theming */
    	material: "https://pay.sandbox.sensepass.com/publicAssets/themes/custom-sample-material.theme.css", // sample for a customized material theme
    	sensepassEcommerce: "https://pay.sandbox.sensepass.com/publicAssets/themes/custom-sample-ecommerce.theme.css", // sample for a customized sensepass theme
    	paymentMethodGrid: "horizontal", // horizontal | vertical style of the payment options
    	config: {} // a configuration object for specific payment methods text/animations
       }
    })
    status/paymentMethod/settlementAmount/fee/submitDate/settlementDate/transactionNumber/pmTransId/cardType
    '=', '!=', '<', '<=', '>', '>='
    {
        "type": "transaction",
        "payload": {
            "transaction": {
                "TransactionNumber": "6736b8abd2faa15d7f4137a64d45e62a486f2fdc5238c5eda3a8bf38",
                "date": "2024-10-22T09:03:26.906Z",
                "amount": "2",
                "baseAmount": "2",
                "currency": "USD",
                "status": 5,
                "statusName": "Transaction Approved",
                "timeoutDate": "2024-10-29T10:03:27.124Z",
                "maxInstallments": 1,
                "reason": null,
                "methodType": 0,
                "businessName": "Barak .inc",
                "pos": "Barak .inc",
                "businessOwnerPhone": "888888",
                "businessCountry": "UNITED STATES",
                "businessCity": "Pan",
                "businessState": "QC",
                "businessStreet": "St.Peter",
                "businessHouseNumber": 5,
                "businessAddress": "Pan, St.Peter 5",
                "businessLocaleName": "IL",
                "branchNumber": "888",
                "products": [],
                "productsSum": {
                    "allAmountSum": "0.00",
                    "allTipSum": "NaN",
                    "allVatSum": "0.00",
                    "allTotalSum": "0.00",
                    "allDiscountSum": "0.00",
                    "allDiscountedAmountSum": "0.00"
                },
                "isNativeApp": false,
                "isSensePassPCI": true,
                "confirmation": {
                    "approvedBy": "Klarna Sandbox",
                    "dateApproval": "2024-10-22T09:03:44.405Z",
                    "approvalDate": "2024-10-22T09:03:44.405Z",
                    "paymentType": "Regular",
                    "sensePassReferenceId": "2yqrlzxnmddfxjz5gq0l",
                    "paymentMethodCode": 26,
                    "paymentMethodName": "Klarna",
                    "paymentMethodLogo": "https://pay.sandbox.sensepass.com/publicAssets/payment-method/klarna-white.png",
                    "providerId": "r2ywtY+rigPVLZj0Bay7Qe+d03tHJk8lEzfdzonj7Hs=",
                    "requestID": "2acdcfcb-8c63-4841-8426-cededd311f99",
                    "amount": 2,
                    "confirmationNumber": "273-2acdcfcb-8c63-4841-8426-cededd311f99",
                    "fullConfirmationCode": "273-2acdcfcb-8c63-4841-8426-cededd311f99",
                    "cardType": null,
                    "lastFourDigits": null,
                    "expiration": null,
                    "cardExpiration": null,
                    "paymentMethod": "Klarna",
                    "Klarna": {},
                    "extraDetails": {},
                    "providerName": "Klarna Sandbox"
                },
                "paymentProcessRequestID": "2acdcfcb-8c63-4841-8426-cededd311f99",
                "confirmationNumber": "273-2acdcfcb-8c63-4841-8426-cededd311f99",
                "confirmations": [
                    {
                        "approvedBy": "Klarna Sandbox",
                        "dateApproval": "2024-10-22T09:03:44.405Z",
                        "approvalDate": "2024-10-22T09:03:44.405Z",
                        "paymentType": "Regular",
                        "sensePassReferenceId": "2yqrlzxnmddfxjz5gq0l",
                        "paymentMethodCode": 26,
                        "paymentMethodName": "Klarna",
                        "paymentMethodLogo": "https://pay.sandbox.sensepass.com/publicAssets/payment-method/klarna-white.png",
                        "providerId": "r2ywtY+rigPVLZj0Bay7Qe+d03tHJk8lEzfdzonj7Hs=",
                        "requestID": "2acdcfcb-8c63-4841-8426-cededd311f99",
                        "amount": 2,
                        "confirmationNumber": "273-2acdcfcb-8c63-4841-8426-cededd311f99",
                        "fullConfirmationCode": "273-2acdcfcb-8c63-4841-8426-cededd311f99",
                        "cardType": null,
                        "lastFourDigits": null,
                        "expiration": null,
                        "cardExpiration": null,
                        "paymentMethod": "Klarna",
                        "Klarna": {},
                        "extraDetails": {},
                        "providerName": "Klarna Sandbox"
                    }
                ],
                "hasAccountingProcessor": true,
                "balance": 2,
                "clientPhoneNumber": null,
                "clientEmail": null
            }
        }
    }
    {
        "type": "transaction",
        "payload": {
            "transaction": {
                "TransactionNumber": "8921dc842847880d08a30e11a4784ffae59933a3674b2dce9e84d00d",
                "date": "2024-10-22T09:04:59.369Z",
                "amount": "5",
                "baseAmount": "5",
                "currency": "USD",
                "status": 9,
                "statusName": "Canceled",
                "timeoutDate": "2024-10-29T10:04:59.617Z",
                "maxInstallments": 1,
                "reason": null,
                "methodType": 0,
                "businessName": "Barak .inc",
                "pos": "Barak .inc",
                "businessOwnerPhone": "888888",
                "businessCountry": "UNITED STATES",
                "businessCity": "Pan",
                "businessState": "QC",
                "businessStreet": "St.Peter",
                "businessHouseNumber": 5,
                "businessAddress": "Pan, St.Peter 5",
                "businessLocaleName": "IL",
                "branchNumber": "888",
                "products": [],
                "productsSum": {
                    "allAmountSum": "0.00",
                    "allTipSum": "NaN",
                    "allVatSum": "0.00",
                    "allTotalSum": "0.00",
                    "allDiscountSum": "0.00",
                    "allDiscountedAmountSum": "0.00"
                },
                "isNativeApp": false,
                "isSensePassPCI": true,
                "clientPhoneNumber": null,
                "clientEmail": null
            }
        }
    }
    {
      "TransactionNumber": "14a4334a32c852aeb0cfae52cbff1314649da7f175a8e140b35c147c",
      "date": "2019-12-19T09:47:59.105Z",
      "amount": 1234.56,
      "currency": "ILS",
      "status": 0,
      "statusName": "Transaction Approved",
      "pos": "POS 3, Branch Tel Aviv",
      "posReceiptsEndpoint": "http://pay.sensepass-api.com/api/invoicesReceipts/receipt/save/hofai3478o8o78o4s849j3920ckj",
      "posData": {
        "foo": "bar",
        "hello": [
          "world"
        ]
      },
      "businessName": "Coffee Bar",
      "businessId": 144,
      "timeoutDate": "2019-12-19T09:47:59.105Z",
      "paymentMethodData": {
        "PaymentType": "Bit",
        "directAppLinks": {
          "iOSLink": "paymentsBIT://www.bitpay.co.il/app/bitcom-info",
          "androidLink": "intent://www.bitpay.co.il/app/bitcom-info;scheme=bit;package=com.bnhp.payments.paymentsapp;end",
          "qrURL": "https://www.bitpay.co.il/app/bitcom-info"
        }
      },
      "SMS": "Sent",
      "paymentCommit": {
        "messsage": "Payment commit is enabled for this transaction",
        "isPaymentCommitted": false,
        "secondsToCommit": 60,
        "commitLink": "https://pay.sensepass-api.com/api/transactions/commitPayment/ec2dc489d161aa27a803f48bcf5ffcf"
      },
      "products": [
        {
          "name": "Coffee",
          "quantity": 2,
          "amount": 100,
          "discount": 0,
          "posIdentifier": "1234A"
        },
        {
          "name": "Beer",
          "quantity": 1,
          "amount": 600,
          "discount": 0,
          "posIdentifier": "1234B"
        }
      ],
      "confirmations": [
        {
          "paymentType": "Regular",
          "confirmationNumber": "063-d9j09YsY1",
          "fullConfirmationCode": "063-d9j09YsY1",
          "dateApproval": "2019-12-19T09:47:59.105Z",
          "installments": 1,
          "paymentMethodName": "PayPal",
          "approvedBy": "PayPal",
          "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
          "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
          "authNumber": "123213dsf13111",
          "referenceNumber": "1778298289",
          "acquirer": "Visa",
          "voucher": "yyyAbnlmlfm1323",
          "lastFourDigits": "8858",
          "sensePassReferenceId": "34e209ea8b24cc831cf",
          "settlement": {
            "status": 2, // 0=processing, 1=pending, 2=done
            "created": "2019-12-19T09:47:59.105Z", // will be updated upon status change
            "confirmation": "091239831" // only exists once status = 2 (done)
          }
        }
      ],
      "confirmation": {
        "paymentType": "Regular",
        "confirmationNumber": "063-d9j09YsY1",
        "fullConfirmationCode": "063-d9j09YsY1",
        "dateApproval": "2019-12-19T09:47:59.105Z",
        "installments": 1,
        "paymentMethodName": "PayPal",
        "approvedBy": "PayPal",
        "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
        "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
        "authNumber": "123213dsf13111",
        "referenceNumber": "1778298289",
        "acquirer": "Visa",
        "voucher": "yyyAbnlmlfm1323",
        "lastFourDigits": "8858",
        "sensePassReferenceId": "34e209ea8b24cc831cf",
        "settlement": {
          "status": 2, // 0=processing, 1=pending, 2=done
          "created": "2019-12-19T09:47:59.105Z", // will be updated upon status change
          "confirmation": "091239831" // only exists once status = 2 (done)
        }
      },
      "transactionPage": {
        "iOSLink": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "androidLink": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "qrURL": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872"
      },
      "balance": 0
    }

    callbackURL

    string

    https://your-domain.com/some-post-method-callback-endpoint

    See

    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

    timeOut

    number

    600

    amount

    number

    1000

    deviceId*

    string

    2ooeww5ufzg3nkuf8a10g15i5epu8o58jv1rznif3o1tr6xsb1rm

    methodType*

    string

    subscription

    Subscription Model
    {
        "TransactionNumber": "5f3275249792ee75b41322e636617ee039e2e1a49cc80c11f2177233",
        "date": "2022-08-14T10:09:05.810Z",
        "status": 0,
        "statusName": "Initialize",
        "timeoutDate": "2022-08-14T10:19:05.872Z",
        "paymentCommit": {
            "messsage": "Payment commit is enabled for this transaction"
        },
        "businessId": "339978940107456",
        "businessName": "Coffee Bar",
        "pos": "POS 1",
        "businessOwnerPhone": "3587292",
        "businessCountry": "US",
        "businessCity": "Virginia Beach",
        "businessStreet": "123 Street",
        "businessAddress": "123 Street, Virginia Beach",
        "branchNumber": "1",
        "branchId": "1",
        "subscription": {
            "id": "bf8b7e01-466d-4996-b9a2-fc0880923359",
            "active": true,
            "created": "2023-05-30T14:35:13.698Z",
            "updated": "2023-05-30T14:35:13.698Z",
            "expires": null,
            "start_date": "2023-01-01T12:00:00.000Z",
            "interval": "1month",
            "status": "active",
            "customer": {}
        },
        "transactionPage": {
            "iOSLink": "https://pay.sandbox.sensepass.com/orderSummary/5f3275249792ee75b41322e636617ee039e2e1a49cc80c27f2177233",
            "androidLink": "https://pay.sandbox.sensepass.com/orderSummary/5f3275249792ee75b41322e636617ee039e2e1a49cc80c27f2177233",
            "qrURL": "https://pay.sandbox.sensepass.com/orderSummary/5f3275249792ee75b41322e636617ee039e2e1a49cc80c27f2177233"
        }
    }
    and a
    value
    string of your choosing, for example:
  • Update your HTML element that invokes the pay method from the SDK with an id attribute and value from step #2, e.g. id="my-payment-button".

  • .zip
    named to match it’s domain.
    Make sure to store the .zip content in its correct website.
  • Inform SensePass all apple-developer-merchantid-domain-association.txt file(s) are stored and publicly accessible.

  • Receive confirmation from SensePass that your domain(s) are Apple Pay ready.

  • configurationarrow-up-right
    www.my-store.comarrow-up-right
    my-subdomain.my-store.comarrow-up-right
    my-other-store.comarrow-up-right
    error
    "
    :
    null
    ,
    "results": [
    {
    "type": "email",
    "question": "Please input your email address",
    "input": "[email protected]"
    },
    {
    "type": "phone",
    "minimumLength": 10,
    "question": "Please input your phone number",
    "input": "1234567890"
    }
    ]
    }
    Customer Input Model
    description

    title

    string

    Customer’s Title

    given_name

    string

    Customer's given name

    family_name

    string

    Customer's family name

    email

    string

    Customer’s email address

    country

    string

    Customer’s country

    Creating a transaction
    description

    creditCard

    Object

    Credit Card information

    hashtag
    Credit Card Model

    field
    Required
    type
    description

    cardNumber

    string

    example: 4580111111111111

    Credit Card Number

    expiration

    string

    example: 12/34 Credit card expiration MM/YY

    cvv

    hashtag
    Payment Commit Model

    This model is referenced in "paymentCommit" field of response body

    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

    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

    https://pay.sandbox.sensepass.com/publicAssets/themes/ecommerce.theme.cssarrow-up-right
    SDK Theme Config Modelarrow-up-right
    SensePass Elements Demojs.sandbox.sensepass.comchevron-right

    Payment request with invoice

    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

    URL: /transactions/init

    Request Body:

    hashtag
    Creating a new transaction object (Payment Request)

    POST /transactions/init

    This API creates new payment request based on the fields below.

    hashtag
    Request Body

    Name
    Type
    Description

    See Transactions entity schema:

    Basic Payment Request

    Basic request example to create a new transaction.

    URL: /transactions/init

    hashtag
    Creating a new transaction object (Payment Request)

    POST /transactions/init

    This API creates new payment request based on the fields below.

    hashtag
    Request Body

    Name
    Type
    Description

    See Transactions entity schema:

    Payment request with receipt generated by the e-commerce platform

    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

    hashtag
    Creating Payment Request

    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.

    hashtag
    Transaction 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.

    circle-info

    More than one "confirmations" object can be available in cases of split payment, refund and partial refund

    hashtag
    Sending the receipt from the e-commerce platform to SensePass

    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:

    Pay by Credit Card

    API for direct payment by credit card number without using payment page.

    circle-exclamation

    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

    hashtag
    API Interface

    hashtag
    Pay by credit card

    POST https://api.sensepass.com/api/transactions/pay

    Authentication Request Body fields

    circle-info

    This API only support merchant API authentication -

    hashtag
    Request Body

    Name
    Type
    Description

    See Transactions entity schema:

    hashtag
    Examples

    Basic request example to pay using credit card

    Response

    hashtag
    Transaction Status Flow

    Callback/Webhook

    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

    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.

    circle-info

    Make sure the URL provided in "callbackURL" is fully accessible from the internet and does not contain local IP or private DNS.

    circle-info

    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:

    hashtag
    Creating a new transaction object (Payment Request)

    POST /transactions/init

    This API creates new payment request based on the fields below.

    hashtag
    Request Body

    Name
    Type
    Description

    See Transactions entity schema:

    hashtag
    Security - HMAC Signature

    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:

    1. Extract "HMAC-Random-Key" header from the callback API request

    2. Concat the header from #1 to the request body

    3. Perform HMAC 256 calculation with the concatenated string and using your secret HMAC key

    hashtag
    Retries

    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:

    1. 15 seconds

    2. 60 seconds

    3. 120 seconds

    4. 600 seconds

    hashtag
    Callbacks with GET method

    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

    E-commerce iFrame

    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.

    hashtag
    Flows supported

    1. Capture, Authorization and Tokenization payment types

    2. Products summary

    3. Receipt

    4. Invoice

    5. Manual Capture

    6. JS post message events,

    7. Callback events,

    8. Socket.IO events,

    hashtag
    Supported Payment Methods

    All SensePass payment methods,

    hashtag
    Usage

    1. From the create trasnaction API - get the value of transactionPage.consumerPage

    hashtag
    Regular display

    transactionPage.consumerPage.regular for full size view

    hashtag
    Medium display

    transactionPage.consumerPage.medium

    Medium view without the QR

    hashtag
    Small display

    transactionPage.consumerPage.small

    Smaller view without the QR and without the header

    hashtag
    Please see

    Subscription Model

    This model represents subscription method type & its related data for a new transaction creation.

    hashtag
    Subscription Model

    This model is referenced in the "subscription" field of the Transaction Model object.

    circle-info

    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).

    field
    type
    required
    default
    example
    description

    Payment request with products

    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 .

    URL: /transactions/init

    Request body:

    Email Payment Request

    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: [email protected]

    Multiple languages are available, see "emailConfig" field below.

    URL: /transactions/init

    Request Body:

    Email Payment Request

    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: [email protected]

    Multiple languages are available, see "emailConfig" field below.

    Request Body:

    Authorization

    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.

    hashtag
    Create an Authorization

    Basic Payment Request

    Basic request example to create a new transaction.

    hashtag
    Creating a new transaction object (Payment Request)

    POST /transactions/init

    Payment request with invoice

    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:

    Payment request with website custom data

    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:

    Product Model

    This model represent the full details about the items in the ticket including sub-products.

    hashtag
    Product Model

    This model referenced in "products" field of request body

    field
    type

    Credit Card iFrame

    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.

    hashtag
    Flows supported

    Confirmation Model

    This model represents settlement data from the proccessor and SensePass, the entity contains all the required data for accounting reports.

    hashtag
    Confirmation Model

    This model is referenced in "confirmations" field of response body.

    circle-info

    Metadata Model

    This model represents all the required data for displaying data on the SensePass Dashboard backoffice.

    circle-info

    You must use this structure:

    hashtag

    Manual Capture (deprecated)

    THIS METHOD WILL BE DEPRECATED IN FAVOR OF A NEW ONE

    triangle-exclamation

    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.

    const paymentElementId = "my-payment-button";
    const spSdkConfig = {
       mode: "sandbox", // "sandbox" | "production"
       debug: true, // optional for logs
       visualizer: true, // optional visual logs, requires HTML with id="sensepass-front-end-visualizer"
       clientId: "aee8d2cdc1cb...", // Client ID
       methodType: "manual_capture", // type for the transaction, defaults to "manual_capture", enum: "manual_capture" | "tokenize" | "authorize"
       payButtonId: paymentElementId // id for the payment-button (element) the customer will click to start the payment process
    };
    {
      "timeOut": 600,
      "amount": 200,
      "isCent": true,
      "currency": "USD",
      "deviceId": "2ooeww5ufzg3nkuf8a10gu5n695yolixlbgb042o03to9bxfkr7t815i5epu8o58jv1rznif3o1tr6xsb1rm"
    }
    {
      "timeOut": 600,
      "amount": 200,
      "isCent": true,
      "currency": "USD",
      "apiKey": "2ooeww5ufzg3nkuf8a10gu5n695yolixlbgb042o038o58jv1rznif3o1tr6xsb1rm",
      "returnURL": "https://merchantDomain.com/thankYouPage",
      "cancelURL": "https://merchantDomain.com/cart",
      "callbackURL": "https://merchantDomain.com/sensepass/callbackEndPoint",
      "receipt": {
        "mode": 2
      },
      "receiptNotifications": {
        "email": [
          "[email protected]"
        ],
        "sms": [
          "9295522135"
        ]
      }
    }

    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.

    Subsciption callbacks
    see our docs here
    see our docs here
    see our docs here
    see here the full list
    Create a transaction
    our full documentation and examples for e-commerce iFrame
    Regular SIze
    Medium Size
    Small Size

    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)

    interval

    enum

    false

    "1month"

    "14day", "1month", "1year"

    Increment value for the due date of the payment

    dueDate

    date

    Logo
    Call "transactions/init" in order to create an authorization request and add the "methodType" field with "authorize".
    circle-info

    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.

    hashtag
    Authorization Token

    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.

    hashtag
    Capture using Token

    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:

    circle-info

    The amount fields represents the amount in cents, value of 100 represents 1.00

    Request Body for Authorize.net token:

    Response body:

    hashtag
    Void

    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:

    hashtag
    Re-Authorization

    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:

    circle-info

    The amount fields represents the amount in cents, value of 100 represents 1.00

    Request body for Authorize.net token:

    Response body:

    hashtag
    Close Authorization

    POST /transactions/:transactionNumber/closeAuth

    circle-info

    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:

    1. The transaction's method type has to be of type Authorization

    2. At least one successful payment has been made (if there aren't any successful payments, use Void endpoint to release the remaining credit).

    3. The sum of successful payments under the Authorization transaction must be less than the original auth amount.

    hashtag
    Path Parameters

    Name
    Type
    Description

    transactionNumber

    string

    Transaction Number

    Request Body:

    Response body:

  • Capture

  • Tokenization

  • Authorization

  • hashtag
    Usage

    1. Create a transaction

    2. From the create transaction API - get the value of transactionPage.merchantPage.creditCard.default

    3. Show the page using iFrame and listen for post message events or callback, see here Transaction Events docs

    Example of Transaction Response

    hashtag
    Create a Transaction

    Call "transactions/init" in order to create a capture request and add the "methodType" field with "manual_capture".

    See here the full docs of creating a transaction

    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.

    hashtag
    Capture

    circle-info

    You may add metadata to the request with the key "metadata", follow Metadata Model for further instructions.

    URL: /api/transactions/{transactionNumber}/capture

    Request Body:

    Here is an example:

    Response body:

    Commit Transaction
    Tokenization flow
    {
        "TransactionNumber": "5f3275249792ee75b41322e636617ee039e2e1a49cc80c11f2177233",
        "date": "2022-08-14T10:09:05.810Z",
        "amount": "2",
        "currency": "USD",
        "status": 0,
        "statusName": "Initialize",
        "timeoutDate": "2022-08-14T10:19:05.872Z",
        "paymentCommit": {
            "messsage": "Payment commit is enabled for this transaction"
        },
        "businessId": "339978940107456",
        "businessName": "Coffee Bar",
        "pos": "POS 1",
        "businessOwnerPhone": "3587292",
        "businessCountry": "US",
        "businessCity": "Virginia Beach",
        "businessStreet": "123 Street",
        "businessAddress": "123 Street, Virginia Beach",
        "branchNumber": "1",
        "branchId": "1",
        "receiptPending": true,
        "posReceiptsEndpoint": "https://api.sandbox.sensepass.com/api/invoicesReceipts/receipt/save/0128c664-1a2a-422c-91d0-85a8af229ed4",
        "transactionPage": {
            "iOSLink": "https://pay.sandbox.sensepass.com/orderSummary/5f3275249792ee75b41322e636617ee039e2e1a49cc80c27f2177233",
            "androidLink": "https://pay.sandbox.sensepass.com/orderSummary/5f3275249792ee75b41322e636617ee039e2e1a49cc80c27f2177233",
            "qrURL": "https://pay.sandbox.sensepass.com/orderSummary/5f3275249792ee75b41322e636617ee039e2e1a49cc80c27f2177233"
        }
    }
    {
        "TransactionNumber": "5f3275249792ee75b41322e636617ee039e2e1a49cc80c11f2177233",
        "date": "2022-08-14T10:09:05.810Z",
        "amount": "2",
        "currency": "USD",
        "status": 0,
        "statusName": "Initialize",
        "timeoutDate": "2022-08-14T10:19:05.872Z",
        "paymentCommit": {
            "messsage": "Payment commit is enabled for this transaction"
        },
        "businessId": "339978940107456",
        "businessName": "Coffee Bar",
        "pos": "POS 1",
        "businessOwnerPhone": "3587292",
        "businessCountry": "US",
        "businessCity": "Virginia Beach",
        "businessStreet": "123 Street",
        "businessAddress": "123 Street, Virginia Beach",
        "branchNumber": "1",
        "branchId": "1",
        "receiptPending": true,
        "posReceiptsEndpoint": "https://api.sandbox.sensepass.com/api/invoicesReceipts/receipt/save/0128c664-1a2a-422c-91d0-85a8af229ed4",
        "transactionPage": {
            "iOSLink": "https://pay.sandbox.sensepass.com/orderSummary/5f3275249792ee75b41322e636617ee039e2e1a49cc80c27f2177233",
            "androidLink": "https://pay.sandbox.sensepass.com/orderSummary/5f3275249792ee75b41322e636617ee039e2e1a49cc80c27f2177233",
            "qrURL": "https://pay.sandbox.sensepass.com/orderSummary/5f3275249792ee75b41322e636617ee039e2e1a49cc80c27f2177233"
        },
        "confirmations": [
        {
          "paymentType": "Regular",
          "confirmationNumber": "063-d9j09YsY1",
          "fullConfirmationCode": "063-d9j09YsY1",
          "dateApproval": "2019-12-19T09:47:59.105Z",
          "installments": 1,
          "paymentMethodName": "PayPal",
          "approvedBy": "PayPal",
          "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
          "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
          "authNumber": "123213dsf13111",
          "referenceNumber": "1778298289",
          "acquirer": "Visa",
          "voucher": "yyyAbnlmlfm1323",
          "lastFourDigits": "8858",
          "sensePassReferenceId": "34e209ea8b24cc831cf"
        }
      ]
    }
    {
      "url": "http://someDomain.com/receipt1.pdf",
      "type": "pdf",
      "receiptIdentifier": "43242342324",
      "associateToConfirmationNumbers": [
        "012-34567891",
        "012-34567892"
      ]
    }
    {
      "success": true,
      "message": "Saved"
    }
    {
      "timeOut": 600,
      "amount": 200,
      "isCent": true,
      "currency": "USD",
      "deviceId": "2ooeww5ufzg3nkuf8a10g15i5epu8o58jv1rznif3o1tr6xsb1rm",
      "callbackURL": "https://google.com/callback/api/callback",
      "methodType": "Authorize"
    }
    {
        "TransactionNumber": "5f3275249792ee75b41322e636617ee039e2e1a49cc80c11f2177233",
        "date": "2022-08-14T10:09:05.810Z",
        "amount": "2",
        "currency": "USD",
        "status": 0,
        "statusName": "Initialize",
        "timeoutDate": "2022-08-14T10:19:05.872Z",
        "paymentCommit": {
            "messsage": "Payment commit is enabled for this transaction"
        },
        "businessId": "339978940107456",
        "businessName": "Coffee Bar",
        "pos": "POS 1",
        "businessOwnerPhone": "3587292",
        "businessCountry": "US",
        "businessCity": "Virginia Beach",
        "businessStreet": "123 Street",
        "businessAddress": "123 Street, Virginia Beach",
        "branchNumber": "1",
        "branchId": "1",
        "transactionPage": {
            "iOSLink": "https://pay.sandbox.sensepass.com/orderSummary/5f3275249792ee75b41322e636617ee039e2e1a49cc80c27f2177233",
            "androidLink": "https://pay.sandbox.sensepass.com/orderSummary/5f3275249792ee75b41322e636617ee039e2e1a49cc80c27f2177233",
            "qrURL": "https://pay.sandbox.sensepass.com/orderSummary/5f3275249792ee75b41322e636617ee039e2e1a49cc80c27f2177233"
        },
        "paymentDetails": {
            "type": "Authorize"
        }
    }
    {
        "TransactionNumber": "5f3275249792ee75b41322e636617ee039e2e1a49cc80c11f2177233",
        "date": "2022-08-14T10:09:05.810Z",
        "amount": "2",
        "currency": "USD",
        "status": 0,
        "statusName": "Initialize",
        "timeoutDate": "2022-08-14T10:19:05.872Z",
        "paymentCommit": {
        "businessId": "339978940107456",
        "businessName": "Coffee Bar",
        "pos": "POS 1",
        "businessOwnerPhone": "3587292",
        "businessCountry": "US",
        "businessCity": "Virginia Beach",
        "businessStreet": "123 Street",
        "businessAddress": "123 Street, Virginia Beach",
        "paymentDetails": {
            "type": "Authorize",
            "paymentMethod": "Sensepass PCI",
            "created": "2022-11-16T09:09:11.951Z",
            "token": "fpwotdbb1ggzg07j1pbhmhfw6tyozttq427nucb6um4ku",
            "requestID": "754144919",
            "cardType": "amex",
            "lastFourDigits": "7767",
            "cardMask": "375510*****7767",
            "expiration": "0125",
            "approvedBy": "Cardknox Sandbox"
        },
        "callbackType": "transaction_status"
    }
    {
      "deviceId": "2ooeww5ufzg3nkuf8a10g15i5epu8o58jv1rznif3o1tr6xsb1rm",
      "amount": 200,
      "token": "fpwotdbb1ggzg07j1pbhmhfw6tyozttq427nucb6um4ku"
    }
    {
      "deviceId": "2ooeww5ufzg3nkuf8a10g15i5epu8o58jv1rznif3o1tr6xsb1rm",
      "amount": 200,
      "tokenSource": "Authorize.net",
      "tokenData": {
        "profile_id": "12121212",
        "payment_id": "32323232",
        "auth_code": "ABC123"
      }
    }
    {
        "success": true,
        "transactionNumber": "73ca0ed84245b7812d18613f30e3393159f11fc216505ec1892021f9",
        "transactionStatus": "TransactionApproved",
        "confirmation": {
            "fullConfirmationCode": "174-85762A",
            "confirmationNumber": "174-85762A",
            "approvedBy": "Cardknox Sandbox",
            "providerId": "6wMjGG7cJ5KPTvzLOXKTIJjwdREImIsJGNpmGckfBiU=",
            "dateApproval": "2022-11-16T09:19:15.486Z",
            "approvalDate": "2022-11-16T09:19:15.486Z",
            "paymentMethodName": "Credit Card",
            "lastFourDigits": "7767",
            "cardExpiration": "0125",
            "sensePassReferenceId": "epr2dxpyxit3ro3jlp8l"
        },
        "cardMask": "375510*****7767",
        "token": "fpwotdbb1ggzg07j1pbhmhfw6tyozttq427nucb6um4ku"
    {
      "deviceId": "2ooeww5ufzg3nkuf8a10g15i5epu8o58jv1rznif3o1tr6xsb1rm",
      "transactionNumber": "05e5559cb40db534cf526472b4d9609733a438d232d4a94d03aa292c"
    }
    {
      "deviceId": "2ooeww5ufzg3nkuf8a10g15i5epu8o58jv1rznif3o1tr6xsb1rm",
      "tokenSource": "Authorize.net",
      "tokenData": {
        "refNum": "8K0TYW"
      }
    }
    {
        "success": true,
        "transactionNumber": "05e5559cb40db534cf526472b4d9609733a438d232d4a94d03aa292c",
        "transactionStatus": "TransactionAuthoriziationVoided",
        "error": null
    }
    {
      "deviceId": "2ooeww5ufzg3nkuf8a10g15i5epu8o58jv1rznif3o1tr6xsb1rm",
      "amount": 200,
      "token": "fpwotdbb1ggzg07j1pbhmhfw6tyozttq427nucb6um4ku"
    }
    {
      "deviceId": "2ooeww5ufzg3nkuf8a10g15i5epu8o58jv1rznif3o1tr6xsb1rm",
      "amount": 200,
      "tokenSource": "Authorize.net",
      "tokenData": {
        "profile_id": "12121212",
        "payment_id": "32323232",
        "auth_code": "ABC123"
      }
    }
    {
        "success": true,
        "transactionNumber": "73ca0ed84245b7812d18613f30e3393159f11fc216505ec1892021f9",
        "transactionStatus": "TransactionApproved",
        "confirmation": {
            "fullConfirmationCode": "174-85762A",
            "confirmationNumber": "174-85762A",
            "approvedBy": "Cardknox Sandbox",
            "providerId": "6wMjGG7cJ5KPTvzLOXKTIJjwdREImIsJGNpmGckfBiU=",
            "dateApproval": "2022-11-16T09:19:15.486Z",
            "approvalDate": "2022-11-16T09:19:15.486Z",
            "paymentMethodName": "Credit Card",
            "lastFourDigits": "7767",
            "cardExpiration": "0125",
            "sensePassReferenceId": "epr2dxpyxit3ro3jlp8l"
        },
        "cardMask": "375510*****7767",
        "token": "fpwotdbb1ggzg07j1pbhmhfw6tyozttq427nucb6um4ku"
    }
    {
        "deviceId": "027dpi0gyi1ir8bv20vtrm6yd0aas5i8rzjw94xro3gvroh5b79my3uv06vt"
    }
    {
        "success": true,
        "transactionNumber": "bf6421709bd9bb107e3914ccc698bf3aa7d61f871cf9c29029578da1",
        "transactionStatus": "TransactionAuthorizationClosed",
        "approvalID": "10203715865",
        "message": "Transaction Authorization Closed Successfully"
    }
    {
        "TransactionNumber": "5a961cebd09a1c07c76e36d810c4049878de6b7134fcd7e00fa2ed5a",
        "date": "2023-01-15T15:54:10.736Z",
        "amount": "12",
        "baseAmount": "12",
        "currency": "ILS",
        "status": 0,
        "statusName": "Initialize",
        "timeoutDate": "2023-01-15T16:04:11.141Z",
        "methodType": 0,
        "businessId": "1",
        "businessName": "SensePass IL",
        "pos": "SensePass IL",
        "businessOwnerPhone": "0505555555",
        "businessCountry": "Israel",
        "businessCity": "Tel Aviv",
        "businessState": "misisipi",
        "businessStreet": "Menachem Begin",
        "businessAddress": "Tel Aviv, Menachem Begin 0",
        "branchNumber": "144",
        "branchId": "144",
        "branch": {
            "number": "144"
        },
        "receiptPending": true,
        "productSumMismatch": true,
        "paymentMethodData": {
            "PaymentType": "Bit",
            "directAppLinks": {
                "iOSLink": "https://pay.sandbox.sensepass.com/orderSummary/5a961cebd09a1c07c76e36d810c4049878de6b7134fcd7e00fa2ed5a",
                "androidLink": "https://pay.sandbox.sensepass.com/orderSummary/5a961cebd09a1c07c76e36d810c4049878de6b7134fcd7e00fa2ed5a",
                "qrURL": "https://pay.sandbox.sensepass.com/orderSummary/5a961cebd09a1c07c76e36d810c4049878de6b7134fcd7e00fa2ed5a"
            }
        },
        "transactionPage": {
            "consumerPage": {
                "regular": "https://pay.sandbox.sensepass.com/orderSummary/5a961cebd09a1c07c76e36d810c4049878de6b7134fcd7e00fa2ed5a",
                "medium": "https://pay.sandbox.sensepass.com/orderSummary/5a961cebd09a1c07c76e36d810c4049878de6b7134fcd7e00fa2ed5a?viewMode=medium",
                "small": "https://pay.sandbox.sensepass.com/orderSummary/5a961cebd09a1c07c76e36d810c4049878de6b7134fcd7e00fa2ed5a?viewMode=small"
            },
            "merchantPage": {
                "creditCard": {
                    "small": "https://api.sandbox.sensepass.com/api/transactions/sensepass-pci/credit-card/5a961cebd09a1c07c76e36d810c4049878de6b7134fcd7e00fa2ed5a?viewMode=small",
                    "regular": "https://api.sandbox.sensepass.com/api/transactions/sensepass-pci/credit-card/5a961cebd09a1c07c76e36d810c4049878de6b7134fcd7e00fa2ed5a",
                    "default": "https://api.sandbox.sensepass.com/api/transactions/sensepass-pci/credit-card/5a961cebd09a1c07c76e36d810c4049878de6b7134fcd7e00fa2ed5a?component=landing"
                },
                "POS": {
                    "regular": "https://pos.sandbox.sensepass.com?mode=transaction&transactionEventId=961ddd23-8c30-4f01-850c-dc19348a48ff-7d792564-ec08-4ae0-83b0-86d4841be055"
                }
            }
        }
    }
    {
      "timeOut": 600,
      "deviceId": "2ooeww5ufzg3nkuf8a10g15i5epu8o58jv1rznif3o1tr6xsb1rm",
      "methodType": "manual_capture"
    }
    {
        "TransactionNumber": "5f3275249792ee75b41322e636617ee039e2e1a49cc80c11f2177233",
        "date": "2022-08-14T10:09:05.810Z",
        "status": 0,
        "statusName": "Initialize",
        "timeoutDate": "2022-08-14T10:19:05.872Z",
        "paymentCommit": {
            "messsage": "Payment commit is enabled for this transaction"
        },
        "businessId": "339978940107456",
        "businessName": "Coffee Bar",
        "pos": "POS 1",
        "businessOwnerPhone": "3587292",
        "businessCountry": "US",
        "businessCity": "Virginia Beach",
        "businessStreet": "123 Street",
        "businessAddress": "123 Street, Virginia Beach",
        "branchNumber": "1",
        "branchId": "1",
        "transactionPage": {
            "iOSLink": "https://pay.sandbox.sensepass.com/orderSummary/5f3275249792ee75b41322e636617ee039e2e1a49cc80c27f2177233",
            "androidLink": "https://pay.sandbox.sensepass.com/orderSummary/5f3275249792ee75b41322e636617ee039e2e1a49cc80c27f2177233",
            "qrURL": "https://pay.sandbox.sensepass.com/orderSummary/5f3275249792ee75b41322e636617ee039e2e1a49cc80c27f2177233"
        },
        "paymentDetails": {
            "type": "ManualCapture"
        }
    }
    {
      amount: number; // required
      deviceId: string; // required
      currency: string; // optional: 'USD' | 'ILS' | 'CAD'
      reason: string;
      clientPhoneNumber: string;
      clientName: string;
      clientEmail: string;
      products: ProductEntity[];
    }
    {
      "amount": 200,
      "deviceId": "2ooeww5ufzg3nkuf8a10g15i5epu8o58jv1rznif3o1tr6xsb1rm"
    }
    {
        "success": true,
        "transactionNumber": "dff8c53f80b25527666a5935b56fc431d8a68cc82e53234d907103d2",
        "transactionStatus": "TransactionApproved",
        "confirmation": {
            "fullConfirmationCode": "166-60202801955",
            "confirmationNumber": "166-60202801955",
            "approvedBy": "AuthorizeNet Sandbox",
            "providerId": "jDPPZyn8zdGtBcKUP4EbxTfwy62j+JShtQGDlbwx4/c=",
            "dateApproval": "2022-10-20T17:34:31.778Z",
            "approvalDate": "2022-10-20T17:34:31.778Z",
            "paymentMethodName": "Credit Card",
            "lastFourDigits": "1111",
            "cardExpiration": "1234"
        },
        "cardMask": ""
    }

    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:

    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 ]

    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

    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 ]

    See here our Authentication page
    See Authenticating page for examples
    See our transaction status flow here

    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

    Interface:

    Compare the result from #3 against the value of the request header "HMAC-Authorization"

    2000 seconds

  • 32000 seconds

  • 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 ]

    hashtag
    Creating a new transaction object (Payment Request)

    POST /transactions/init

    This API creates new payment request based on the fields below.

    hashtag
    Request Body

    Name
    Type
    Description

    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 ]

    See Transactions entity schema:

    merchant back officearrow-up-right
    Consumer page
    hashtag
    Creating a new transaction object (Payment Request)

    POST /transactions/init

    This API creates new payment request based on the fields below.

    hashtag
    Request Body

    Name
    Type
    Description

    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 ]

    See Transactions entity schema:

    hashtag
    Creating a new transaction object (Payment Request)

    POST /transactions/init

    This API creates new payment request based on the fields below.

    hashtag
    Request Body

    Name
    Type
    Description

    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 ]

    See Transactions entity schema:

    This API creates new payment request based on the fields below.

    hashtag
    Request Body

    Name
    Type
    Description

    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 ]

    See Transactions entity schema:

    hashtag
    Creating a new transaction object (Payment Request)

    POST /transactions/init

    This API creates new payment request based on the fields below.

    hashtag
    Request Body

    Name
    Type
    Description

    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 ]

    See Transactions entity schema:

    Invoice Model
    hashtag
    Creating a new transaction object (Payment Request)

    POST /transactions/init

    This API creates new payment request based on the fields below.

    hashtag
    Request Body

    Name
    Type
    Description

    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 ]

    See Transactions entity schema:

    description

    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

    Note: Multiple confirmations objects can be related to one transaction, for example after a refund or in a split payment scenario.

    field
    type
    description

    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

    Metadata Model

    This model is referenced in "metadata" parameter of request body

    field
    type
    description

    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

    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

    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

    SMS Payment Request

    SMS Message example

    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:

    hashtag
    Customizing message format

    Full customization of the SMS message including variables can be done using "customSmsText" field in the "/transactions/init" API.

    Request Body:

    hashtag
    Available variables:

    1. businessName: Merchant name

    2. locationName: Location name

    3. amount: Transaction amount including currency

    4. link: Full URL to payment request page

    hashtag
    Using variables:

    Add %% before and after the name of the variable.

    Examples:

    1. %%businessName%% asks you to pay

    2. Hi, you got payment request from %%businessName%%, %%locationName%% of %%amount%% - %%reason%%. Please click here to pay: %%link%%

    hashtag
    Creating a new transaction object (Payment Request)

    POST /transactions/init

    This API creates new payment request based on the fields below.

    hashtag
    Request Body

    Name
    Type
    Description

    See Transactions entity schema:

    Payment request with POS Data

    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:

    hashtag
    Creating a new transaction object (Payment Request)

    POST /transactions/init

    This API creates new payment request based on the fields below.

    hashtag
    Request Body

    Name
    Type
    Description

    See Transactions entity schema:

    Express SDK

    Speed up the checkout process with Apple Pay, Google Pay, PayPal and the customer's billing & shipping information.

    hashtag
    Quick demo

    Check out our demo page to see the flow in action.

    circle-info

    This is a checkout page example with the Express SDK with the billing & shipping information filled and the order is ready to place.

    The payment options responded with the customer's information used to speed up the checkout process.


    hashtag
    Configuration

    circle-info

    You can copy-paste the (relevant) following HTML code to your checkout page to get going.

    • Note that the current widget configuration is set up to use the mock client-id - and replace it with yours.


    hashtag
    Payment Data

    circle-info

    Example of a response after paying with Google Pay

    hashtag
    Customization

    circle-info

    This code sample demonstrates how to customize the appearance of the Express Widget's payment buttons. Save & link this file in your HTML after the widget's script to ensure styles are applied.

    The widget's internal CSS provides basic styling. This file allows you to override and enhance it.

    Key selectors:

    POS iFrame

    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.

    hashtag
    Flows supported

    1. Cancel transaction

    2. Send SMS message to consumer

    3. Manual credit card number entry

    4. QR display for consumer scanning

    5. Timeout logics

    6. SensePass Tag pairing

    hashtag
    Usage

    1. From the create transaction API - get the value of transactionPage.merchantPage.POS

    Example:

    3. Show in the POS an iFrame with the URL

    4. to be notified about approval, timeout and errors

    Payment request with callback

    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.

    circle-info

    Payment request with callback

    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.

    circle-info

    Payment request with products

    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 .

    Request body:

    Payment request with receipt generated by the POS

    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:

    hashtag
    Creating a Payment Request

    URL: /transactions/init

    API

    Embed your website/checkout-page with our payments widget using our web-component or iframe SDK.

    hashtag
    Jump to it

    Payment Method Level Model

    Level 2 or Level 3 interface for payment methods

    This model represents common validation parameters that will be sent to the processor for Level 2 or 3 validation once enabled in the Partner's site or sent in the transaction's creation process.

    hashtag
    Examples

    Level 2 example object sent in the Transactions/Init request body

    Level 3 example object sent in the Transactions/Init request body

    Receipts Model

    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:

    1. Sensepass generate the receipt using the model, the receipt will be presented to the consumer and to saved in SensePass Merchant dashboard

    2. 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

    {
      "timeOut": 600,
      "amount": 200,
      "isCent": true,
      "currency": "USD",
      "deviceId": "2ooeww5ufzg3nkuf8a10gu5n695yolixlbgb042o03to9bxfkr7t815i5epu8o58jv1rznif3o1tr6xsb1rm",
      "invoice": {
          "type": "pdf",
          "url": "http://someDomain.com/invoice1.pdf"
      }
    }
    {
      "TransactionNumber": "14a4334a32c852aeb0cfae52cbff1314649da7f175a8e140b35c147c",
      "date": "2019-12-19T09:47:59.105Z",
      "amount": "1234.56",
      "currency": "USD",
      "status": 0,
      "statusName": "Transaction Approved",
      "pos": "POS 3, Branch Tel Aviv",
      "posReceiptsEndpoint": "http://pay.sensepass-api.com/api/invoicesReceipts/receipt/save/hofai3478o8o78o4s849j3920ckj",
      "posData": {
        "foo": "bar",
        "hello": [
          "world"
        ]
      },
      "businessName": "Coffee Bar",
      "businessId": 144,
      "timeoutDate": "2019-12-19T09:47:59.105Z",
      "paymentMethodData": {
        "PaymentType": "Bit",
        "directAppLinks": {
          "iOSLink": "paymentsBIT://www.bitpay.co.il/app/bitcom-info",
          "androidLink": "intent://www.bitpay.co.il/app/bitcom-info;scheme=bit;package=com.bnhp.payments.paymentsapp;end",
          "qrURL": "https://www.bitpay.co.il/app/bitcom-info"
        }
      },
      "SMS": "Sent",
      "paymentCommit": {
        "messsage": "Payment commit is enabled for this transaction",
        "isPaymentCommitted": false,
        "secondsToCommit": 60,
        "commitLink": "https://pay.sensepass-api.com/api/transactions/commitPayment/ec2dc489d161aa27a803f48bcf5ffcf"
      },
      "products": [
        {
          "name": "Coffee",
          "quantity": 2,
          "amount": 100,
          "discount": 0,
          "posIdentifier": "1234A"
        },
        {
          "name": "Beer",
          "quantity": 1,
          "amount": 600,
          "discount": 0,
          "posIdentifier": "1234B"
        }
      ],
      "productSumMismatch": true,
      "confirmations": [
        {
          "paymentType": "Regular",
          "confirmationNumber": "063-d9j09YsY1",
          "fullConfirmationCode": "063-d9j09YsY1",
          "dateApproval": "2019-12-19T09:47:59.105Z",
          "installments": 1,
          "paymentMethodName": "PayPal",
          "approvedBy": "PayPal",
          "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
          "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
          "authNumber": "123213dsf13111",
          "referenceNumber": "1778298289",
          "acquirer": "Visa",
          "voucher": "yyyAbnlmlfm1323",
          "lastFourDigits": "8858",
          "sensePassReferenceId": "34e209ea8b24cc831cf"
        }
      ],
      "confirmation": {
        "paymentType": "Regular",
        "confirmationNumber": "063-d9j09YsY1",
        "fullConfirmationCode": "063-d9j09YsY1",
        "dateApproval": "2019-12-19T09:47:59.105Z",
        "installments": 1,
        "paymentMethodName": "PayPal",
        "approvedBy": "PayPal",
        "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
        "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
        "authNumber": "123213dsf13111",
        "referenceNumber": "1778298289",
        "acquirer": "Visa",
        "voucher": "yyyAbnlmlfm1323",
        "lastFourDigits": "8858",
        "sensePassReferenceId": "34e209ea8b24cc831cf"
      },
      "transactionPage": {
        "iOSLink": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "androidLink": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "qrURL": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872"
      },
      "balance": 0
    }
    {
        // Response
    }
    {
        // Response
    }
    {
      "TransactionNumber": "14a4334a32c852aeb0cfae52cbff1314649da7f175a8e140b35c147c",
      "date": "2019-12-19T09:47:59.105Z",
      "amount": "1234.56",
      "currency": "USD",
      "status": 0,
      "statusName": "Transaction Approved",
      "pos": "POS 3, Branch Tel Aviv",
      "posReceiptsEndpoint": "http://pay.sensepass-api.com/api/invoicesReceipts/receipt/save/hofai3478o8o78o4s849j3920ckj",
      "posData": {
        "foo": "bar",
        "hello": [
          "world"
        ]
      },
      "businessName": "Coffee Bar",
      "businessId": 144,
      "timeoutDate": "2019-12-19T09:47:59.105Z",
      "paymentMethodData": {
        "PaymentType": "Bit",
        "directAppLinks": {
          "iOSLink": "paymentsBIT://www.bitpay.co.il/app/bitcom-info",
          "androidLink": "intent://www.bitpay.co.il/app/bitcom-info;scheme=bit;package=com.bnhp.payments.paymentsapp;end",
          "qrURL": "https://www.bitpay.co.il/app/bitcom-info"
        }
      },
      "SMS": "Sent",
      "paymentCommit": {
        "messsage": "Payment commit is enabled for this transaction",
        "isPaymentCommitted": false,
        "secondsToCommit": 60,
        "commitLink": "https://pay.sensepass-api.com/api/transactions/commitPayment/ec2dc489d161aa27a803f48bcf5ffcf"
      },
      "products": [
        {
          "name": "Coffee",
          "quantity": 2,
          "amount": 100,
          "discount": 0,
          "posIdentifier": "1234A"
        },
        {
          "name": "Beer",
          "quantity": 1,
          "amount": 600,
          "discount": 0,
          "posIdentifier": "1234B"
        }
      ],
      "productSumMismatch": true,
      "confirmations": [
        {
          "paymentType": "Regular",
          "confirmationNumber": "063-d9j09YsY1",
          "fullConfirmationCode": "063-d9j09YsY1",
          "dateApproval": "2019-12-19T09:47:59.105Z",
          "installments": 1,
          "paymentMethodName": "PayPal",
          "approvedBy": "PayPal",
          "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
          "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
          "authNumber": "123213dsf13111",
          "referenceNumber": "1778298289",
          "acquirer": "Visa",
          "voucher": "yyyAbnlmlfm1323",
          "lastFourDigits": "8858",
          "sensePassReferenceId": "34e209ea8b24cc831cf"
        }
      ],
      "confirmation": {
        "paymentType": "Regular",
        "confirmationNumber": "063-d9j09YsY1",
        "fullConfirmationCode": "063-d9j09YsY1",
        "dateApproval": "2019-12-19T09:47:59.105Z",
        "installments": 1,
        "paymentMethodName": "PayPal",
        "approvedBy": "PayPal",
        "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
        "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
        "authNumber": "123213dsf13111",
        "referenceNumber": "1778298289",
        "acquirer": "Visa",
        "voucher": "yyyAbnlmlfm1323",
        "lastFourDigits": "8858",
        "sensePassReferenceId": "34e209ea8b24cc831cf"
      },
      "transactionPage": {
        "iOSLink": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "androidLink": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "qrURL": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872"
      },
      "balance": 0
    }
    {
        // Response
    }
    {
        // Response
    }
    {
      "success": true,
      "message": null,
      "code": null,
      "error": null,
      "approvalID": null,
      "requestID": null,
      "transactionNumber": "cf04ea0faf73988c1f545add1ec2bd9fcd87c7a292566536e8395b1b",
      "transactionPaymentID": null,
      "transactionStatus": "TransactionApproved",
      "confirmation":
        {
          "paymentType": "Regular",
          "confirmationNumber": "063-d9j09YsY1",
          "fullConfirmationCode": "063-d9j09YsY1",
          "dateApproval": "2019-12-19T09:47:59.105Z",
          "installments": 1,
          "paymentMethodName": "Credit Card",
          "approvedBy": "Cardknox",
          "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
          "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
          "authNumber": "123213dsf13111",
          "referenceNumber": "1778298289",
          "acquirer": "Visa",
          "voucher": "yyyAbnlmlfm1323",
          "lastFourDigits": "8858",
          "cardExpiration": "0127",
          "sensePassReferenceId": "34e209ea8b24cc831cf"
        },
        "cardMask": "",
        "token": "060a4330-abd7-4845-b8e9-809f454a2d6c"
    }
    {
        // Response
    }
    {
        // Response
    }
    {
      "deviceId": "93sa20e3b9c05d0670f00924a5384185aa4e5fe913b71014",
      "amount": 500,
      "currency": "USD",
      "reason": "Invoice of December 2023",
      "creditCardDetails": {
        "cardNumber": "375510190366075",
        "cardExpiration": "12/34",
        "securityCode": "0123"
      }
    }
    {
      "success": true,
      "message": null,
      "code": null,
      "error": null,
      "approvalID": null,
      "requestID": null,
      "transactionNumber": "cf04ea0faf73988c1f545add1ec2bd9fcd87c7a292566536e8395b1b",
      "transactionPaymentID": null,
      "transactionStatus": "TransactionApproved",
      "confirmation": {
          "paymentType": "Regular",
          "confirmationNumber": "063-d9j09YsY1",
          "fullConfirmationCode": "063-d9j09YsY1",
          "dateApproval": "2019-12-19T09:47:59.105Z",
          "installments": 1,
          "paymentMethodName": "Credit Card",
          "approvedBy": "Cardknox",
          "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
          "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
          "authNumber": "123213dsf13111",
          "referenceNumber": "1778298289",
          "acquirer": "Visa",
          "voucher": "yyyAbnlmlfm1323",
          "lastFourDigits": "8858",
          "cardExpiration": "0127",
          "sensePassReferenceId": "34e209ea8b24cc831cf"
       },
       "cardMask": "",
       "token": "060a4330-abd7-4845-b8e9-809f454a2d6c"
    }
    {
      "timeOut": 600,
      "amount": 200,
      "isCent": true,
      "currency": "USD",
      "deviceId": "2ooeww5ufzg3nkuf8a10gu5n695yolixlbgb042o03to9bxfkr7t815i5epu8o58jv1rznif3o1tr6xsb1rm",
      "callbackURL": "https://google.com/callback/api/callback"
    }
    {
      "TransactionNumber": "14a4334a32c852aeb0cfae52cbff1314649da7f175a8e140b35c147c",
      "date": "2019-12-19T09:47:59.105Z",
      "amount": 1234.56,
      "currency": "ILS",
      "status": 0,
      "statusName": "Transaction Approved",
      "pos": "POS 3, Branch Tel Aviv",
      "posReceiptsEndpoint": "http://pay.sensepass-api.com/api/invoicesReceipts/receipt/save/hofai3478o8o78o4s849j3920ckj",
      "posData": {
        "foo": "bar",
        "hello": [
          "world"
        ]
      },
      "businessName": "Coffee Bar",
      "businessId": 144,
      "timeoutDate": "2019-12-19T09:47:59.105Z",
      "paymentMethodData": {
        "PaymentType": "Bit",
        "directAppLinks": {
          "iOSLink": "paymentsBIT://www.bitpay.co.il/app/bitcom-info",
          "androidLink": "intent://www.bitpay.co.il/app/bitcom-info;scheme=bit;package=com.bnhp.payments.paymentsapp;end",
          "qrURL": "https://www.bitpay.co.il/app/bitcom-info"
        }
      },
      "SMS": "Sent",
      "paymentCommit": {
        "messsage": "Payment commit is enabled for this transaction",
        "isPaymentCommitted": false,
        "secondsToCommit": 60,
        "commitLink": "https://pay.sensepass-api.com/api/transactions/commitPayment/ec2dc489d161aa27a803f48bcf5ffcf"
      },
      "products": [
        {
          "name": "Coffee",
          "quantity": 2,
          "amount": 100,
          "discount": 0,
          "posIdentifier": "1234A"
        },
        {
          "name": "Beer",
          "quantity": 1,
          "amount": 600,
          "discount": 0,
          "posIdentifier": "1234B"
        }
      ],
      "productSumMismatch": true,
      "confirmations": [
        {
          "paymentType": "Regular",
          "confirmationNumber": "063-d9j09YsY1",
          "fullConfirmationCode": "063-d9j09YsY1",
          "dateApproval": "2019-12-19T09:47:59.105Z",
          "installments": 1,
          "paymentMethodName": "PayPal",
          "approvedBy": "PayPal",
          "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
          "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
          "authNumber": "123213dsf13111",
          "referenceNumber": "1778298289",
          "acquirer": "Visa",
          "voucher": "yyyAbnlmlfm1323",
          "lastFourDigits": "8858",
          "sensePassReferenceId": "34e209ea8b24cc831cf"
        }
      ],
      "confirmation": {
        "paymentType": "Regular",
        "confirmationNumber": "063-d9j09YsY1",
        "fullConfirmationCode": "063-d9j09YsY1",
        "dateApproval": "2019-12-19T09:47:59.105Z",
        "installments": 1,
        "paymentMethodName": "PayPal",
        "approvedBy": "PayPal",
        "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
        "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
        "authNumber": "123213dsf13111",
        "referenceNumber": "1778298289",
        "acquirer": "Visa",
        "voucher": "yyyAbnlmlfm1323",
        "lastFourDigits": "8858",
        "sensePassReferenceId": "34e209ea8b24cc831cf"
      },
      "transactionPage": {
        "iOSLink": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "androidLink": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "qrURL": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872"
      },
      "balance": 0
    }
    {
        // Response
    }
    {
        // Response
    }
    {
      "timeOut": 600,
      "amount": 200,
      "isCent": true,
      "currency": "USD",
      "deviceId": "2ooeww5ufzg3nkuf8a10gu5n695yolixlbgb042o03to9bxfkr7t815i5epu8o58jv1rznif3o1tr6xsb1rm",
      "callbackURL": "https://google.com/callback/api/callback",
      "callbackMethod": "GET"
    }
    {
      "TransactionNumber": "14a4334a32c852aeb0cfae52cbff1314649da7f175a8e140b35c147c",
      "date": "2019-12-19T09:47:59.105Z",
      "amount": "1234.56",
      "currency": "USD",
      "status": 0,
      "statusName": "Transaction Approved",
      "pos": "POS 3, Branch Tel Aviv",
      "posReceiptsEndpoint": "http://pay.sensepass-api.com/api/invoicesReceipts/receipt/save/hofai3478o8o78o4s849j3920ckj",
      "posData": {
        "foo": "bar",
        "hello": [
          "world"
        ]
      },
      "businessName": "Coffee Bar",
      "businessId": 144,
      "timeoutDate": "2019-12-19T09:47:59.105Z",
      "paymentMethodData": {
        "PaymentType": "Bit",
        "directAppLinks": {
          "iOSLink": "paymentsBIT://www.bitpay.co.il/app/bitcom-info",
          "androidLink": "intent://www.bitpay.co.il/app/bitcom-info;scheme=bit;package=com.bnhp.payments.paymentsapp;end",
          "qrURL": "https://www.bitpay.co.il/app/bitcom-info"
        }
      },
      "SMS": "Sent",
      "paymentCommit": {
        "messsage": "Payment commit is enabled for this transaction",
        "isPaymentCommitted": false,
        "secondsToCommit": 60,
        "commitLink": "https://pay.sensepass-api.com/api/transactions/commitPayment/ec2dc489d161aa27a803f48bcf5ffcf"
      },
      "products": [
        {
          "name": "Coffee",
          "quantity": 2,
          "amount": 100,
          "discount": 0,
          "posIdentifier": "1234A"
        },
        {
          "name": "Beer",
          "quantity": 1,
          "amount": 600,
          "discount": 0,
          "posIdentifier": "1234B"
        }
      ],
      "productSumMismatch": true,
      "confirmations": [
        {
          "paymentType": "Regular",
          "confirmationNumber": "063-d9j09YsY1",
          "fullConfirmationCode": "063-d9j09YsY1",
          "dateApproval": "2019-12-19T09:47:59.105Z",
          "installments": 1,
          "paymentMethodName": "PayPal",
          "approvedBy": "PayPal",
          "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
          "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
          "authNumber": "123213dsf13111",
          "referenceNumber": "1778298289",
          "acquirer": "Visa",
          "voucher": "yyyAbnlmlfm1323",
          "lastFourDigits": "8858",
          "sensePassReferenceId": "34e209ea8b24cc831cf"
        }
      ],
      "confirmation": {
        "paymentType": "Regular",
        "confirmationNumber": "063-d9j09YsY1",
        "fullConfirmationCode": "063-d9j09YsY1",
        "dateApproval": "2019-12-19T09:47:59.105Z",
        "installments": 1,
        "paymentMethodName": "PayPal",
        "approvedBy": "PayPal",
        "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
        "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
        "authNumber": "123213dsf13111",
        "referenceNumber": "1778298289",
        "acquirer": "Visa",
        "voucher": "yyyAbnlmlfm1323",
        "lastFourDigits": "8858",
        "sensePassReferenceId": "34e209ea8b24cc831cf"
      },
      "transactionPage": {
        "iOSLink": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "androidLink": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "qrURL": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872"
      },
      "balance": 0
    }
    {
        // Response
    }
    {
        // Response
    }
    {
      "timeOut": 600,
      "amount": 200,
      "isCent": true,
      "currency": "USD",
      "deviceId": "2ooeww5ufzg3nkuf8a10gu5n695yolixlbgb042o03to9bxfkr7t815i5epu8o58jv1rznif3o1tr6xsb1rm",
      "products": [
        {
          "name": "Shirt",
          "quantity": 1,
          "amount": 190,
          "discount": 0,
          "vat": 0
        },
        {
          "name": "Service Fee",
          "quantity": 1,
          "amount": 10,
          "discount": 0,
          "vat": 0
        }
      ]
    }
    {
      "TransactionNumber": "14a4334a32c852aeb0cfae52cbff1314649da7f175a8e140b35c147c",
      "date": "2019-12-19T09:47:59.105Z",
      "amount": "1234.56",
      "currency": "USD",
      "status": 0,
      "statusName": "Transaction Approved",
      "pos": "POS 3, Branch Tel Aviv",
      "posReceiptsEndpoint": "http://pay.sensepass-api.com/api/invoicesReceipts/receipt/save/hofai3478o8o78o4s849j3920ckj",
      "posData": {
        "foo": "bar",
        "hello": [
          "world"
        ]
      },
      "businessName": "Coffee Bar",
      "businessId": 144,
      "timeoutDate": "2019-12-19T09:47:59.105Z",
      "paymentMethodData": {
        "PaymentType": "Bit",
        "directAppLinks": {
          "iOSLink": "paymentsBIT://www.bitpay.co.il/app/bitcom-info",
          "androidLink": "intent://www.bitpay.co.il/app/bitcom-info;scheme=bit;package=com.bnhp.payments.paymentsapp;end",
          "qrURL": "https://www.bitpay.co.il/app/bitcom-info"
        }
      },
      "SMS": "Sent",
      "paymentCommit": {
        "messsage": "Payment commit is enabled for this transaction",
        "isPaymentCommitted": false,
        "secondsToCommit": 60,
        "commitLink": "https://pay.sensepass-api.com/api/transactions/commitPayment/ec2dc489d161aa27a803f48bcf5ffcf"
      },
      "products": [
        {
          "name": "Coffee",
          "quantity": 2,
          "amount": 100,
          "discount": 0,
          "posIdentifier": "1234A"
        },
        {
          "name": "Beer",
          "quantity": 1,
          "amount": 600,
          "discount": 0,
          "posIdentifier": "1234B"
        }
      ],
      "productSumMismatch": true,
      "confirmations": [
        {
          "paymentType": "Regular",
          "confirmationNumber": "063-d9j09YsY1",
          "fullConfirmationCode": "063-d9j09YsY1",
          "dateApproval": "2019-12-19T09:47:59.105Z",
          "installments": 1,
          "paymentMethodName": "PayPal",
          "approvedBy": "PayPal",
          "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
          "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
          "authNumber": "123213dsf13111",
          "referenceNumber": "1778298289",
          "acquirer": "Visa",
          "voucher": "yyyAbnlmlfm1323",
          "lastFourDigits": "8858",
          "sensePassReferenceId": "34e209ea8b24cc831cf"
        }
      ],
      "confirmation": {
        "paymentType": "Regular",
        "confirmationNumber": "063-d9j09YsY1",
        "fullConfirmationCode": "063-d9j09YsY1",
        "dateApproval": "2019-12-19T09:47:59.105Z",
        "installments": 1,
        "paymentMethodName": "PayPal",
        "approvedBy": "PayPal",
        "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
        "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
        "authNumber": "123213dsf13111",
        "referenceNumber": "1778298289",
        "acquirer": "Visa",
        "voucher": "yyyAbnlmlfm1323",
        "lastFourDigits": "8858",
        "sensePassReferenceId": "34e209ea8b24cc831cf"
      },
      "transactionPage": {
        "iOSLink": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "androidLink": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "qrURL": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872"
      },
      "balance": 0
    }
    {
        // Response
    }
    {
        // Response
    }
    {
      "timeOut": 600,
      "amount": 200,
      "isCent": true,
      "currency": "USD",
      "deviceId": "2ooeww5ufzg3nkuf8a10gu5n695yolixlbgb042o03to9bxfkr7t815i5epu8o58jv1rznif3o1tr6xsb1rm",
      "clientEmail": "[email protected]",
      "emailConfig": {
        "paymentRequest": {
            "language": "en"
        }
    }
    {
      "TransactionNumber": "14a4334a32c852aeb0cfae52cbff1314649da7f175a8e140b35c147c",
      "date": "2019-12-19T09:47:59.105Z",
      "amount": "1234.56",
      "currency": "USD",
      "status": 0,
      "statusName": "Transaction Approved",
      "pos": "POS 3, Branch Tel Aviv",
      "posReceiptsEndpoint": "http://pay.sensepass-api.com/api/invoicesReceipts/receipt/save/hofai3478o8o78o4s849j3920ckj",
      "posData": {
        "foo": "bar",
        "hello": [
          "world"
        ]
      },
      "businessName": "Coffee Bar",
      "businessId": 144,
      "timeoutDate": "2019-12-19T09:47:59.105Z",
      "paymentMethodData": {
        "PaymentType": "Bit",
        "directAppLinks": {
          "iOSLink": "paymentsBIT://www.bitpay.co.il/app/bitcom-info",
          "androidLink": "intent://www.bitpay.co.il/app/bitcom-info;scheme=bit;package=com.bnhp.payments.paymentsapp;end",
          "qrURL": "https://www.bitpay.co.il/app/bitcom-info"
        }
      },
      "SMS": "Sent",
      "paymentCommit": {
        "messsage": "Payment commit is enabled for this transaction",
        "isPaymentCommitted": false,
        "secondsToCommit": 60,
        "commitLink": "https://pay.sensepass-api.com/api/transactions/commitPayment/ec2dc489d161aa27a803f48bcf5ffcf"
      },
      "products": [
        {
          "name": "Coffee",
          "quantity": 2,
          "amount": 100,
          "discount": 0,
          "posIdentifier": "1234A"
        },
        {
          "name": "Beer",
          "quantity": 1,
          "amount": 600,
          "discount": 0,
          "posIdentifier": "1234B"
        }
      ],
      "productSumMismatch": true,
      "confirmations": [
        {
          "paymentType": "Regular",
          "confirmationNumber": "063-d9j09YsY1",
          "fullConfirmationCode": "063-d9j09YsY1",
          "dateApproval": "2019-12-19T09:47:59.105Z",
          "installments": 1,
          "paymentMethodName": "PayPal",
          "approvedBy": "PayPal",
          "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
          "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
          "authNumber": "123213dsf13111",
          "referenceNumber": "1778298289",
          "acquirer": "Visa",
          "voucher": "yyyAbnlmlfm1323",
          "lastFourDigits": "8858",
          "sensePassReferenceId": "34e209ea8b24cc831cf"
        }
      ],
      "confirmation": {
        "paymentType": "Regular",
        "confirmationNumber": "063-d9j09YsY1",
        "fullConfirmationCode": "063-d9j09YsY1",
        "dateApproval": "2019-12-19T09:47:59.105Z",
        "installments": 1,
        "paymentMethodName": "PayPal",
        "approvedBy": "PayPal",
        "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
        "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
        "authNumber": "123213dsf13111",
        "referenceNumber": "1778298289",
        "acquirer": "Visa",
        "voucher": "yyyAbnlmlfm1323",
        "lastFourDigits": "8858",
        "sensePassReferenceId": "34e209ea8b24cc831cf"
      },
      "transactionPage": {
        "iOSLink": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "androidLink": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "qrURL": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872"
      },
      "balance": 0
    }
    {
        // Response
    }
    {
        // Response
    }
    {
      "timeOut": 600,
      "amount": 200,
      "isCent": true,
      "currency": "USD",
      "apiKey": "2ooeww5ufzg3nkuf8a10gu5n695yolixlbgb042o038o58jv1rznif3o1tr6xsb1rm",
      "returnURL": "https://merchantDomain.com/thankYouPage",
      "cancelURL": "https://merchantDomain.com/cart",
      "callbackURL": "https://merchantDomain.com/sensepass/callbackEndPoint",
      "clientEmail": "[email protected]",
      "emailConfig": {
        "paymentRequest": {
            "language": "en"
        }
    }
    {
      "TransactionNumber": "14a4334a32c852aeb0cfae52cbff1314649da7f175a8e140b35c147c",
      "date": "2019-12-19T09:47:59.105Z",
      "amount": "1234.56",
      "currency": "USD",
      "status": 0,
      "statusName": "Transaction Approved",
      "pos": "POS 3, Branch Tel Aviv",
      "posReceiptsEndpoint": "http://pay.sensepass-api.com/api/invoicesReceipts/receipt/save/hofai3478o8o78o4s849j3920ckj",
      "posData": {
        "foo": "bar",
        "hello": [
          "world"
        ]
      },
      "businessName": "Coffee Bar",
      "businessId": 144,
      "timeoutDate": "2019-12-19T09:47:59.105Z",
      "paymentMethodData": {
        "PaymentType": "Bit",
        "directAppLinks": {
          "iOSLink": "paymentsBIT://www.bitpay.co.il/app/bitcom-info",
          "androidLink": "intent://www.bitpay.co.il/app/bitcom-info;scheme=bit;package=com.bnhp.payments.paymentsapp;end",
          "qrURL": "https://www.bitpay.co.il/app/bitcom-info"
        }
      },
      "SMS": "Sent",
      "paymentCommit": {
        "messsage": "Payment commit is enabled for this transaction",
        "isPaymentCommitted": false,
        "secondsToCommit": 60,
        "commitLink": "https://pay.sensepass-api.com/api/transactions/commitPayment/ec2dc489d161aa27a803f48bcf5ffcf"
      },
      "products": [
        {
          "name": "Coffee",
          "quantity": 2,
          "amount": 100,
          "discount": 0,
          "posIdentifier": "1234A"
        },
        {
          "name": "Beer",
          "quantity": 1,
          "amount": 600,
          "discount": 0,
          "posIdentifier": "1234B"
        }
      ],
      "productSumMismatch": true,
      "confirmations": [
        {
          "paymentType": "Regular",
          "confirmationNumber": "063-d9j09YsY1",
          "fullConfirmationCode": "063-d9j09YsY1",
          "dateApproval": "2019-12-19T09:47:59.105Z",
          "installments": 1,
          "paymentMethodName": "PayPal",
          "approvedBy": "PayPal",
          "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
          "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
          "authNumber": "123213dsf13111",
          "referenceNumber": "1778298289",
          "acquirer": "Visa",
          "voucher": "yyyAbnlmlfm1323",
          "lastFourDigits": "8858",
          "sensePassReferenceId": "34e209ea8b24cc831cf"
        }
      ],
      "confirmation": {
        "paymentType": "Regular",
        "confirmationNumber": "063-d9j09YsY1",
        "fullConfirmationCode": "063-d9j09YsY1",
        "dateApproval": "2019-12-19T09:47:59.105Z",
        "installments": 1,
        "paymentMethodName": "PayPal",
        "approvedBy": "PayPal",
        "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
        "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
        "authNumber": "123213dsf13111",
        "referenceNumber": "1778298289",
        "acquirer": "Visa",
        "voucher": "yyyAbnlmlfm1323",
        "lastFourDigits": "8858",
        "sensePassReferenceId": "34e209ea8b24cc831cf"
      },
      "transactionPage": {
        "iOSLink": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "androidLink": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "qrURL": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872"
      },
      "balance": 0
    }
    {
        // Response
    }
    {
        // Response
    }
    {
      "timeOut": 600,
      "amount": 200,
      "isCent": true,
      "currency": "USD",
      "apiKey": "2ooeww5ufzg3nkuf8a10gu5n695yolixlbgb042o038o58jv1rznif3o1tr6xsb1rm",
      "returnURL": "https://merchantDomain.com/thankYouPage",
      "cancelURL": "https://merchantDomain.com/cart",
      "callbackURL": "https://merchantDomain.com/sensepass/callbackEndPoint"
    }
    {
      "TransactionNumber": "14a4334a32c852aeb0cfae52cbff1314649da7f175a8e140b35c147c",
      "date": "2019-12-19T09:47:59.105Z",
      "amount": "1234.56",
      "currency": "USD",
      "status": 0,
      "statusName": "Transaction Approved",
      "pos": "POS 3, Branch Tel Aviv",
      "posReceiptsEndpoint": "http://pay.sensepass-api.com/api/invoicesReceipts/receipt/save/hofai3478o8o78o4s849j3920ckj",
      "posData": {
        "foo": "bar",
        "hello": [
          "world"
        ]
      },
      "businessName": "Coffee Bar",
      "businessId": 144,
      "timeoutDate": "2019-12-19T09:47:59.105Z",
      "paymentMethodData": {
        "PaymentType": "Bit",
        "directAppLinks": {
          "iOSLink": "paymentsBIT://www.bitpay.co.il/app/bitcom-info",
          "androidLink": "intent://www.bitpay.co.il/app/bitcom-info;scheme=bit;package=com.bnhp.payments.paymentsapp;end",
          "qrURL": "https://www.bitpay.co.il/app/bitcom-info"
        }
      },
      "SMS": "Sent",
      "paymentCommit": {
        "messsage": "Payment commit is enabled for this transaction",
        "isPaymentCommitted": false,
        "secondsToCommit": 60,
        "commitLink": "https://pay.sensepass-api.com/api/transactions/commitPayment/ec2dc489d161aa27a803f48bcf5ffcf"
      },
      "products": [
        {
          "name": "Coffee",
          "quantity": 2,
          "amount": 100,
          "discount": 0,
          "posIdentifier": "1234A"
        },
        {
          "name": "Beer",
          "quantity": 1,
          "amount": 600,
          "discount": 0,
          "posIdentifier": "1234B"
        }
      ],
      "productSumMismatch": true,
      "confirmations": [
        {
          "paymentType": "Regular",
          "confirmationNumber": "063-d9j09YsY1",
          "fullConfirmationCode": "063-d9j09YsY1",
          "dateApproval": "2019-12-19T09:47:59.105Z",
          "installments": 1,
          "paymentMethodName": "PayPal",
          "approvedBy": "PayPal",
          "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
          "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
          "authNumber": "123213dsf13111",
          "referenceNumber": "1778298289",
          "acquirer": "Visa",
          "voucher": "yyyAbnlmlfm1323",
          "lastFourDigits": "8858",
          "sensePassReferenceId": "34e209ea8b24cc831cf"
        }
      ],
      "confirmation": {
        "paymentType": "Regular",
        "confirmationNumber": "063-d9j09YsY1",
        "fullConfirmationCode": "063-d9j09YsY1",
        "dateApproval": "2019-12-19T09:47:59.105Z",
        "installments": 1,
        "paymentMethodName": "PayPal",
        "approvedBy": "PayPal",
        "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
        "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
        "authNumber": "123213dsf13111",
        "referenceNumber": "1778298289",
        "acquirer": "Visa",
        "voucher": "yyyAbnlmlfm1323",
        "lastFourDigits": "8858",
        "sensePassReferenceId": "34e209ea8b24cc831cf"
      },
      "transactionPage": {
        "iOSLink": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "androidLink": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "qrURL": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872"
      },
      "balance": 0
    }
    {
        // Response
    }
    {
        // Response
    }
    {
      "timeOut": 600,
      "amount": 200,
      "isCent": true,
      "currency": "USD",
      "apiKey": "2ooeww5ufzg3nkuf8a10gu5n695yolixlbgb042o038o58jv1rznif3o1tr6xsb1rm",
      "returnURL": "https://merchantDomain.com/thankYouPage",
      "cancelURL": "https://merchantDomain.com/cart",
      "callbackURL": "https://merchantDomain.com/sensepass/callbackEndPoint",
      "invoice": {
          "type": "pdf",
          "url": "http://someDomain.com/invoice1.pdf"
      }
    }
    {
      "TransactionNumber": "14a4334a32c852aeb0cfae52cbff1314649da7f175a8e140b35c147c",
      "date": "2019-12-19T09:47:59.105Z",
      "amount": "1234.56",
      "currency": "USD",
      "status": 0,
      "statusName": "Transaction Approved",
      "pos": "POS 3, Branch Tel Aviv",
      "posReceiptsEndpoint": "http://pay.sensepass-api.com/api/invoicesReceipts/receipt/save/hofai3478o8o78o4s849j3920ckj",
      "posData": {
        "foo": "bar",
        "hello": [
          "world"
        ]
      },
      "businessName": "Coffee Bar",
      "businessId": 144,
      "timeoutDate": "2019-12-19T09:47:59.105Z",
      "paymentMethodData": {
        "PaymentType": "Bit",
        "directAppLinks": {
          "iOSLink": "paymentsBIT://www.bitpay.co.il/app/bitcom-info",
          "androidLink": "intent://www.bitpay.co.il/app/bitcom-info;scheme=bit;package=com.bnhp.payments.paymentsapp;end",
          "qrURL": "https://www.bitpay.co.il/app/bitcom-info"
        }
      },
      "SMS": "Sent",
      "paymentCommit": {
        "messsage": "Payment commit is enabled for this transaction",
        "isPaymentCommitted": false,
        "secondsToCommit": 60,
        "commitLink": "https://pay.sensepass-api.com/api/transactions/commitPayment/ec2dc489d161aa27a803f48bcf5ffcf"
      },
      "products": [
        {
          "name": "Coffee",
          "quantity": 2,
          "amount": 100,
          "discount": 0,
          "posIdentifier": "1234A"
        },
        {
          "name": "Beer",
          "quantity": 1,
          "amount": 600,
          "discount": 0,
          "posIdentifier": "1234B"
        }
      ],
      "productSumMismatch": true,
      "confirmations": [
        {
          "paymentType": "Regular",
          "confirmationNumber": "063-d9j09YsY1",
          "fullConfirmationCode": "063-d9j09YsY1",
          "dateApproval": "2019-12-19T09:47:59.105Z",
          "installments": 1,
          "paymentMethodName": "PayPal",
          "approvedBy": "PayPal",
          "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
          "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
          "authNumber": "123213dsf13111",
          "referenceNumber": "1778298289",
          "acquirer": "Visa",
          "voucher": "yyyAbnlmlfm1323",
          "lastFourDigits": "8858",
          "sensePassReferenceId": "34e209ea8b24cc831cf"
        }
      ],
      "confirmation": {
        "paymentType": "Regular",
        "confirmationNumber": "063-d9j09YsY1",
        "fullConfirmationCode": "063-d9j09YsY1",
        "dateApproval": "2019-12-19T09:47:59.105Z",
        "installments": 1,
        "paymentMethodName": "PayPal",
        "approvedBy": "PayPal",
        "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
        "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
        "authNumber": "123213dsf13111",
        "referenceNumber": "1778298289",
        "acquirer": "Visa",
        "voucher": "yyyAbnlmlfm1323",
        "lastFourDigits": "8858",
        "sensePassReferenceId": "34e209ea8b24cc831cf"
      },
      "transactionPage": {
        "iOSLink": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "androidLink": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "qrURL": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872"
      },
      "balance": 0
    }
    {
        // Response
    }
    {
        // Response
    }
    {
      "timeOut": 600,
      "amount": 200,
      "isCent": true,
      "currency": "USD",
      "apiKey": "2ooeww5ufzg3nkuf8a10gu5n695yolixlbgb042o038o58jv1rznif3o1tr6xsb1rm",
      "returnURL": "https://merchantDomain.com/thankYouPage",
      "cancelURL": "https://merchantDomain.com/cart",
      "callbackURL": "https://merchantDomain.com/sensepass/callbackEndPoint",
      "posData": {
        "customerName": "John",
        "hello": [
          "world"
        ]
      },
    }
    // metadata must be an array of objects with key-value pairs
    "metadata": [
        {
            // mandatory static key-value - do not change this
            "key": "genericDisplay",
            // array of your sections
            "value": [
                {
                    // your title for the section
                    "sectionLabel": "Hello world",
                    "values": [
                        {
                            "label": "Foo",
                            "value": "Bar"
                        },
                        ...// the rest of the label-value object pairs
                    ]
                },
                ...// the rest of the sectionLabel-values object pairs
            ]
        }
    ]
    {
      "timeOut": 600,
      "amount": 5500,
      "isCent": true,
      "currency": "USD",
      "deviceId": "2ooeww5ufzg3nkuf8a10gu5n695yolixlbgb042o03to9bxfkr7t815i5epu8o58jv1rznif3o1tr6xsb1rm",
      "clientPhoneNumber": "+155555551234"
    }
    {
      "timeOut": 600,
      "amount": 200,
      "isCent": true,
      "currency": "USD",
      "deviceId": "2ooeww5ufzg3nkuf8a10gu5n695yolixlbgb042o03to9bxfkr7t815i5epu8o58jv1rznif3o1tr6xsb1rm",
      "posData": {
        "customerName": "John",
        "hello": [
          "world"
        ]
      },
    }
    Create a transaction
    Listen to transaction status events
    {
        "TransactionNumber": "5a961cebd09a1c07c76e36d810c4049878de6b7134fcd7e00fa2ed5a",
        "date": "2023-01-15T15:54:10.736Z",
        "amount": "12",
        "baseAmount": "12",
        "currency": "ILS",
        "status": 0,
        "statusName": "Initialize",
        "timeoutDate": "2023-01-15T16:04:11.141Z",
        "methodType": 0,
        "businessId": "1",
        "businessName": "SensePass IL",
        "pos": "SensePass IL",
        "businessOwnerPhone": "0505555555",
        "businessCountry": "Israel",
        "businessCity": "Tel Aviv",
        "businessState": "misisipi",
        "businessStreet": "Menachem Begin",
        "businessAddress": "Tel Aviv, Menachem Begin 0",
        "branchNumber": "144",
        "branchId": "144",
        "branch": {
            "number": "144"
        },
        "receiptPending": true,
        "productSumMismatch": true,
        "paymentMethodData": {
            "PaymentType": "Bit",
            "directAppLinks": {
                "iOSLink": "https://pay.sandbox.sensepass.com/orderSummary/5a961cebd09a1c07c76e36d810c4049878de6b7134fcd7e00fa2ed5a",
                "androidLink": "https://pay.sandbox.sensepass.com/orderSummary/5a961cebd09a1c07c76e36d810c4049878de6b7134fcd7e00fa2ed5a",
                "qrURL": "https://pay.sandbox.sensepass.com/orderSummary/5a961cebd09a1c07c76e36d810c4049878de6b7134fcd7e00fa2ed5a"
            }
        },
        "transactionPage": {
            "consumerPage": {
                "regular": "https://pay.sandbox.sensepass.com/orderSummary/5a961cebd09a1c07c76e36d810c4049878de6b7134fcd7e00fa2ed5a",
                "medium": "https://pay.sandbox.sensepass.com/orderSummary/5a961cebd09a1c07c76e36d810c4049878de6b7134fcd7e00fa2ed5a?viewMode=medium",
                "small": "https://pay.sandbox.sensepass.com/orderSummary/5a961cebd09a1c07c76e36d810c4049878de6b7134fcd7e00fa2ed5a?viewMode=small"
            },
            "merchantPage": {
                "creditCard": {
                    "small": "https://api.sandbox.sensepass.com/api/transactions/sensepass-pci/credit-card/5a961cebd09a1c07c76e36d810c4049878de6b7134fcd7e00fa2ed5a?viewMode=small",
                    "regular": "https://api.sandbox.sensepass.com/api/transactions/sensepass-pci/credit-card/5a961cebd09a1c07c76e36d810c4049878de6b7134fcd7e00fa2ed5a"
                },
                "POS": {
                    "regular": "https://pos.sandbox.sensepass.com?mode=transaction&transactionEventId=961ddd23-8c30-4f01-850c-dc19348a48ff-7d792564-ec08-4ae0-83b0-86d4841be055"
                }
            }
        }
    }
  • reason: Reason field of the transaction

  • expiration: Transaction expiration date formatted

  • 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

    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 ]

    .payment-btn: The main button element.
  • .payment-logo: The tag for the payment method logo.

  • .payment-label: The tag for the payment method text label.

  • You can also target specific payment methods using the part attribute:

    • [part="paypal"]

    • [part="applepay"]

    • [part="googlepay"]

    Make sure the URL provided in "callbackURL" is fully accessible from the internet and does not contain local IP or private DNS.

    circle-info

    SensePass IP's are dynamic - Limiting your endpoint to specific IP address is not possible.

    URL: /transactions/init

    Request Body:

    hashtag
    Creating a new transaction object (Payment Request)

    POST /transactions/init

    This API creates new payment request based on the fields below.

    hashtag
    Request Body

    Name
    Type
    Description

    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 ]

    See Transactions entity schema:

    hashtag
    Security - HMAC Signature

    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:

    1. Extract "HMAC-Random-Key" header from the callback API request

    2. Concat the header from #1 to the request body

    3. Perform HMAC 256 calculation with the concatenated string and using your secret HMAC key

    4. Compare the result from #3 against the value of the request header "HMAC-Authorization"

    hashtag
    Callbacks with GET method

    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

    Make sure the URL provided in "callbackURL" is fully accessible from the internet and does not contain local IP or private DNS.

    circle-info

    SensePass IP's are dynamic - Limiting your endpoint to specific IP address is not possible.

    Request Body:

    hashtag
    Creating a new transaction object (Payment Request)

    POST /transactions/init

    This API creates new payment request based on the fields below.

    hashtag
    Request Body

    Name
    Type
    Description

    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 ]

    See Transactions entity schema:

    hashtag
    Security - HMAC Signature

    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:

    1. Extract "HMAC-Random-Key" header from the callback API request

    2. Concat the header from #1 to the request body

    3. Perform HMAC 256 calculation with the concatenated string and using your secret HMAC key

    4. Compare the result from #3 against the value of the request header "HMAC-Authorization"

    hashtag
    Callbacks with GET method

    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

    hashtag
    Creating a new transaction object (Payment Request)

    POST /transactions/init

    This API creates new payment request based on the fields below.

    hashtag
    Request Body

    Name
    Type
    Description

    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 ]

    See Transactions entity schema:

    merchant back officearrow-up-right
    Consumer page
    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.

    hashtag
    Transaction 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.

    circle-info

    More than one "confirmations" object can be available in cases of split payment, refund and partial refund

    hashtag
    Sending the receipt from the POS to SensePass

    Once the receipt is ready in your POS, invoke API request to the endpoint from "posReceiptsEndpoint" (see the previous section).

    hashtag
    Option 1 - Send Receipt file

    Example URL (based on "posReceiptsEndpoint"): https://api.sandbox.sensepass.com/api/invoicesReceipts/receipt/save/0128c664-1a2a-422c-91d0-85a8af229ed4

    Request Body as form-data:

    Field
    Value

    receipt-file

    Your File Here - PDF or Image

    jsonStr

    "associateToConfirmationNumbers" is an array of "confirmationNumber" for the previous sections, this is the relation between the receipt to the payments of the consumer.

    Response body:

    hashtag
    Option 2 - Send Receipt URL

    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:

    hashtag
    Option 3 - Send Receipt as HTML

    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:

    Receipts Model
    hashtag
    Sample App

    You can play around with the SDK in SensePass's Front-end Playground websitearrow-up-right

    The SDK exposes a few methods to let you operate the iFrame in various ways.

    hashtag
    Script

    hashtag
    SensePass Elements

    Latest industry standard of web-componentsarrow-up-right, making our widget native to your web-page. No unnecessary pop-ups, easy-to-handle UI (CSS) & faster load-times thanks to native script caching.


    Add the following SDK and add it to your front-end website's scripts: https://js.sensepass.com/scripts/[email protected]

    <html>
    <head>
        <script 
    

    hashtag
    iFrame SDK (Deprecated)

    Legacy industry standard, using an iframe embedded widget to handle payments SDK.


    Add the following SDK and add it to your front-end website's scripts: https://js.sensepass.com/scripts/[email protected]

    hashtag
    SensePass Express

    circle-check

    Speed up the checkout process with the user's shipping & billing information available after they complete the payment process.

    Latest industry standard of , making our widget native to your web-page. No unnecessary pop-ups, easy-to-handle UI (CSS) & faster load-times thanks to native script caching.

    hashtag
    Security

    1. The frontend uses client ID that does not have permissions to payment except for initalizing the SDK

    2. The backend uses device ID / Merchant API Key / Branch API key for calling the commit API

    hashtag
    Using the JS API

    hashtag
    Step 1 - Configuration

    Create a global variable in your front-end website called SensePassFrontEndSDK.

    Set the following configuration for the sandbox or production environment:

    Payment Response:

    Create an HTML element with the id sensepass-front-end.

    hashtag
    Step 2 - Initiate the iFrame element

    Initiate the iframe with the init method:

    circle-info

    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.

    hashtag
    Step 3 - Style the frame dimensions (optional)

    circle-info

    You can skip this implementation when using version 1.1.0 (beta)

    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:

    hashtag
    Step 4 - Listen to callback events

    Using the above example, you may hook on to the following callbacks aswell:

    hashtag
    Step 5 - Pay button event

    Use the pay method to let the payment method trigger its payment request:

    hashtag
    Pay button event - For manual capture transaction type - see our docs here

    circle-info

    billingAddress object is optional

    hashtag
    Step 6 - Commit payment from your backend (Backend verification)

    See full details here

    Elements SDKchevron-right
    Express SDKchevron-right
    Field
    Type
    Level
    Constraint

    value

    enum

    2 | 3

    value 2 or 3

    transactionId

    string

    2 | 3

    invoiceCode

    string

    3

    productsCode

    string

    3

    shipping


    hashtag
    Payment method constraints

    hashtag
    Coastal Pay

    Field
    Type
    Level
    Constraint

    tax.details[n].category

    enum

    3

    values:

    tax.details[n].rate

    range

    3

    min: "0", max: "100"

    Required Product Model with the (minimum) following keys for Level 3: "posIdentifier", "name", "measurementUnit", "quantity", "amount", "itemNumber".

  • No receipt handling is required

  • Multiple options can be selected in the same location and merchant, these options are in the transaction level.

    hashtag
    Receipt Model

    This model is referenced in "receipt" field of request body

    field
    type
    description

    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:

    hashtag
    Receipt Info Model

    Receipt info model is referenced in "receiptInfo" field of Receipts Model

    field
    type
    description

    customerId

    string

    example: 123456789

    firstName

    string

    example: John

    lastName

    string

    example: Doe

    hashtag
    Receipt Notifications Model

    This model represents the recipients that will receive receipt by email and SMS.

    Receipt notifications model is referenced in "receiptNotifications" field of request body

    field
    type
    description

    email

    array

    example:

    sms

    array

    example:

    Receipts Model

    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

    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 ]

    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

    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

    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 Model

    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

    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

    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: Product Model

    measurementUnit

    string

    example: oz

    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

    Settlement Model

    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"}

    Metadata Model
    Invoice Model

    Tokenization

    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.

    hashtag
    Create a Tokenization request

    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.

    hashtag
    Create a Capture request with Tokenization

    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.

    hashtag
    Convert credit cards details to Tokens

    URL: /transactions/tokenize

    Request Body:

    Response body:

    hashtag
    Payment Token Callback

    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.

    hashtag
    Pay with Token

    URL: /transactions/pay

    circle-info

    Amount field only supports cents. This API does not support sending isCent=false

    Request Body:

    Request Body for Authroize.net token:

    Response body:

    hashtag
    Token Validation

    URL: /transactions/token-validation

    This API checks wheter the payment method associated with this token is currently valid using the payment provider - It will fail for example after the card blocked or expired.

    Request Body:

    hashtag
    Response:

    iFrame Example

    Basic request example to create a new transaction and present it on iFrame.

    Response body:

    hashtag
    Displaying the iFrame to the consumer - Multiple Sizes

    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:

    hashtag
    Notifications about transaction changes

    There are multiple options to get notifications about the transaction status changes:

    1. Callback

    2. Web sockets (Socket.IO)

    3. Post message event on the client side

    hashtag
    Callback

    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:

    hashtag
    WebSockets

    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.

    hashtag
    Post Message

    Post messsge events are sent to client side using the browser API.

    Code example:

    hashtag
    Transaction Events Interface

    All of the notifications are conforms to Transaction Entity interface.

    See the full interface model here:

    Notification Example:

    SMS Payment Request

    SMS Message example

    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:

    hashtag
    Customizing message format

    Full customization of the SMS message including variables can be done using "customSmsText" field in the "/transactions/init" API.

    Request Body:

    hashtag
    Available variables:

    1. businessName: Merchant name

    2. locationName: Location name

    3. amount: Transaction amount including currency

    4. link: Full URL to payment request page

    hashtag
    Using variables:

    Add %% before and after the name of the variable.

    Examples:

    1. %%businessName%% asks you to pay

    2. Hi, you got payment request from %%businessName%%, %%locationName%% of %%amount%% - %%reason%%. Please click here to pay: %%link%%

    hashtag
    Creating a new transaction object (Payment Request)

    POST /transactions/init

    This API creates new payment request based on the fields below.

    hashtag
    Request Body

    Name
    Type
    Description

    See Transactions entity schema:

    SDK Theme Config Model

    customize payment method's texts and other UI parameters

    This model represents all the required data for displaying data on the SensePass Dashboard backoffice.

    circle-info

    You must use this structure:

    Description of the parameters required for various payment options configurations.

    field
    type
    description

    API | SensePassdocs.sensepass.comchevron-right
    {
      "timeOut": 600,
      "amount": 5500,
      "isCent": true,
      "currency": "USD",
      "deviceId": "2ooeww5ufzg3nkuf8a10gu5n695yolixlbgb042o03to9bxfkr7t815i5epu8o58jv1rznif3o1tr6xsb1rm",
      "clientPhoneNumber": "+155555551234",
      "customSmsText": "%%businessName%% asks you for %%amount%%"
    }
    {
      "TransactionNumber": "14a4334a32c852aeb0cfae52cbff1314649da7f175a8e140b35c147c",
      "date": "2019-12-19T09:47:59.105Z",
      "amount": "1234.56",
      "currency": "USD",
      "status": 0,
      "statusName": "Transaction Approved",
      "pos": "POS 3, Branch Tel Aviv",
      "posReceiptsEndpoint": "http://pay.sensepass-api.com/api/invoicesReceipts/receipt/save/hofai3478o8o78o4s849j3920ckj",
      "posData": {
        "foo": "bar",
        "hello": [
          "world"
        ]
      },
      "businessName": "Coffee Bar",
      "businessId": 144,
      "timeoutDate": "2019-12-19T09:47:59.105Z",
      "paymentMethodData": {
        "PaymentType": "Bit",
        "directAppLinks": {
          "iOSLink": "paymentsBIT://www.bitpay.co.il/app/bitcom-info",
          "androidLink": "intent://www.bitpay.co.il/app/bitcom-info;scheme=bit;package=com.bnhp.payments.paymentsapp;end",
          "qrURL": "https://www.bitpay.co.il/app/bitcom-info"
        }
      },
      "SMS": "Sent",
      "paymentCommit": {
        "messsage": "Payment commit is enabled for this transaction",
        "isPaymentCommitted": false,
        "secondsToCommit": 60,
        "commitLink": "https://pay.sensepass-api.com/api/transactions/commitPayment/ec2dc489d161aa27a803f48bcf5ffcf"
      },
      "products": [
        {
          "name": "Coffee",
          "quantity": 2,
          "amount": 100,
          "discount": 0,
          "posIdentifier": "1234A"
        },
        {
          "name": "Beer",
          "quantity": 1,
          "amount": 600,
          "discount": 0,
          "posIdentifier": "1234B"
        }
      ],
      "productSumMismatch": true,
      "confirmations": [
        {
          "paymentType": "Regular",
          "confirmationNumber": "063-d9j09YsY1",
          "fullConfirmationCode": "063-d9j09YsY1",
          "dateApproval": "2019-12-19T09:47:59.105Z",
          "installments": 1,
          "paymentMethodName": "PayPal",
          "approvedBy": "PayPal",
          "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
          "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
          "authNumber": "123213dsf13111",
          "referenceNumber": "1778298289",
          "acquirer": "Visa",
          "voucher": "yyyAbnlmlfm1323",
          "lastFourDigits": "8858",
          "sensePassReferenceId": "34e209ea8b24cc831cf"
        }
      ],
      "confirmation": {
        "paymentType": "Regular",
        "confirmationNumber": "063-d9j09YsY1",
        "fullConfirmationCode": "063-d9j09YsY1",
        "dateApproval": "2019-12-19T09:47:59.105Z",
        "installments": 1,
        "paymentMethodName": "PayPal",
        "approvedBy": "PayPal",
        "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
        "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
        "authNumber": "123213dsf13111",
        "referenceNumber": "1778298289",
        "acquirer": "Visa",
        "voucher": "yyyAbnlmlfm1323",
        "lastFourDigits": "8858",
        "sensePassReferenceId": "34e209ea8b24cc831cf"
      },
      "transactionPage": {
        "iOSLink": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "androidLink": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "qrURL": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872"
      },
      "balance": 0
    }
    {
        // Response
    }
    {
        // Response
    }
    {
      "TransactionNumber": "14a4334a32c852aeb0cfae52cbff1314649da7f175a8e140b35c147c",
      "date": "2019-12-19T09:47:59.105Z",
      "amount": "1234.56",
      "currency": "USD",
      "status": 0,
      "statusName": "Transaction Approved",
      "pos": "POS 3, Branch Tel Aviv",
      "posReceiptsEndpoint": "http://pay.sensepass-api.com/api/invoicesReceipts/receipt/save/hofai3478o8o78o4s849j3920ckj",
      "posData": {
        "foo": "bar",
        "hello": [
          "world"
        ]
      },
      "businessName": "Coffee Bar",
      "businessId": 144,
      "timeoutDate": "2019-12-19T09:47:59.105Z",
      "paymentMethodData": {
        "PaymentType": "Bit",
        "directAppLinks": {
          "iOSLink": "paymentsBIT://www.bitpay.co.il/app/bitcom-info",
          "androidLink": "intent://www.bitpay.co.il/app/bitcom-info;scheme=bit;package=com.bnhp.payments.paymentsapp;end",
          "qrURL": "https://www.bitpay.co.il/app/bitcom-info"
        }
      },
      "SMS": "Sent",
      "paymentCommit": {
        "messsage": "Payment commit is enabled for this transaction",
        "isPaymentCommitted": false,
        "secondsToCommit": 60,
        "commitLink": "https://pay.sensepass-api.com/api/transactions/commitPayment/ec2dc489d161aa27a803f48bcf5ffcf"
      },
      "products": [
        {
          "name": "Coffee",
          "quantity": 2,
          "amount": 100,
          "discount": 0,
          "posIdentifier": "1234A"
        },
        {
          "name": "Beer",
          "quantity": 1,
          "amount": 600,
          "discount": 0,
          "posIdentifier": "1234B"
        }
      ],
      "productSumMismatch": true,
      "confirmations": [
        {
          "paymentType": "Regular",
          "confirmationNumber": "063-d9j09YsY1",
          "fullConfirmationCode": "063-d9j09YsY1",
          "dateApproval": "2019-12-19T09:47:59.105Z",
          "installments": 1,
          "paymentMethodName": "PayPal",
          "approvedBy": "PayPal",
          "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
          "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
          "authNumber": "123213dsf13111",
          "referenceNumber": "1778298289",
          "acquirer": "Visa",
          "voucher": "yyyAbnlmlfm1323",
          "lastFourDigits": "8858",
          "sensePassReferenceId": "34e209ea8b24cc831cf"
        }
      ],
      "confirmation": {
        "paymentType": "Regular",
        "confirmationNumber": "063-d9j09YsY1",
        "fullConfirmationCode": "063-d9j09YsY1",
        "dateApproval": "2019-12-19T09:47:59.105Z",
        "installments": 1,
        "paymentMethodName": "PayPal",
        "approvedBy": "PayPal",
        "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
        "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
        "authNumber": "123213dsf13111",
        "referenceNumber": "1778298289",
        "acquirer": "Visa",
        "voucher": "yyyAbnlmlfm1323",
        "lastFourDigits": "8858",
        "sensePassReferenceId": "34e209ea8b24cc831cf"
      },
      "transactionPage": {
        "iOSLink": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "androidLink": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "qrURL": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872"
      },
      "balance": 0
    }
    {
        // Response
    }
    {
        // Response
    }
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1" />
        <title>SensePass Express SDK</title>
        <!--Set the SDK script-->
        <script src="https://js.sensepass.com/scripts/[email protected]"></script>
    </head>
    <body>
        <!--Set the SDK element-->
        <sp-ecom-sdk-express></sp-ecom-sdk-express>
    
        <script>
            // Wait for the custom element to be defined
            customElements.whenDefined('sp-ecom-sdk-express').then(() => {
                const widget = document.querySelector('sp-ecom-sdk-express');
                
                // Initialize the widget with your configuration
                widget.props = {
                    clientId: "SensePassSDKGeneralClientId", // location's client-id
                    amount: "12.58",
                    currency: "USD",
                    logs: true, // enable SDK console logs
                    methodType: "manual_capture", // or "authorize" | "tokenize"
                    mode: "sandbox", // or "production"
                    cssUrl: "https://js.sensepass.com/express-sdk.css", // download to customize your own css
                    // Event handlers
                    onReady: (detail) => console.log('SDK Ready:', detail),
                    onShow: (detail) => console.log('Payment Shown:', detail),
                    onPay: (detail) => console.log('Payment Data:', detail), // finalize the payment in your backend (commit request)
                    onError: (detail) => console.error('Payment Error:', detail)
                };
            });
        </script>
    </body>
    </html>
    {
      "code": 27,
      "method": "googlepay",
      "timestamp": "2020-02-20T20:20:20.202Z",
      "transactionNumber": "1c3ff55c9d299cddbcc6d6fd929c63c1628bc25be2ab2c4c0cf87db9",
      "billingInformation": {
        "fullName": "Card Holder Name",
        "firstName": "Card",
        "lastName": "Holder Name",
        "addressLine1": "1600 Amphitheatre Parkway",
        "addressLine2": "",
        "city": "Mountain View",
        "state": "CA",
        "postalCode": "94043",
        "country": "US",
        "email": "[email protected]"
      },
      "shippingInformation": {
        "fullName": "US User",
        "firstName": "US",
        "lastName": "User",
        "addressLine1": "1600 Amphitheatre Parkway1",
        "addressLine2": "",
        "city": "Mountain View",
        "state": "CA",
        "postalCode": "94043",
        "country": "US",
        "email": "[email protected]"
      }
    }
    /* Logo-only style with light background for visibility */
    .payment-btn {
        position: relative;
        flex-direction: row;
        align-items: center;
        justify-content: center;
        padding: 12px 20px;
        min-height: 48px;
        background-color: #ffffff;
        border: 1px solid #e0e0e0;
        border-radius: 6px;
        box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
        transition: all 0.2s ease;
    }
    
    .payment-logo {
        height: 24px;
        width: auto;
        max-width: 120px;
        object-fit: contain;
    }
    
    /* Hide the text label to show logo only */
    .payment-label {
        display: none;
    }
    
    /* Hover state */
    .payment-btn:hover:not([disabled]) {
        border-color: #c0c0c0;
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
        background-color: #f9f9f9;
    }
    
    /* Disabled state */
    .payment-btn[disabled] {
        opacity: 0.5;
        cursor: not-allowed;
        background-color: #f5f5f5;
    }
    
    /* Show spinner overlay when button is not clickable (canPay = false) - initialization loading */
    .payment-btn:not([data-can-pay="true"]) {
        position: relative;
    }
    
    .payment-btn:not([data-can-pay="true"])::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background-color: rgba(255, 255, 255, 0.5);
        z-index: 10;
        border-radius: inherit;
    }
    
    .payment-btn:not([data-can-pay="true"])::after {
        content: '';
        position: absolute;
        top: 50%;
        left: 50%;
        width: 24px;
        height: 24px;
        margin: -12px 0 0 -12px;
        border: 3px solid #e0e0e0;
        border-top: 3px solid #007bff;
        border-radius: 50%;
        animation: spin 0.8s linear infinite;
        z-index: 11;
    }
    
    /* Payment processing state - different visual treatment */
    .payment-btn[data-processing="true"] {
        position: relative;
        background-color: white;
        cursor: not-allowed;
        opacity: 1;
    }
    
    /* Disabled state when other payment is processing */
    .payment-btn[data-other-processing="true"] {
        opacity: 0.5;
        cursor: not-allowed;
    }
    
    .payment-btn[data-processing="true"]::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: transparent;
        backdrop-filter: blur(3px);
        z-index: 10;
        border-radius: inherit;
    }
    
    /* Add green spinner for processing state */
    .payment-btn[data-processing="true"]::after {
        content: '';
        position: absolute;
        top: 50%;
        left: 50%;
        width: 24px;
        height: 24px;
        margin: -12px 0 0 -12px;
        border: 3px solid #e0e0e0;
        border-top: 3px solid #28a745;
        border-radius: 50%;
        animation: spin 0.8s linear infinite;
        z-index: 12;
    }
    
    /* Spinner keyframes */
    @keyframes spin {
        0% {
            transform: rotate(0deg);
        }
        100% {
            transform: rotate(360deg);
        }
    }
    
    /* Pulse animation for processing state */
    @keyframes pulse {
        0%, 100% {
            opacity: 0.1;
        }
        50% {
            opacity: 0.3;
        }
    }
    
    /* Bright pulse animation for processing state */
    @keyframes pulseBright {
        0%, 100% {
            opacity: 0.6;
        }
        50% {
            opacity: 1;
        }
    }
    
    
    /* Optional: Specific styling for individual payment methods */
    
    /* PayPal - slightly smaller logo */
    [part="paypal"] .payment-logo {
        background-color: #ffffff;
    }
    
    /* Apple Pay - ensure good contrast */
    [part="applepay"] {
        background-color: #ffffff;
    }
    
    /* Google Pay - ensure good contrast */
    [part="googlepay"] {
        padding-top: 8px;
        padding-bottom: 8px;
    }
    
    [part="googlepay"] .payment-logo {
        height: 32px;
    }
    
    {
      "TransactionNumber": "14a4334a32c852aeb0cfae52cbff1314649da7f175a8e140b35c147c",
      "date": "2019-12-19T09:47:59.105Z",
      "amount": "1234.56",
      "currency": "USD",
      "status": 0,
      "statusName": "Transaction Approved",
      "pos": "POS 3, Branch Tel Aviv",
      "posReceiptsEndpoint": "http://pay.sensepass-api.com/api/invoicesReceipts/receipt/save/hofai3478o8o78o4s849j3920ckj",
      "posData": {
        "foo": "bar",
        "hello": [
          "world"
        ]
      },
      "businessName": "Coffee Bar",
      "businessId": 144,
      "timeoutDate": "2019-12-19T09:47:59.105Z",
      "paymentMethodData": {
        "PaymentType": "Bit",
        "directAppLinks": {
          "iOSLink": "paymentsBIT://www.bitpay.co.il/app/bitcom-info",
          "androidLink": "intent://www.bitpay.co.il/app/bitcom-info;scheme=bit;package=com.bnhp.payments.paymentsapp;end",
          "qrURL": "https://www.bitpay.co.il/app/bitcom-info"
        }
      },
      "SMS": "Sent",
      "paymentCommit": {
        "messsage": "Payment commit is enabled for this transaction",
        "isPaymentCommitted": false,
        "secondsToCommit": 60,
        "commitLink": "https://pay.sensepass-api.com/api/transactions/commitPayment/ec2dc489d161aa27a803f48bcf5ffcf"
      },
      "products": [
        {
          "name": "Coffee",
          "quantity": 2,
          "amount": 100,
          "discount": 0,
          "posIdentifier": "1234A"
        },
        {
          "name": "Beer",
          "quantity": 1,
          "amount": 600,
          "discount": 0,
          "posIdentifier": "1234B"
        }
      ],
      "productSumMismatch": true,
      "confirmations": [
        {
          "paymentType": "Regular",
          "confirmationNumber": "063-d9j09YsY1",
          "fullConfirmationCode": "063-d9j09YsY1",
          "dateApproval": "2019-12-19T09:47:59.105Z",
          "installments": 1,
          "paymentMethodName": "PayPal",
          "approvedBy": "PayPal",
          "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
          "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
          "authNumber": "123213dsf13111",
          "referenceNumber": "1778298289",
          "acquirer": "Visa",
          "voucher": "yyyAbnlmlfm1323",
          "lastFourDigits": "8858",
          "sensePassReferenceId": "34e209ea8b24cc831cf"
        }
      ],
      "confirmation": {
        "paymentType": "Regular",
        "confirmationNumber": "063-d9j09YsY1",
        "fullConfirmationCode": "063-d9j09YsY1",
        "dateApproval": "2019-12-19T09:47:59.105Z",
        "installments": 1,
        "paymentMethodName": "PayPal",
        "approvedBy": "PayPal",
        "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
        "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
        "authNumber": "123213dsf13111",
        "referenceNumber": "1778298289",
        "acquirer": "Visa",
        "voucher": "yyyAbnlmlfm1323",
        "lastFourDigits": "8858",
        "sensePassReferenceId": "34e209ea8b24cc831cf"
      },
      "transactionPage": {
        "iOSLink": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "androidLink": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "qrURL": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872"
      },
      "balance": 0
    }
    {
        // Response
    }
    {
        // Response
    }
    {
      "timeOut": 600,
      "amount": 200,
      "isCent": true,
      "currency": "USD",
      "deviceId": "2ooeww5ufzg3nkuf8a10gu5n695yolixlbgb042o03to9bxfkr7t815i5epu8o58jv1rznif3o1tr6xsb1rm",
      "callbackURL": "https://google.com/callback/api/callback"
    }
    {
      "timeOut": 600,
      "amount": 200,
      "isCent": true,
      "currency": "USD",
      "deviceId": "2ooeww5ufzg3nkuf8a10gu5n695yolixlbgb042o03to9bxfkr7t815i5epu8o58jv1rznif3o1tr6xsb1rm",
      "callbackURL": "https://google.com/callback/api/callback",
      "callbackMethod": "GET"
    }
    {
      "TransactionNumber": "14a4334a32c852aeb0cfae52cbff1314649da7f175a8e140b35c147c",
      "date": "2019-12-19T09:47:59.105Z",
      "amount": "1234.56",
      "currency": "USD",
      "status": 0,
      "statusName": "Transaction Approved",
      "pos": "POS 3, Branch Tel Aviv",
      "posReceiptsEndpoint": "http://pay.sensepass-api.com/api/invoicesReceipts/receipt/save/hofai3478o8o78o4s849j3920ckj",
      "posData": {
        "foo": "bar",
        "hello": [
          "world"
        ]
      },
      "businessName": "Coffee Bar",
      "businessId": 144,
      "timeoutDate": "2019-12-19T09:47:59.105Z",
      "paymentMethodData": {
        "PaymentType": "Bit",
        "directAppLinks": {
          "iOSLink": "paymentsBIT://www.bitpay.co.il/app/bitcom-info",
          "androidLink": "intent://www.bitpay.co.il/app/bitcom-info;scheme=bit;package=com.bnhp.payments.paymentsapp;end",
          "qrURL": "https://www.bitpay.co.il/app/bitcom-info"
        }
      },
      "SMS": "Sent",
      "paymentCommit": {
        "messsage": "Payment commit is enabled for this transaction",
        "isPaymentCommitted": false,
        "secondsToCommit": 60,
        "commitLink": "https://pay.sensepass-api.com/api/transactions/commitPayment/ec2dc489d161aa27a803f48bcf5ffcf"
      },
      "products": [
        {
          "name": "Coffee",
          "quantity": 2,
          "amount": 100,
          "discount": 0,
          "posIdentifier": "1234A"
        },
        {
          "name": "Beer",
          "quantity": 1,
          "amount": 600,
          "discount": 0,
          "posIdentifier": "1234B"
        }
      ],
      "productSumMismatch": true,
      "confirmations": [
        {
          "paymentType": "Regular",
          "confirmationNumber": "063-d9j09YsY1",
          "fullConfirmationCode": "063-d9j09YsY1",
          "dateApproval": "2019-12-19T09:47:59.105Z",
          "installments": 1,
          "paymentMethodName": "PayPal",
          "approvedBy": "PayPal",
          "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
          "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
          "authNumber": "123213dsf13111",
          "referenceNumber": "1778298289",
          "acquirer": "Visa",
          "voucher": "yyyAbnlmlfm1323",
          "lastFourDigits": "8858",
          "sensePassReferenceId": "34e209ea8b24cc831cf"
        }
      ],
      "confirmation": {
        "paymentType": "Regular",
        "confirmationNumber": "063-d9j09YsY1",
        "fullConfirmationCode": "063-d9j09YsY1",
        "dateApproval": "2019-12-19T09:47:59.105Z",
        "installments": 1,
        "paymentMethodName": "PayPal",
        "approvedBy": "PayPal",
        "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
        "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
        "authNumber": "123213dsf13111",
        "referenceNumber": "1778298289",
        "acquirer": "Visa",
        "voucher": "yyyAbnlmlfm1323",
        "lastFourDigits": "8858",
        "sensePassReferenceId": "34e209ea8b24cc831cf"
      },
      "transactionPage": {
        "iOSLink": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "androidLink": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "qrURL": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872"
      },
      "balance": 0
    }
    {
        // Response
    }
    {
        // Response
    }
    {
      "timeOut": 600,
      "amount": 200,
      "isCent": true,
      "currency": "USD",
      "apiKey": "2ooeww5ufzg3nkuf8a10gu5n695yolixlbgb042o038o58jv1rznif3o1tr6xsb1rm",
      "returnURL": "https://merchantDomain.com/thankYouPage",
      "cancelURL": "https://merchantDomain.com/cart",
      "callbackURL": "https://merchantDomain.com/sensepass/callbackEndPoint"
    }
    {
      "timeOut": 600,
      "amount": 200,
      "isCent": true,
      "currency": "USD",
      "deviceId": "2ooeww5ufzg3nkuf8a10gu5n695yolixlbgb042o03to9bxfkr7t815i5epu8o58jv1rznif3o1tr6xsb1rm",
      "callbackURL": "https://google.com/callback/api/callback",
      "callbackMethod": "GET"
    }
    {
      "TransactionNumber": "14a4334a32c852aeb0cfae52cbff1314649da7f175a8e140b35c147c",
      "date": "2019-12-19T09:47:59.105Z",
      "amount": "1234.56",
      "currency": "USD",
      "status": 0,
      "statusName": "Transaction Approved",
      "pos": "POS 3, Branch Tel Aviv",
      "posReceiptsEndpoint": "http://pay.sensepass-api.com/api/invoicesReceipts/receipt/save/hofai3478o8o78o4s849j3920ckj",
      "posData": {
        "foo": "bar",
        "hello": [
          "world"
        ]
      },
      "businessName": "Coffee Bar",
      "businessId": 144,
      "timeoutDate": "2019-12-19T09:47:59.105Z",
      "paymentMethodData": {
        "PaymentType": "Bit",
        "directAppLinks": {
          "iOSLink": "paymentsBIT://www.bitpay.co.il/app/bitcom-info",
          "androidLink": "intent://www.bitpay.co.il/app/bitcom-info;scheme=bit;package=com.bnhp.payments.paymentsapp;end",
          "qrURL": "https://www.bitpay.co.il/app/bitcom-info"
        }
      },
      "SMS": "Sent",
      "paymentCommit": {
        "messsage": "Payment commit is enabled for this transaction",
        "isPaymentCommitted": false,
        "secondsToCommit": 60,
        "commitLink": "https://pay.sensepass-api.com/api/transactions/commitPayment/ec2dc489d161aa27a803f48bcf5ffcf"
      },
      "products": [
        {
          "name": "Coffee",
          "quantity": 2,
          "amount": 100,
          "discount": 0,
          "posIdentifier": "1234A"
        },
        {
          "name": "Beer",
          "quantity": 1,
          "amount": 600,
          "discount": 0,
          "posIdentifier": "1234B"
        }
      ],
      "productSumMismatch": true,
      "confirmations": [
        {
          "paymentType": "Regular",
          "confirmationNumber": "063-d9j09YsY1",
          "fullConfirmationCode": "063-d9j09YsY1",
          "dateApproval": "2019-12-19T09:47:59.105Z",
          "installments": 1,
          "paymentMethodName": "PayPal",
          "approvedBy": "PayPal",
          "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
          "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
          "authNumber": "123213dsf13111",
          "referenceNumber": "1778298289",
          "acquirer": "Visa",
          "voucher": "yyyAbnlmlfm1323",
          "lastFourDigits": "8858",
          "sensePassReferenceId": "34e209ea8b24cc831cf"
        }
      ],
      "confirmation": {
        "paymentType": "Regular",
        "confirmationNumber": "063-d9j09YsY1",
        "fullConfirmationCode": "063-d9j09YsY1",
        "dateApproval": "2019-12-19T09:47:59.105Z",
        "installments": 1,
        "paymentMethodName": "PayPal",
        "approvedBy": "PayPal",
        "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
        "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
        "authNumber": "123213dsf13111",
        "referenceNumber": "1778298289",
        "acquirer": "Visa",
        "voucher": "yyyAbnlmlfm1323",
        "lastFourDigits": "8858",
        "sensePassReferenceId": "34e209ea8b24cc831cf"
      },
      "transactionPage": {
        "iOSLink": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "androidLink": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "qrURL": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872"
      },
      "balance": 0
    }
    {
        // Response
    }
    {
        // Response
    }
    {
      "timeOut": 600,
      "amount": 200,
      "isCent": true,
      "currency": "USD",
      "apiKey": "2ooeww5ufzg3nkuf8a10gu5n695yolixlbgb042o038o58jv1rznif3o1tr6xsb1rm",
      "returnURL": "https://merchantDomain.com/thankYouPage",
      "cancelURL": "https://merchantDomain.com/cart",
      "callbackURL": "https://merchantDomain.com/sensepass/callbackEndPoint",  
      "products": [
        {
          "name": "Shirt",
          "quantity": 1,
          "amount": 190,
          "discount": 0,
          "vat": 0
        },
        {
          "name": "Service Fee",
          "quantity": 1,
          "amount": 10,
          "discount": 0,
          "vat": 0
        }
      ]
    }
    {
      "timeOut": 600,
      "amount": 200,
      "isCent": true,
      "currency": "USD",
      "deviceId": "2ooeww5ufzg3nkuf8a10gu5n695yolixlbgb042o03to9bxfkr7t815i5epu8o58jv1rznif3o1tr6xsb1rm",
      "receipt": {
        "mode": 2
      },
      "receiptNotifications": {
        "email": [
          "[email protected]"
        ],
        "sms": [
          "9295522135"
        ]
      }
    }
    {
        "TransactionNumber": "5f3275249792ee75b41322e636617ee039e2e1a49cc80c11f2177233",
        "date": "2022-08-14T10:09:05.810Z",
        "amount": "2",
        "currency": "USD",
        "status": 0,
        "statusName": "Initialize",
        "timeoutDate": "2022-08-14T10:19:05.872Z",
        "paymentCommit": {
            "messsage": "Payment commit is enabled for this transaction"
        },
        "businessId": "339978940107456",
        "businessName": "Coffee Bar",
        "pos": "POS 1",
        "businessOwnerPhone": "3587292",
        "businessCountry": "US",
        "businessCity": "Virginia Beach",
        "businessStreet": "123 Street",
        "businessAddress": "123 Street, Virginia Beach",
        "branchNumber": "1",
        "branchId": "1",
        "receiptPending": true,
        "posReceiptsEndpoint": "https://api.sandbox.sensepass.com/api/invoicesReceipts/receipt/save/0128c664-1a2a-422c-91d0-85a8af229ed4",
        "transactionPage": {
            "iOSLink": "https://pay.sandbox.sensepass.com/orderSummary/5f3275249792ee75b41322e636617ee039e2e1a49cc80c27f2177233",
            "androidLink": "https://pay.sandbox.sensepass.com/orderSummary/5f3275249792ee75b41322e636617ee039e2e1a49cc80c27f2177233",
            "qrURL": "https://pay.sandbox.sensepass.com/orderSummary/5f3275249792ee75b41322e636617ee039e2e1a49cc80c27f2177233"
        }
    }
    {
        "TransactionNumber": "5f3275249792ee75b41322e636617ee039e2e1a49cc80c11f2177233",
        "date": "2022-08-14T10:09:05.810Z",
        "amount": "2",
        "currency": "USD",
        "status": 0,
        "statusName": "Initialize",
        "timeoutDate": "2022-08-14T10:19:05.872Z",
        "paymentCommit": {
            "messsage": "Payment commit is enabled for this transaction"
        },
        "businessId": "339978940107456",
        "businessName": "Coffee Bar",
        "pos": "POS 1",
        "businessOwnerPhone": "3587292",
        "businessCountry": "US",
        "businessCity": "Virginia Beach",
        "businessStreet": "123 Street",
        "businessAddress": "123 Street, Virginia Beach",
        "branchNumber": "1",
        "branchId": "1",
        "receiptPending": true,
        "posReceiptsEndpoint": "https://api.sandbox.sensepass.com/api/invoicesReceipts/receipt/save/0128c664-1a2a-422c-91d0-85a8af229ed4",
        "transactionPage": {
            "iOSLink": "https://pay.sandbox.sensepass.com/orderSummary/5f3275249792ee75b41322e636617ee039e2e1a49cc80c27f2177233",
            "androidLink": "https://pay.sandbox.sensepass.com/orderSummary/5f3275249792ee75b41322e636617ee039e2e1a49cc80c27f2177233",
            "qrURL": "https://pay.sandbox.sensepass.com/orderSummary/5f3275249792ee75b41322e636617ee039e2e1a49cc80c27f2177233"
        },
        "confirmations": [
        {
          "paymentType": "Regular",
          "confirmationNumber": "063-d9j09YsY1",
          "fullConfirmationCode": "063-d9j09YsY1",
          "dateApproval": "2019-12-19T09:47:59.105Z",
          "installments": 1,
          "paymentMethodName": "PayPal",
          "approvedBy": "PayPal",
          "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
          "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
          "authNumber": "123213dsf13111",
          "referenceNumber": "1778298289",
          "acquirer": "Visa",
          "voucher": "yyyAbnlmlfm1323",
          "lastFourDigits": "8858",
          "sensePassReferenceId": "34e209ea8b24cc831cf"
        }
      ]
    }
    {
      "success": true,
      "message": "Saved"
    }
    {
      "url": "http://someDomain.com/receipt1.pdf",
      "type": "pdf",
      "receiptIdentifier": "43242342324",
      "associateToConfirmationNumbers": [
        "012-34567891",
        "012-34567892"
      ]
    }
    {
      "success": true,
      "message": "Saved"
    }
    {
      "base64data": "PGh0bWw+",
      "type": "html",
      "receiptIdentifier": "43242342324",
      "associateToConfirmationNumbers": [
        "012-34567891",
        "012-34567892"
      ]
    }
    {
      "success": true,
      "message": "Saved"
    }
    const spClient = SensePassFrontEndSDK.config({
       mode: "sandbox", // "sandbox" | "production"
       debug: true, // optional for logs
       visualizer: true, // optional visual logs, requires HTML with id="sensepass-front-end-visualizer"
       clientId: "SensePassSDKGeneralClientId", // Client ID
       methodType: "manual_capture", // type for the transaction, defaults to "manual_capture", enum: "manual_capture" | "tokenize" | "authorize"
       payButtonId: "my-payment-button" // id for the payment-button (element) the customer will click to start the payment process
    });
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1" />
        <title>SensePass Express SDK</title>
        <!--Set the SDK script-->
        <script src="https://js.sensepass.com/scripts/[email protected]"></script>
    </head>
    <body>
        <sp-ecom-sdk-express></sp-ecom-sdk-express>
    
        <script>
            // Wait for the custom element to be defined
            customElements.whenDefined('sp-ecom-sdk-express').then(() => {
                const widget = document.querySelector('sp-ecom-sdk-express');
                
                // Initialize the widget with your configuration
                widget.props = {
                    clientId: "SensePassSDKGeneralClientId", // location's client-id
                    amount: "12.99",
                    currency: "USD",
                    logs: true, // enable SDK console logs
                    methodType: "manual_capture", // or "authorize" | "tokenize"
                    mode: "sandbox", // or "production"
                    cssUrl: "https://js.sensepass.com/express-sdk.css", // download to customize your own css
                    // Event handlers
                    onReady: (detail) => console.log('SDK Ready:', detail),
                    onShow: (detail) => console.log('Payment Shown:', detail),
                    onPay: (detail) => console.log('Payment Data:', detail), // finalize the payment in your backend (commit request)
                    onError: (detail) => console.error('Payment Error:', detail)
                };
            });
        </script>
    </body>
    </html>
    {
      "code": 27,
      "method": "googlepay",
      "timestamp": "2025-09-30T15:18:14.701Z",
      "transactionNumber": "1c3ff55c9d299cddbcc6d6fd929c63c1628bc25be2ab2c4c0cf87db9",
      "billingInformation": {
        "fullName": "Card Holder Name",
        "firstName": "Card",
        "lastName": "Holder Name",
        "addressLine1": "1600 Amphitheatre Parkway",
        "addressLine2": "",
        "city": "Mountain View",
        "state": "CA",
        "postalCode": "94043",
        "country": "US",
        "email": "[email protected]"
      },
      "shippingInformation": {
        "fullName": "US User",
        "firstName": "US",
        "lastName": "User",
        "addressLine1": "1600 Amphitheatre Parkway1",
        "addressLine2": "",
        "city": "Mountain View",
        "state": "CA",
        "postalCode": "94043",
        "country": "US",
        "email": "[email protected]"
      }
    }
    const sensepass = spClient.init();
    const spFrontEndContainerEl = document.getElementById("sensepass-front-end");
    const spFrontEndIframeEl = spFrontEndContainerEl.firstElementChild;
    sensepass.frameDimensions((payload: any) => {
       if (payload) {
          const height = payload.height;
          const width = payload.width;
          spFrontEndIframeEl.style.height = `${height}px`;
          spFrontEndIframeEl.style.width = `${width}px`;
       }
    });
    const callback = payload => console.log(payload);
    sensepass.paymentSelected(callback); // get event for the payment method's selection
    sensepass.paying(callback); // get event for the payment method in its paying-process
    sensepass.paymentMethodValidationStatus(callback); // if a payment method has a validatable state, always updates you on it.
    sensepass.error(callback); // get various error messages for the payment attempts, transaction status and more...
    sensepass.pay(callback); // get a JSON of the transaction's final state
    sensepass.pay(callback, 
    { 
        amount: 1099,   //Transaction amount in Cents (10.99 USD)
        currency: "USD",
        billingAddress: { //Optional
    	city: "New York",
    	email: "[email protected]",
    	firstName: "John",
    	lastName: "Doe",
    	street: "Baker St",
    	state: "NY",
    	zipcode: "12345",
    	mobilePhone: "123456789",
    	country: "US"
        }
    });
    {
      //...
      "level": {
        "value": 2,
        "transactionId": "10",
        "tax": {
          "amount": "0.01"
        }
      }
    }
    {
      //...
      "level": {
        "value": 3,
        "transactionId": "10",
        "invoiceCode": "INV001",
        "productsCode": "1010",
        "shipping": {
          "zipCode": "90000",
          "amount": "1.02",
          "dutyAmount": "0.01"
        },
        "tax": {
          "amount": "0.01",
          "details": [
            {
              "type": "test",
              "amount": "0.01",
              "rate": "1.00",
              "category": "VAT"
            }
          ]
        },
        "discount": {
          "amount": "0.01"
        },
        "customer": {
          "govtVatId": "Customer VAT"
        }
      }
    }
    {
      "timeOut": 600,
      "amount": 200,
      "isCent": true,
      "currency": "USD",
      "apiKey": "2ooeww5ufzg3nkuf8a10gu5n695yolixlbgb042o038o58jv1rznif3o1tr6xsb1rm",
      "returnURL": "https://merchantDomain.com/thankYouPage",
      "cancelURL": "https://merchantDomain.com/cart",
      "callbackURL": "https://merchantDomain.com/sensepass/callbackEndPoint",
      "products": [
        {
          "name": "Shirt",
          "quantity": 1,
          "amount": 190,
          "discount": 0,
          "vat": 0
        },
        {
          "name": "Service Fee",
          "quantity": 1,
          "amount": 10,
          "discount": 0,
          "vat": 0
        }
      ],
      "posData": {
        "customerName": "John",
        "orderId": "6759082413",
      }
    }
    {
        "TransactionNumber": "5f3275249792ee75b41322e636617ee039e2e1a49cc80c11f2177233",
        "date": "2022-08-14T10:09:05.810Z",
        "amount": "2",
        "currency": "USD",
        "status": 0,
        "statusName": "Initialize",
        "timeoutDate": "2022-08-14T10:19:05.872Z",
        "paymentCommit": {
            "messsage": "Payment commit is enabled for this transaction"
        },
        "businessId": "339978940107456",
        "businessName": "Coffee Bar",
        "pos": "POS 1",
        "businessOwnerPhone": "3587292",
        "businessCountry": "US",
        "businessCity": "Virginia Beach",
        "businessStreet": "123 Street",
        "businessAddress": "123 Street, Virginia Beach",
        "branchNumber": "1",
        "branchId": "1",
        "transactionPage": {
            "iOSLink": "https://pay.sandbox.sensepass.com/orderSummary/5f3275249792ee75b41322e636617ee039e2e1a49cc80c27f2177233",
            "androidLink": "https://pay.sandbox.sensepass.com/orderSummary/5f3275249792ee75b41322e636617ee039e2e1a49cc80c27f2177233",
            "qrURL": "https://pay.sandbox.sensepass.com/orderSummary/5f3275249792ee75b41322e636617ee039e2e1a49cc80c27f2177233",
            "consumerPage": {
                "regular": "https://pay.sandbox.sensepass.com/orderSummary/5f3275249792ee75b41322e636617ee039e2e1a49cc80c27f2177233",
                "medium": "https://pay.sandbox.sensepass.com/orderSummary/5f3275249792ee75b41322e636617ee039e2e1a49cc80c27f2177233?viewMode=medium",
                "small": "https://pay.sandbox.sensepass.com/orderSummary/5f3275249792ee75b41322e636617ee039e2e1a49cc80c27f2177233?viewMode=small"
            }
        },
        "paymentDetails": {
            "type": "Tokenize"
        }
    }
    {
      "timeOut": 600,
      "amount": 5500,
      "isCent": true,
      "currency": "USD",
      "apiKey": "2ooeww5ufzg3nkuf8a10gu5n695yolixlbgb042o038o58jv1rznif3o1tr6xsb1rm",
      "returnURL": "https://merchantDomain.com/thankYouPage",
      "cancelURL": "https://merchantDomain.com/cart",
      "callbackURL": "https://merchantDomain.com/sensepass/callbackEndPoint",
      "clientPhoneNumber": "+155555551234"
    }
    {
      "creditCard": {
        "animation": "expand" | "one-line" | "none",
        "customText": {
          "direction": "rtl" | "ltr",
          "fields": {
            "cardNumber": {
              "label": "Card Number",
              "placeholder": "Credit Card",
              "hint": "Digits",
              "defaultHint": "Full Card Number",
              "errors": {
                "required": "Card Number is Mandatory",
                "cardTypeLength": {
                  "minLengthStart": "Must be Over",
                  "minLengthEnd": "Digits",
                  "maxLengthStart": "Must be Under",
                  "maxLengthEnd": "Digits",
                  "lengthsStart": "Must be:",
                  "lengthsSplit": "or",
                  "lengthsEnd": "Digits"
                }
              }
            },
            "expiration": {
              "label": "Expiration",
              "placeholder": "Month / Year",
              "hint": "MM/YY",
              "errors": {
                "required": "Expiration Date is Mandatory",
                "cardExpiration": {
                  "invalidDateFormat": "Date Invalid, Should Be MM/YY",
                  "monthRange": "Month Should Be Between 1 - 12",
                  "yearExpiration": "The Year You've Set Expired",
                  "monthExpiration": "The Month You've Set Expired This Year"
                }
              }
            },
            "securityCode": {
              "label": "CVV",
              "placeholder": "CVV/CVC",
              "hint": {
                "amex": "digits, front of the card",
                "default": "digits, back of the card"
              },
              "defaultHint": "Security Code",
              "errors": {
                "required": "CVC is Mandatory",
                "securityCodeLength": {
                  "lengthShouldBe": "must be",
                  "digits": "digits"
                }
              }
            },
            "socialID": {
              "label": "Document ID",
              "placeholder": "Document ID",
              "hint": "Document ID",
              "errors": {
                "required": "Document ID is Mandatory",
                "minlength": "5 Digits Minimum",
                "maxlength": "20 Digits Maximum"
              }
            },
            "zipCode": {
              "label": "Zip Code",
              "placeholder": "Zip Code",
              "hint": "address associated to your card",
              "errors": {
                "required": "Zip Code is Mandatory",
                "minlength": "0 Digits Minimum",
                "maxlength": "9 Digits Maximum"
              }
            },
            "email": {
              "label": "Email",
              "placeholder": "[email protected]",
              "hint": "Email",
              "errors": {
                "required": "Email is Mandatory",
                "minlength": "5 Characters Minimum",
                "maxlength": "50 Characters Maximum"
              }
            },
            "mobilePhone": {
              "label": "Mobile Phone",
              "placeholder": "000-000-0000",
              "hint": "Mobile Phone",
              "errors": {
                "required": "Mobile Phone is Mandatory",
                "minlength": "6 Digits Minimum",
                "maxlength": "15 Digits Maximum"
              }
            },
            "installments": "Installments",
            "fullName": {
              "label": "Full Name",
              "placeholder": "Full Name",
              "hint": "First & Last names",
              "errors": {
                "required": "Full Name is Mandatory",
                "pattern": "Full Name must ONLY be letters",
                "minlength": "4 Characters Minimum",
                "maxlength": "50 Characters Maximum"
              }
            },
            "saveCard": {
              "label": "Save this card"
            }
          }
        }
      }
    }
    Logo
    Transaction Model
    Transaction Model
    Transaction Model
    Transaction Model
    Transaction Model
    Transaction Model
    Transaction Model
    Transaction Model
    Transaction status
    Transaction status
    Transaction Model
    Transaction Model
    Transaction Model
    Transaction Model
    Transaction Model
    Transaction Model
    Transaction Model
    Transaction Model
    Transaction Model

    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

    Interface: Transaction status

    Transaction status
    Transaction Model

    apiKey*

    string

    Unique API provided by SensePass, unique for each location of your merchant

    callbackURL

    string

    URL to your POST endpoint

    Interface: Transaction status

    cancelURL

    string

    URL to redirect consumer on cancel event from consumer

    returnURL

    string

    URL to redirect consumer after Success or Error

    Transaction status
    Transaction Model

    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

    Transaction Model
    Transaction Model
    Transaction Model
    Transaction Model
    Callback
    Transaction Entity
    Regular SIze
    Medium Size
    Small Size

    object

    3

    shipping.zipCode

    string

    3

    valid zip/postal code

    shipping.amount

    string

    3

    decimal, e.g. "1.02"

    shipping.dutyAmount

    string

    3

    decimal, e.g. "1.02"

    tax

    object

    2 | 3

    tax.amount

    string

    2 | 3

    decimal, e.g. "1.02"

    tax.details

    array

    3

    tax.details[n]

    object

    3

    tax.details[n].type

    string

    3

    tax.details[n].amount

    string

    3

    decimal, e.g. "1.02"

    tax.details[n].rate

    string

    3

    decimal, e.g. "1.02"

    tax.details[n].category

    string

    3

    discount

    object

    3

    discount.amount

    string

    3

    decimal, e.g. "1.02"

    customer

    object

    3

    customer.govtVatId

    string

    3


    Implement the following Express SDK by adding it to your front-end website's scripts: https://js.sensepass.com/scripts/[email protected]

    src
    =
    "
    https://js.sensepass.com/scripts/[email protected]
    "
    type
    =
    "
    application/javascript
    "
    ></
    script
    >
    </head>
    </html>
    web-componentsarrow-up-right
    <html>
    <head>
        <script src="https://js.sensepass.com/scripts/[email protected]" type="application/javascript"></script>
    </head>
    </html>
    {
      "timeOut": 600,
      "deviceId": "2ooeww5ufzg3nkuf8a10g15i5epu8o58jv1rznif3o1tr6xsb1rm",
      "methodType": "Tokenize"
    }
    {
        "TransactionNumber": "5f3275249792ee75b41322e636617ee039e2e1a49cc80c11f2177233",
        "date": "2022-08-14T10:09:05.810Z",
        "status": 0,
        "statusName": "Initialize",
        "timeoutDate": "2022-08-14T10:19:05.872Z",
        "paymentCommit": {
            "messsage": "Payment commit is enabled for this transaction"
        },
        "businessId": "339978940107456",
        "businessName": "Coffee Bar",
        "pos": "POS 1",
        "businessOwnerPhone": "3587292",
        "businessCountry": "US",
        "businessCity": "Virginia Beach",
        "businessStreet": "123 Street",
        "businessAddress": "123 Street, Virginia Beach",
        "branchNumber": "1",
        "branchId": "1",
        "transactionPage": {
            "iOSLink": "https://pay.sandbox.sensepass.com/orderSummary/5f3275249792ee75b41322e636617ee039e2e1a49cc80c27f2177233",
            "androidLink": "https://pay.sandbox.sensepass.com/orderSummary/5f3275249792ee75b41322e636617ee039e2e1a49cc80c27f2177233",
            "qrURL": "https://pay.sandbox.sensepass.com/orderSummary/5f3275249792ee75b41322e636617ee039e2e1a49cc80c27f2177233"
        },
        "paymentDetails": {
            "type": "Tokenize"
        }
    }
    {
      "timeOut": 600,
      "amount": 3000,
      "deviceId": "2ooeww5ufzg3nkuf8a10g15i5epu8o58jv1rznif3o1tr6xsb1rm",
      "methodType": "Capture+Tokenize"
    }
    {
        "TransactionNumber": "5f3275249792ee75b41322e636617ee039e2e1a49cc80c11f2177233",
        "date": "2022-08-14T10:09:05.810Z",
        "status": 0,
        "statusName": "Initialize",
        "timeoutDate": "2022-08-14T10:19:05.872Z",
        "paymentCommit": {
            "messsage": "Payment commit is enabled for this transaction"
        },
        "businessId": "339978940107456",
        "businessName": "Coffee Bar",
        "pos": "POS 1",
        "businessOwnerPhone": "3587292",
        "businessCountry": "US",
        "businessCity": "Virginia Beach",
        "businessStreet": "123 Street",
        "businessAddress": "123 Street, Virginia Beach",
        "branchNumber": "1",
        "branchId": "1",
        "transactionPage": {
            "iOSLink": "https://pay.sandbox.sensepass.com/orderSummary/5f3275249792ee75b41322e636617ee039e2e1a49cc80c27f2177233",
            "androidLink": "https://pay.sandbox.sensepass.com/orderSummary/5f3275249792ee75b41322e636617ee039e2e1a49cc80c27f2177233",
            "qrURL": "https://pay.sandbox.sensepass.com/orderSummary/5f3275249792ee75b41322e636617ee039e2e1a49cc80c27f2177233"
        },
        "paymentDetails": {
            "type": "Capture+Tokenize"
        }
    }
    {
        "apiKey": "2ooeww5ufzg3nkuf8a10g15i5epu8o58jv1rznif3o1tr6xsb1rm",
        "creditCardDetails": [
            {
                "cardNumber": "4580458045804580",
                "cardExpiration": "12/34",
                "securityCode": "567"
            },
            {
                "cardNumber": "4580458045804580",
                "cardExpiration": "12/34",
                "securityCode": "567"
            }
        ]
    }
    [
        {
            "cardNumber": "4580458045804580",
            "cardExpiration": "1234",
            "securityCode": "567",
            "uid": "f0de8e51-e886-4b99-9a2b-c5a4189df164",
            "token": "f0de8e51-e886-4b99-9a2b-cda4189df164"
        },
        {
            "cardNumber": "4580458045804580",
            "cardExpiration": "1234",
            "securityCode": "567",
            "uid": "7c2b58db-8985-4547-9e38-f96f9a78d801",
            "token": "7c2b58db-8985-4547-9e38-fa6f9a78d801"
        }
    ]
    {
        "TransactionNumber": "5f3275249792ee75b41322e636617ee039e2e1a49cc80c11f2177233",
        "date": "2022-08-14T10:09:05.810Z",
        "status": 0,
        "statusName": "Initialize",
        "timeoutDate": "2022-08-14T10:19:05.872Z",
        "paymentCommit": {
        "businessId": "339978940107456",
        "businessName": "Coffee Bar",
        "pos": "POS 1",
        "businessOwnerPhone": "3587292",
        "businessCountry": "US",
        "businessCity": "Virginia Beach",
        "businessStreet": "123 Street",
        "businessAddress": "123 Street, Virginia Beach",
        "paymentDetails": {
            "type": "Tokenize",
            "paymentMethod": "Sensepass PCI",
            "created": "2022-11-17T08:31:10.154Z",
            "token": "kkAl8zuss9men3mvu6rp4fhuwppek9yht6vn8r9z3kza6hyzfmnm",
            "cardType": "visa",
            "lastFourDigits": "1111",
            "cardMask": "458010*****1111",
            "expiration": "1234",
            "approvedBy": "Credit Card"
        },
        "callbackType": "transaction_status"
    }
    {
      "amount": 200,
      "currency": "USD",
      "deviceId": "2ooeww5ufzg3nkuf8a10g15i5epu8o58jv1rznif3o1tr6xsb1rm",
      "token": "kkAl8zuss9men3mvu6rp4fhuwppek9yht6vn8r9z3kza6hyzfmnm"
    }
    {
      "amount": 200,
      "currency": "USD",
      "deviceId": "2ooeww5ufzg3nkuf8a10g15i5epu8o58jv1rznif3o1tr6xsb1rm",
      "tokenSource": "Authorize.net",
      "tokenData": {
          "profile_id": "12345",
          "payment_id": "55555"
      }
    }
    {
        "success": true,
        "transactionNumber": "dff8c53f80b25527666a5935b56fc431d8a68cc82e53234d907103d2",
        "transactionStatus": "TransactionApproved",
        "confirmation": {
            "fullConfirmationCode": "166-60202801955",
            "confirmationNumber": "166-60202801955",
            "approvedBy": "AuthorizeNet Sandbox",
            "providerId": "jDPPZyn8zdGtBcKUP4EbxTfwy62j+JShtQGDlbwx4/c=",
            "dateApproval": "2022-10-20T17:34:31.778Z",
            "approvalDate": "2022-10-20T17:34:31.778Z",
            "paymentMethodName": "Credit Card",
            "lastFourDigits": "1111",
            "cardExpiration": "1234"
        },
        "cardMask": "",
        "token": "kkAl8zuss9men3mvu6rp4fhuwppek9yht6vn8r9z3kza6hyzfmnm"
    }
    {
      "deviceId": "2ooeww5ufzg3nkuf8a10g15i5epu8o58jvrznif3o1tr6xsb1rm",
      "token": "fd269cce79496def3add8157511d2571562221641140aa5edc870ea7fc4ebad"
    }
    {
        "success": true,
        "message": "The token is valid",
        "AVS": {
            "code": "NNN",
            "message": "Address: No Match & 5 Digit Zip: No Match"
        },
        "CVV": {
            "code": "M",
            "message": "Match"
        }
    } 
    const childWindow = document.getElementById('sensepass-iframe').contentWindow;
    window.addEventListener('message', message => {
        // Handle message
    });
    {
      "TransactionNumber": "14a4334a32c852aeb0cfae52cbff1314649da7f175a8e140b35c147c",
      "date": "2019-12-19T09:47:59.105Z",
      "amount": 1234.56,
      "currency": "USD",
      "status": 0,
      "statusName": "Transaction Approved",
      "pos": "POS 3, Branch Tel Aviv",
      "posReceiptsEndpoint": "http://pay.sensepass-api.com/api/invoicesReceipts/receipt/save/hofai3478o8o78o4s849j3920ckj",
      "posData": {
        "foo": "bar",
        "hello": [
          "world"
        ]
      },
      "businessName": "Coffee Bar",
      "businessId": 144,
      "timeoutDate": "2019-12-19T09:47:59.105Z",
      "paymentMethodData": {
        "PaymentType": "Bit",
        "directAppLinks": {
          "iOSLink": "paymentsBIT://www.bitpay.co.il/app/bitcom-info",
          "androidLink": "intent://www.bitpay.co.il/app/bitcom-info;scheme=bit;package=com.bnhp.payments.paymentsapp;end",
          "qrURL": "https://www.bitpay.co.il/app/bitcom-info"
        }
      },
      "SMS": "Sent",
      "paymentCommit": {
        "messsage": "Payment commit is enabled for this transaction",
        "isPaymentCommitted": false,
        "secondsToCommit": 60,
        "commitLink": "https://pay.sensepass-api.com/api/transactions/commitPayment/ec2dc489d161aa27a803f48bcf5ffcf"
      },
      "products": [
        {
          "name": "Coffee",
          "quantity": 2,
          "amount": 100,
          "discount": 0,
          "posIdentifier": "1234A"
        },
        {
          "name": "Beer",
          "quantity": 1,
          "amount": 600,
          "discount": 0,
          "posIdentifier": "1234B"
        }
      ],
      "confirmations": [
        {
          "paymentType": "Regular",
          "confirmationNumber": "063-d9j09YsY1",
          "fullConfirmationCode": "063-d9j09YsY1",
          "dateApproval": "2019-12-19T09:47:59.105Z",
          "installments": 1,
          "paymentMethodName": "PayPal",
          "approvedBy": "PayPal",
          "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
          "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
          "authNumber": "123213dsf13111",
          "referenceNumber": "1778298289",
          "acquirer": "Visa",
          "voucher": "yyyAbnlmlfm1323",
          "lastFourDigits": "8858",
          "sensePassReferenceId": "34e209ea8b24cc831cf"
        }
      ],
      "confirmation": {
        "paymentType": "Regular",
        "confirmationNumber": "063-d9j09YsY1",
        "fullConfirmationCode": "063-d9j09YsY1",
        "dateApproval": "2019-12-19T09:47:59.105Z",
        "installments": 1,
        "paymentMethodName": "PayPal",
        "approvedBy": "PayPal",
        "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
        "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
        "authNumber": "123213dsf13111",
        "referenceNumber": "1778298289",
        "acquirer": "Visa",
        "voucher": "yyyAbnlmlfm1323",
        "lastFourDigits": "8858",
        "sensePassReferenceId": "34e209ea8b24cc831cf"
      },
      "transactionPage": {
        "iOSLink": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "androidLink": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "qrURL": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872"
      },
      "balance": 0
    }
    {
      "type": "pdf",
      "receiptIdentifier": "43242342324",
      "associateToConfirmationNumbers": [
        "012-34567891",
        "012-34567892"
      ]
    }
    [
        "SERVICE",
        "DUTY",
        "VAT",
        "ALTERNATE",
        "NATIONAL TAXEXEMPT"
    ]
    <html>
    <head>
        <script src="https://js.sensepass.com/scripts/[email protected]" type="application/javascript"></script>
    </head>
    </html>
  • reason: Reason field of the transaction

  • expiration: Transaction expiration date formatted

  • 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

    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 ]

    Transaction Model
    Transaction Model

    creditCard.customText.fields[MODEL_FIELD]

    model

    field model for editting a credit card form field text .

    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.

    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 ]

    email

    string

    example: [email protected]

    discount

    number

    example: 0

    vat

    boolean

    example: true

    Receipts Model

    Transaction status

    API for retrieving the current status of a given transaction.

    circle-exclamation

    Do not implement poll logic with this API, instead implement Socket.IO listener or callback API to get transaction status events.

    hashtag
    API Interface

    hashtag
    Get transaction object by a transaction number

    GET https://api.sensepass.com/api/transactions/{transactionNumber}

    hashtag
    Path Parameters

    Name
    Type
    Description

    Authentication Request Body fields

    See Transactions entity schema:

    hashtag
    Schema

    Full Transaction Entity schema:

    hashtag
    Flow Chart

    hashtag
    Transaction Status Flow

    hashtag
    Fetch Multiple Transactions

    POST https://api.sensepass.com/api/transactions

    Body

    Name
    Type
    Description

    FilterData

    Name
    Type
    Description

    Example Request

    Body

    Response

    Payment Methods

    Accept any payment app, any wallet, any card any way your customer wants.

    SensePass supports currently 111 payment methods with a single API interface for all of them, we continue to add payment methods to our network.

    hashtag
    Credit Cards (31)

    • Sola (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

    • Blink

    • Viva

    • KCP

    • Cielo

    • BlueFin

    • Maverick

    hashtag
    Wallets (9)

    • Apple Pay

    • Google Payâ„¢

    • PayPal

    hashtag
    Buy Now Pay Later - BNPL (10)

    • Klarna

    • SplitIt

    • Sezzle

    hashtag
    Bank Payments (4)

    • Trustly

    • ACH

    • EFT

    hashtag
    LATAM, Asia, Africa (54)

    • Mobile Money

    • PIX

    • Boleto

    • Abitab

    hashtag
    Crypto (3)

    • Coinbase

    • BitPay

    • PalWallet

    hashtag
    API for Fetching Payment Providers

    GET /transactions/paymentProviders/list

    hashtag
    Request Body

    Name
    Type
    Description

    hashtag
    API for Fetching Payment Methods by method type

    GET /transactions/paymentProviders/payment-methods

    hashtag
    Request Body

    Name
    Type
    Description

    All merchants must adhere to the Google Pay APIs and accept the terms defined in the .

    Google Pay is a trademark of Google LLC.

    SDK Credit Card Field Model

    customize credit card texts

    This model represents all the required data for customizing the text for the SDK's credit card form field.

    circle-info

    Description of the parameters required for various payment options configurations.

    field
    type
    description

    Field specific parameters.

    field
    type
    description

    Transaction Model

    hashtag
    Transaction Model

    This model is referenced in the response of

    field
    type
    description

    {
      "timeOut": 600,
      "amount": 5500,
      "isCent": true,
      "currency": "USD",
      "deviceId": "2ooeww5ufzg3nkuf8a10gu5n695yolixlbgb042o03to9bxfkr7t815i5epu8o58jv1rznif3o1tr6xsb1rm",
      "clientPhoneNumber": "+155555551234",
      "customSmsText": "%%businessName%% asks you for %%amount%%"
    }
    {
      "TransactionNumber": "14a4334a32c852aeb0cfae52cbff1314649da7f175a8e140b35c147c",
      "date": "2019-12-19T09:47:59.105Z",
      "amount": "1234.56",
      "currency": "USD",
      "status": 0,
      "statusName": "Transaction Approved",
      "pos": "POS 3, Branch Tel Aviv",
      "posReceiptsEndpoint": "http://pay.sensepass-api.com/api/invoicesReceipts/receipt/save/hofai3478o8o78o4s849j3920ckj",
      "posData": {
        "foo": "bar",
        "hello": [
          "world"
        ]
      },
      "businessName": "Coffee Bar",
      "businessId": 144,
      "timeoutDate": "2019-12-19T09:47:59.105Z",
      "paymentMethodData": {
        "PaymentType": "Bit",
        "directAppLinks": {
          "iOSLink": "paymentsBIT://www.bitpay.co.il/app/bitcom-info",
          "androidLink": "intent://www.bitpay.co.il/app/bitcom-info;scheme=bit;package=com.bnhp.payments.paymentsapp;end",
          "qrURL": "https://www.bitpay.co.il/app/bitcom-info"
        }
      },
      "SMS": "Sent",
      "paymentCommit": {
        "messsage": "Payment commit is enabled for this transaction",
        "isPaymentCommitted": false,
        "secondsToCommit": 60,
        "commitLink": "https://pay.sensepass-api.com/api/transactions/commitPayment/ec2dc489d161aa27a803f48bcf5ffcf"
      },
      "products": [
        {
          "name": "Coffee",
          "quantity": 2,
          "amount": 100,
          "discount": 0,
          "posIdentifier": "1234A"
        },
        {
          "name": "Beer",
          "quantity": 1,
          "amount": 600,
          "discount": 0,
          "posIdentifier": "1234B"
        }
      ],
      "productSumMismatch": true,
      "confirmations": [
        {
          "paymentType": "Regular",
          "confirmationNumber": "063-d9j09YsY1",
          "fullConfirmationCode": "063-d9j09YsY1",
          "dateApproval": "2019-12-19T09:47:59.105Z",
          "installments": 1,
          "paymentMethodName": "PayPal",
          "approvedBy": "PayPal",
          "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
          "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
          "authNumber": "123213dsf13111",
          "referenceNumber": "1778298289",
          "acquirer": "Visa",
          "voucher": "yyyAbnlmlfm1323",
          "lastFourDigits": "8858",
          "sensePassReferenceId": "34e209ea8b24cc831cf"
        }
      ],
      "confirmation": {
        "paymentType": "Regular",
        "confirmationNumber": "063-d9j09YsY1",
        "fullConfirmationCode": "063-d9j09YsY1",
        "dateApproval": "2019-12-19T09:47:59.105Z",
        "installments": 1,
        "paymentMethodName": "PayPal",
        "approvedBy": "PayPal",
        "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
        "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
        "authNumber": "123213dsf13111",
        "referenceNumber": "1778298289",
        "acquirer": "Visa",
        "voucher": "yyyAbnlmlfm1323",
        "lastFourDigits": "8858",
        "sensePassReferenceId": "34e209ea8b24cc831cf"
      },
      "transactionPage": {
        "iOSLink": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "androidLink": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "qrURL": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872"
      },
      "balance": 0
    }
    {
        // Response
    }
    {
        // Response
    }
    ["[email protected]"]
    ["9295522135"]
    {
      "cardNumber": {
        "label": "Card Number",
        "placeholder": "Credit Card",
        "hint": "Digits",
        "defaultHint": "Full Card Number",
        "errors": {
          "required": "Card Number is Mandatory",
          "cardTypeLength": {
            "minLengthStart": "Must be Over",
            "minLengthEnd": "Digits",
            "maxLengthStart": "Must be Under",
            "maxLengthEnd": "Digits",
            "lengthsStart": "Must be:",
            "lengthsSplit": "or",
            "lengthsEnd": "Digits"
          }
        }
      },
      "expiration": {
        "label": "Expiration",
        "placeholder": "Month / Year",
        "hint": "MM/YY",
        "errors": {
          "required": "Expiration Date is Mandatory",
          "cardExpiration": {
            "invalidDateFormat": "Date Invalid, Should Be MM/YY",
            "monthRange": "Month Should Be Between 1 - 12",
            "yearExpiration": "The Year You've Set Expired",
            "monthExpiration": "The Month You've Set Expired This Year"
          }
        }
      },
      "securityCode": {
        "label": "CVV",
        "placeholder": "CVV/CVC",
        "hint": {
          "amex": "digits, front of the card",
          "default": "digits, back of the card"
        },
        "defaultHint": "Security Code",
        "errors": {
          "required": "CVC is Mandatory",
          "securityCodeLength": {
            "lengthShouldBe": "must be",
            "digits": "digits"
          }
        }
      },
      "socialID": {
        "label": "Document ID",
        "placeholder": "Document ID",
        "hint": "Document ID",
        "errors": {
          "required": "Document ID is Mandatory",
          "minlength": "5 Digits Minimum",
          "maxlength": "20 Digits Maximum"
        }
      },
      "zipCode": {
        "label": "Zip Code",
        "placeholder": "Zip Code",
        "hint": "address associated to your card",
        "errors": {
          "required": "Zip Code is Mandatory",
          "minlength": "0 Digits Minimum",
          "maxlength": "9 Digits Maximum"
        }
      },
      "email": {
        "label": "Email",
        "placeholder": "[email protected]",
        "hint": "Email",
        "errors": {
          "required": "Email is Mandatory",
          "minlength": "5 Characters Minimum",
          "maxlength": "50 Characters Maximum"
        }
      },
      "mobilePhone": {
        "label": "Mobile Phone",
        "placeholder": "000-000-0000",
        "hint": "Mobile Phone",
        "errors": {
          "required": "Mobile Phone is Mandatory",
          "minlength": "6 Digits Minimum",
          "maxlength": "15 Digits Maximum"
        }
      },
      "installments": "Installments",
      "fullName": {
        "label": "Full Name",
        "placeholder": "Full Name",
        "hint": "First & Last names",
        "errors": {
          "required": "Full Name is Mandatory",
          "pattern": "Full Name must ONLY be letters",
          "minlength": "4 Characters Minimum",
          "maxlength": "50 Characters Maximum"
        }
      },
      "saveCard": {
        "label": "Save this card"
      }
    }
    SDK Credit Card Field Model
    Transaction Model
    Create a transaction
    Create a transaction
    Create a transaction
    Create a transaction
    Create a transaction
    Create a transaction
    Creating a new transaction object (Payment Request)

    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)

    *TransactionAuthorizeVoided (15) - Authorize Transaction was voided *ProcessingAuthorizeVoided (16) - Processing void for Authorize Transaction

    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

    Any data (object/array/string/number etc...) received in "posData" field in Create a transaction

    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

    SMS delivery status, see "clientPhoneNumber" field in Create a transaction

    paymentCommit

    object

    See payment commit object entity: Payment Commit Model

    products

    object

    See product object entity: Product Model

    productSumMismatch

    boolean

    Informs if the sum of all products are not equal to the transaction's amount

    confirmations

    object

    See confirmation object entity: Confirmation Model

    transactionPage

    object

    See transaction page entity: Transaction Page Model

    confirmation

    Deprecated

    Deprecated field

    paymentMethodData

    Deprecated

    Deprecated field

    subscription

    object

    see subscription object entity: Subscription Model

    parentTransaction

    object

    parent transaction with method type: Subscription/Authorization/Tokenization. Transaction Model

    additionalData

    object

    Any additional data that may be sent to the processor Additional Data Model

    level

    object

    Level related data that will be sent to the processor Payment Method Level Model

    processorData

    object

    Any additional data that may be sent to the processor Processor Data Model

    Create a transaction
    Venmo
  • Amazon Pay

  • Samsung Pay

  • AliPay

  • WeChat Pay

  • Kakao Pay

  • ChargeAfter
  • AfterPay

  • Zip

  • Affirm

  • WeGetFinancing

  • Jifiti

  • Skeps

  • Link Money

    PSE

  • OXXO

  • MercadoPago

  • SPEI

  • Pago Efectevio

  • Infonet

  • Pago al Paso

  • Pago Efectivo

  • Pay Cash

  • Pay Valida

  • Yape

  • au PAY

  • Dana

  • dBarai

  • DragaonPay

  • DuitNow

  • Kobini

  • LINE Pay

  • Lpay

  • Merpay

  • Momo wallet

  • Naver Pay

  • NPP

  • Payco

  • PayPay

  • PromptPay

  • QRIS

  • Rakuten Pay

  • SSGPAY

  • TOSS Payments

  • Touch 'n Go

  • TrueMoney

  • UPI

  • ZaloPay

  • CLAVE

  • CoDi

  • Daviplata

  • Efecty

  • Nequi

  • Pay4Fun

  • Sencillito

  • WebPay

  • Rapipago

  • Cobro Express

  • Pago Facil

  • PicPay

  • NuPay

  • Sencillito

  • Khipu

  • Servipag

  • Sinpe

  • Sinpe Movil

  • PuntoXpress

  • Akisi

  • Practipago

  • Wepa

  • Zimple

  • Sigo Money

  • Billetera Personal

  • Wally

  • Giros Claro

  • BCP

  • Payvalida

  • Redpagos

  • 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

    methodType

    string

    Transaction Type: 0. 'payment' = Regular Payment 1. 'tokenize' = Tokenization 2. 'authorize' = Authorization 3. 'credit' = Credit transaction

    Acceptable Use Policyarrow-up-right
    Google Pay API Terms of Servicearrow-up-right
    [
      {
        "name": "PayPal",
        "description": "Paypal Production",
        "type": "wallet",
        "confirmationPrefix": "145",
        "isPartialRefundSupported": true,
        "environment": "Production",
        "providerId": "FLTBxa5D/z/gmjdNeTm0IXNVOOaiyhQBqRrIaTs1kcI="
      }
    ]
    {
        // Response
    }
    {
    	"paymentMethods": [
    		{
    		  "id": 3,
    		  "name": "credit-card",
    		  "type": "credit-card"
    		},
    		{
    		  "id": 4,
    		  "name": "paypal",
    		  "type": "wallet"
    		},		
    	]
    }
    {
        // Response
    }

    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

    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

    startDate*

    string

    2024-01-01T12:00:00Z

    endDate*

    string

    2024-02-01T12:00:00Z

    parmeter

    KeyValue

    any custom data to filter by: E.G: "name":"Joe"

    operator

    string

    See here our Authentication page
    See our payment flow chart here
    See our transaction status flow here
    Transaction Model
    Transaction Model
    {
      "TransactionNumber": "14a4334a32c852aeb0cfae52cbff1314649da7f175a8e140b35c147c",
      "date": "2019-12-19T09:47:59.105Z",
      "amount": "1234.56",
      "currency": "USD",
      "status": 0,
      "statusName": "Transaction Approved",
      "pos": "POS 3, Branch Tel Aviv",
      "posReceiptsEndpoint": "http://pay.sensepass-api.com/api/invoicesReceipts/receipt/save/hofai3478o8o78o4s849j3920ckj",
      "posData": {
        "foo": "bar",
        "hello": [
          "world"
        ]
      },
      "businessName": "Coffee Bar",
      "businessId": 144,
      "timeoutDate": "2019-12-19T09:47:59.105Z",
      "paymentMethodData": {
        "PaymentType": "Bit",
        "directAppLinks": {
          "iOSLink": "paymentsBIT://www.bitpay.co.il/app/bitcom-info",
          "androidLink": "intent://www.bitpay.co.il/app/bitcom-info;scheme=bit;package=com.bnhp.payments.paymentsapp;end",
          "qrURL": "https://www.bitpay.co.il/app/bitcom-info"
        }
      },
      "SMS": "Sent",
      "paymentCommit": {
        "messsage": "Payment commit is enabled for this transaction",
        "isPaymentCommitted": false,
        "secondsToCommit": 60,
        "commitLink": "https://pay.sensepass-api.com/api/transactions/commitPayment/ec2dc489d161aa27a803f48bcf5ffcf"
      },
      "products": [
        {
          "name": "Coffee",
          "quantity": 2,
          "amount": 100,
          "discount": 0,
          "posIdentifier": "1234A"
        },
        {
          "name": "Beer",
          "quantity": 1,
          "amount": 600,
          "discount": 0,
          "posIdentifier": "1234B"
        }
      ],
      "productSumMismatch": true,
      "confirmations": [
        {
          "paymentType": "Regular",
          "confirmationNumber": "063-d9j09YsY1",
          "fullConfirmationCode": "063-d9j09YsY1",
          "dateApproval": "2019-12-19T09:47:59.105Z",
          "installments": 1,
          "paymentMethodName": "PayPal",
          "approvedBy": "PayPal",
          "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
          "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
          "authNumber": "123213dsf13111",
          "referenceNumber": "1778298289",
          "acquirer": "Visa",
          "voucher": "yyyAbnlmlfm1323",
          "lastFourDigits": "8858",
          "sensePassReferenceId": "34e209ea8b24cc831cf"
        }
      ],
      "confirmation": {
        "paymentType": "Regular",
        "confirmationNumber": "063-d9j09YsY1",
        "fullConfirmationCode": "063-d9j09YsY1",
        "dateApproval": "2019-12-19T09:47:59.105Z",
        "installments": 1,
        "paymentMethodName": "PayPal",
        "approvedBy": "PayPal",
        "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
        "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
        "authNumber": "123213dsf13111",
        "referenceNumber": "1778298289",
        "acquirer": "Visa",
        "voucher": "yyyAbnlmlfm1323",
        "lastFourDigits": "8858",
        "sensePassReferenceId": "34e209ea8b24cc831cf"
      },
      "transactionPage": {
        "iOSLink": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "androidLink": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "qrURL": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872"
      },
      "balance": 0,
      "clientEmail": "[email protected]",
      "clientPhoneNumber": "+12545870720",
      "paymentProcessRequestID": "06c20474-bf85-4310-aa72-b39e40f9c7e2",
      "extraDetails": {
        "addressData": {
          "billingAddress": {
            "firstName": "John",
            "lastName": "Doe",
            "country": "USA",
            "state": "NY",
            "street": "Baker",
            "city": "New York",
            "zipcode": "102030"
          }
        }
      }
    }

    object

    securityCode.errors.securityCodeLength

    object

    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

    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

    Create a transaction

    API for creating new payment requests, this API create Transaction Entity.

    hashtag
    API Interface

    hashtag
    Creating a new transaction object (Payment Request)

    POST https://api.sensepass.com/api/transactions/init

    This API creates new payment request based on the fields below.

    Authentication Request Body fields

    hashtag
    Request Body

    Name
    Required
    Type
    Description

    See Transactions entity schema:

    hashtag
    Examples

    Basic request example to create a new transaction.

    See our full examples for creating transactions on the left menu.

    hashtag
    Schema

    Full Transaction Entity schema:

    hashtag
    Flow Chart

    hashtag
    Transaction Status Flow

    Commit Transaction

    Backend verification step to complete the payment

    triangle-exclamation

    This API call must be performed from your backend and not through the JS in the frontend.

    hashtag
    Backend verification step to complete the payment

    POST https://api.sensepass.com/api/transactions/:transactionNumber/commit

    Authentication options:

    Device ID / Merchant API Key + Branch Number / Branch API key

    hashtag
    Path Parameters

    Name
    Type
    Description
    circle-info

    "pay" callback from the SDK contains the transaction number for this API call

    hashtag
    Request Body

    Name
    Type
    Description

    hashtag
    Example - Manual Capture Response

    hashtag
    Example - Tokenize Response

    hashtag
    Example - Authorization Response

    hashtag
    Example - Decline

    Express Pay Widget Demojs.sandbox.sensepass.comchevron-right
    {
        // Response
    }
    {
        // Response
    }
    '=', '!=', '<', '<=', '>', '>='
    {
        "startDate": "2024-01-01T00:00:00Z",
        "endDate": "2024-06-01T00:00:00Z",
        "apikey": "myApiKey",
        "pagination": {
            "limit": 2,
            "offset": 2
        },
        "orderBy": "date",
        "filter": [{"accountId": "1000635", "operator": "!="}, {"age": "10", "operator": ">"}  ]    
    }
    {
        "pagination": {
            "returnedRecords": 2,
            "totalRecords": 133,
            "isPartialResult": true
        },
        "data": [
            {
                "TransactionNumber": "25d0ebc6ed346c7a364ebdb1dbe625455365841c4aee2657bbed7e1f",
                "date": "2024-01-01T17:19:24.826Z",
                "amount": "1",
                "baseAmount": "1",
                "currency": "ILS",
                "status": 5,
                "statusName": "Transaction Approved",
                "timeoutDate": "2024-01-01T17:34:27.410Z",
                "maxInstallments": 1,
                "reason": null,
                "methodType": 4,
                "businessId": "9574846265849362",
                "businessName": "Test Business",
                "pos": "Test Business POS",
                "businessOwnerPhone": "123456789",
                "businessCountry": "Israel",
                "businessCity": "Tel Aviv",
                "businessStreet": "Menachem Begin",
                "businessHouseNumber": 144,
                "businessAddress": "Tel Aviv, Menachem Begin 144",
                "locale": {
                    "language": "en"
                },
                "metadata": {
                    "receiptSaveUid": "5d46842c-314a-4c61-8da5-75daaa7f17fc",
                    "transactionEventId": "1d367841-3cf8-6471-9844-c0269cff657d"
                },
                "products": [],
                "productsSum": {
                    "allAmountSum": "0.00",
                    "allTipSum": "NaN",
                    "allVatSum": "0.00",
                    "allTotalSum": "0.00",
                    "allDiscountSum": "0.00",
                    "allDiscountedAmountSum": "0.00"
                },
                "paymentDetails": {
                    "type": "Manual_Capture",
                    "paymentMethod": "Bit"
                },
                "paymentMethodImages": {},
                "clientPhoneNumber": null,
                "clientEmail": null
            },
            {
                "TransactionNumber": "e648214bfe164ef4ee3a36c01212ed35b12cd4d3e7cc950f7c915c5d",
                "date": "2024-01-02T10:32:55.882Z",
                "amount": "1",
                "baseAmount": "1",
                "currency": "ILS",
                "status": 5,
                "statusName": "Transaction Approved",
                "timeoutDate": "2024-01-02T10:47:58.651Z",
                "maxInstallments": 1,
                "reason": null,
                "methodType": 4,
                "businessId": "9574846265849362",
                "businessName": "Test Business",
                "pos": "Test Business POS",
                "businessOwnerPhone": "123456789",
                "businessCountry": "Israel",
                "businessCity": "Tel Aviv",
                "businessStreet": "Menachem Begin",
                "businessHouseNumber": 144,
                "businessAddress": "Tel Aviv, Menachem Begin 144",
                "locale": {
                    "language": "en"
                },
                "metadata": {
                    "receiptSaveUid": "8a4903c5-3674-496c-bc6e-af54e8a8a36d",
                    "transactionEventId": "d3bc5cbc-9d35-8471-b43d-984d13be71da"
                },
                "products": [],
                "productsSum": {
                    "allAmountSum": "0.00",
                    "allTipSum": "NaN",
                    "allVatSum": "0.00",
                    "allTotalSum": "0.00",
                    "allDiscountSum": "0.00",
                    "allDiscountedAmountSum": "0.00"
                },
                "paymentDetails": {
                    "type": "Manual_Capture",
                    "paymentMethod": "Bit"
                },
                "paymentMethodImages": {},
                "clientPhoneNumber": null,
                "clientEmail": null
            }
        ]
    }
    "minLengthStart": "Must be Over",
    "minLengthEnd": "Digits",
    "maxLengthStart": "Must be Under",
    "maxLengthEnd": "Digits",
    "lengthsStart": "Must be:",
    "lengthsSplit": "or",
    "lengthsEnd": "Digits"
    Logo
    status/amount/date/transactionNumber/methodType
    "invalidDateFormat": "Date Invalid, Should Be MM/YY",
    "monthRange": "Month Should Be Between 1 - 12",
    "yearExpiration": "The Year You've Set Expired",
    "monthExpiration": "The Month You've Set Expired This Year"
    "lengthShouldBe": "must be",
    "digits": "digits"

    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/webhooks 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

    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:

    receipt

    object

    Used for present receipt for the consumer after the payment

    See receipt object entity:

    emailConfig.paymentRequest.language

    string

    [ en, he, ru ]

    receiptNotifications

    object

    Receipt Notifications

    entity:

    products

    object

    Products information

    See product object entity:

    metadata

    object

    a unique array with a key-value pair for displaying information on SensePass Dashboard (backoffice)

    billingAddress

    object

    Customer's billing address entity:

    shippingAddress

    object

    Customer's shipping address entity:

    paymentDetails

    object

    Payment details Input

    entity:

    hideAmount

    boolean

    Determines whether the transaction amount is displayed on the payment page or not

    additionalData

    object

    Any additional data that may be sent to the processor

    approvalMessage

    string

    Message to appear in the header of confirmation page

    authorizationText

    string

    Message to appear on tokenized transactions . default value is:

    orderId

    string

    Order ID you can send which will be shown on the payment request/invoice emails (according to Merchant/Location Settings).

    invoiceId

    string

    Invoice ID you can send which will be shown on the payment request/invoice emails (according to Merchant/Location Settings).

    level

    object

    Payment method Level 2 or 3 requirements:

    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

    See here our Authentication page
    See our payment flow chart here
    See our transaction status flow here
    Transaction Model
    Transaction Model

    Determines if Amount represents in cents or not

    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

    receipt

    Object

    posData

    Object

    Any object/array you'd like to receive using the callback URL

    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

    {
      "TransactionNumber": "14a4334a32c852aeb0cfae52cbff1314649da7f175a8e140b35c147c",
      "date": "2019-12-19T09:47:59.105Z",
      "amount": "1234.56",
      "currency": "USD",
      "status": 0,
      "statusName": "Transaction Approved",
      "pos": "POS 3, Branch Tel Aviv",
      "posReceiptsEndpoint": "http://pay.sensepass-api.com/api/invoicesReceipts/receipt/save/hofai3478o8o78o4s849j3920ckj",
      "posData": {
        "foo": "bar",
        "hello": [
          "world"
        ]
      },
      "businessName": "Coffee Bar",
      "businessId": 144,
      "timeoutDate": "2019-12-19T09:47:59.105Z",
      "paymentMethodData": {
        "PaymentType": "Bit",
        "directAppLinks": {
          "iOSLink": "paymentsBIT://www.bitpay.co.il/app/bitcom-info",
          "androidLink": "intent://www.bitpay.co.il/app/bitcom-info;scheme=bit;package=com.bnhp.payments.paymentsapp;end",
          "qrURL": "https://www.bitpay.co.il/app/bitcom-info"
        }
      },
      "SMS": "Sent",
      "paymentCommit": {
        "messsage": "Payment commit is enabled for this transaction",
        "isPaymentCommitted": false,
        "secondsToCommit": 60,
        "commitLink": "https://pay.sensepass-api.com/api/transactions/commitPayment/ec2dc489d161aa27a803f48bcf5ffcf"
      },
      "products": [
        {
          "name": "Coffee",
          "quantity": 2,
          "amount": 100,
          "discount": 0,
          "posIdentifier": "1234A"
        },
        {
          "name": "Beer",
          "quantity": 1,
          "amount": 600,
          "discount": 0,
          "posIdentifier": "1234B"
        }
      ],
      "productSumMismatch": true,
      "confirmations": [
        {
          "paymentType": "Regular",
          "confirmationNumber": "063-d9j09YsY1",
          "fullConfirmationCode": "063-d9j09YsY1",
          "dateApproval": "2019-12-19T09:47:59.105Z",
          "installments": 1,
          "paymentMethodName": "PayPal",
          "approvedBy": "PayPal",
          "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
          "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
          "authNumber": "123213dsf13111",
          "referenceNumber": "1778298289",
          "acquirer": "Visa",
          "voucher": "yyyAbnlmlfm1323",
          "lastFourDigits": "8858",
          "sensePassReferenceId": "34e209ea8b24cc831cf"
        }
      ],
      "confirmation": {
        "paymentType": "Regular",
        "confirmationNumber": "063-d9j09YsY1",
        "fullConfirmationCode": "063-d9j09YsY1",
        "dateApproval": "2019-12-19T09:47:59.105Z",
        "installments": 1,
        "paymentMethodName": "PayPal",
        "approvedBy": "PayPal",
        "providerId": "uGfNuwEGiP18SUnTUEo1/atTdesDnhDhZ/8i7G9NAEg=",
        "requestID": "a4dbf66e-d3f1-4a29-baf7-2591424a9a0c",
        "authNumber": "123213dsf13111",
        "referenceNumber": "1778298289",
        "acquirer": "Visa",
        "voucher": "yyyAbnlmlfm1323",
        "lastFourDigits": "8858",
        "sensePassReferenceId": "34e209ea8b24cc831cf"
      },
      "transactionPage": {
        "iOSLink": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "androidLink": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "qrURL": "https://mbeta.sensepass-api.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
        "consumerPage": {
                "regular": "https://pay.sandbox.sensepass.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872",
                "medium": "https://pay.sandbox.sensepass.com/orderSummary/027e4e48d59fdbe83f5a78cab62a53c676b7f111fa9d0ee0a36d1872?viewMode=medium"
            }
      },
      "balance": 0
    }
    {
        // Response
    }
    {
        // Response
    }
    {
      "timeOut": 600,
      "amount": 200,
      "isCent": true,
      "currency": "USD",
      "deviceId": "2ooeww5ufzg3nkuf8a10gu5n695yolixlbgb042o03to9bxfkr7t815i5epu8o58jv1rznif3o1tr6xsb1rm"
    }
    
    {
        "success": true,
        "transactionNumber": "a4e22734c3f0bae26d8b6e422f71a221f3c7b55c8619e4f338c689f9",
        "transactionStatus": "TransactionApproved",
        "paymentDetails": {
            "type": "Tokenize",
            "paymentMethod": "Credit Card",
            "created": "2023-08-21T13:21:06.407Z",
            "token": "nraag50tyb3i7woz4vt76x4drt72ejs9yjgm7ia3xoc8nx3ywpxxtrzk0dgvkw41ozkqhqi6ozlidmj7i37c4th3db08423fz1evpzpcheoplmvbugen5xf9vxn9i2phlk9hviq3me5a4rko0jykcpj7dzj3337uxzrovff8w3orwrag6kq0luyqgpadts53tazllt70guj1kiuibmgh8mw3m0jeunq7bxjf9cdtnksdgat5gfgwm9umgvjb9ddqp"
        },
        "confirmation": {
            "approvedBy": "Cardknox Sandbox",
            "dateApproval": "2023-08-21T13:21:06.434Z",
            "approvalDate": "2023-08-21T13:21:06.434Z",
            "paymentType": "Regular",
            "sensePassReferenceId": "av7e3z4rgqa9jhaqjlqs",
            "paymentMethodCode": 25,
            "paymentMethodName": "Credit Card",
            "paymentMethodLogo": "https://pay.sandbox.sensepass.com/publicAssets/payment-method/cardknox.png",
            "sourceProvider": {
                "name": "Credit Card",
                "code": 1
            },
            "providerId": "6wMjGG7cJ5KPTvzLOXKTIJjwdREImIsJGNpmGckfBiU=",
            "authNumber": "fh7s94jf8s",
            "acquirer": "hfs7048f4",
            "voucher": "hf7s08opdg",
            "referenceNumber": "ajsh795giyd",
            "amount": 0,
            "confirmationNumber": "174-30243A",
            "fullConfirmationCode": "174-30243A",
            "providerName": "Cardknox Sandbox",
            "cardType": "VISA",
            "lastFourDigits": "1111",
            "cardMask": "411111******1111",
            "expiration": "1234",
            "cardExpiration": "1234",
            "installments": 1,
            "paymentMethod": "Credit Card",
            "Credit Card": {
                "cardType": "VISA",
                "lastFourDigits": "1111",
                "mask": "411111******1111",
                "expiration": "1234"
            },
            "extraDetails": {
                "email": "[email protected]"
            }
        }
    }
    {
        "success": true,
        "transactionNumber": "a4e22734c3f0bae26d8b6e422f71a221f3c7b55c8619e4f338c689f9",
        "transactionStatus": "TransactionApproved",
        "paymentDetails": {
            "type": "Manual_Capture"
        },
        "confirmation": {
            "approvedBy": "Cardknox Sandbox",
            "dateApproval": "2023-08-21T13:21:06.434Z",
            "approvalDate": "2023-08-21T13:21:06.434Z",
            "paymentType": "Regular",
            "sensePassReferenceId": "av7e3z4rgqa9jhaqjlqs",
            "paymentMethodCode": 25,
            "paymentMethodName": "Credit Card",
            "paymentMethodLogo": "https://pay.sandbox.sensepass.com/publicAssets/payment-method/cardknox.png",
            "sourceProvider": {
                "name": "Credit Card",
                "code": 1
            },
            "providerId": "6wMjGG7cJ5KPTvzLOXKTIJjwdREImIsJGNpmGckfBiU=",
            "authNumber": "fh7s94jf8s",
            "acquirer": "hfs7048f4",
            "voucher": "hf7s08opdg",
            "referenceNumber": "ajsh795giyd",
            "amount": 0,
            "confirmationNumber": "174-30243A",
            "fullConfirmationCode": "174-30243A",
            "providerName": "Cardknox Sandbox",
            "cardType": "VISA",
            "lastFourDigits": "1111",
            "cardMask": "411111******1111",
            "expiration": "1234",
            "cardExpiration": "1234",
            "installments": 1,
            "paymentMethod": "Credit Card",
            "Credit Card": {
                "cardType": "VISA",
                "lastFourDigits": "1111",
                "mask": "411111******1111",
                "expiration": "1234"
            },
            "extraDetails": {
                "email": "[email protected]"
            }
        }
    }
    {
        "success": true,
        "transactionNumber": "a4e22734c3f0bae26d8b6e422f71a221f3c7b55c8619e4f338c689f9",
        "transactionStatus": "TransactionApproved",
        "paymentDetails": {
            "type": "Tokenize",
            "paymentMethod": "Credit Card",
            "created": "2023-08-21T13:21:06.407Z",
            "token": "nraag50tyb3i7woz4vt76x4drt72ejs9yjgm7ia3xoc8nx3ywpxxtrzk0dgvkw41ozkqhqi6ozlidmj7i37c4th3db08423fz1evpzpcheoplmvbugen5xf9vxn9i2phlk9hviq3me5a4rko0jykcpj7dzj3337uxzrovff8w3orwrag6kq0luyqgpadts53tazllt70guj1kiuibmgh8mw3m0jeunq7bxjf9cdtnksdgat5gfgwm9umgvjb9ddqp"
        },
        "confirmation": {
            "approvedBy": "Cardknox Sandbox",
            "dateApproval": "2023-08-21T13:21:06.434Z",
            "approvalDate": "2023-08-21T13:21:06.434Z",
            "paymentType": "Regular",
            "sensePassReferenceId": "av7e3z4rgqa9jhaqjlqs",
            "paymentMethodCode": 25,
            "paymentMethodName": "Credit Card",
            "paymentMethodLogo": "https://pay.sandbox.sensepass.com/publicAssets/payment-method/cardknox.png",
            "sourceProvider": {
                "name": "Credit Card",
                "code": 1
            },
            "providerId": "6wMjGG7cJ5KPTvzLOXKTIJjwdREImIsJGNpmGckfBiU=",
            "authNumber": "fh7s94jf8s",
            "acquirer": "hfs7048f4",
            "voucher": "hf7s08opdg",
            "referenceNumber": "ajsh795giyd",
            "amount": 0,
            "confirmationNumber": "174-30243A",
            "fullConfirmationCode": "174-30243A",
            "providerName": "Cardknox Sandbox",
            "cardType": "VISA",
            "lastFourDigits": "1111",
            "cardMask": "411111******1111",
            "expiration": "1234",
            "cardExpiration": "1234",
            "installments": 1,
            "paymentMethod": "Credit Card",
            "Credit Card": {
                "cardType": "VISA",
                "lastFourDigits": "1111",
                "mask": "411111******1111",
                "expiration": "1234"
            },
            "extraDetails": {
                "email": "[email protected]"
            }
        }
    }
    {
        "success": true,
        "transactionNumber": "cb3934c8e1be2f1c0bd171105e1b5a4e69a133dd2788d8cf02320142",
        "transactionStatus": "TransactionApproved",
        "paymentDetails": {
            "type": "Authorize",
            "created": "2024-01-03T11:01:10.403Z",
            "token": "o7nmy73bofjrioyuinvdu49qjm00xgb98c7j7d5fpcqm6t9lb7zc6pzpeckp7oron4e336ee4ad9hr650ktz2qt1glbfaf8mp2mvc79negly0rvlpx3pyi7a7696lac3bc29ytb7g6af8a8os1cbvgxf18xk8ozh0lyn7p0myqvurn786jxyf8f0vjhdsgx2840t4esry5nfaf6c93jgaj73iqmpypzsvdolyd0s7v0hh2u4j08u8pmol83xr7y1",
            "authNumber": null,
            "acquirer": null,
            "voucher": null,
            "referenceNumber": null,
            "requestID": "10126600836",
            "approvedBy": "Cardknox Sandbox"
        }
    }
    {
        "success": false,
        "transactionNumber": "02b80210dce0b648384e512554a1688b66734c25100b0d3914d93375",
        "transactionStatus": "TransactionDeclined",
        "error": "Invalid Card"
    }
    Metadata Model
    Product Model
    Receipt Model
    Receipt Notifications
    Metadata Model
    Customer Billing Details Model
    Customer Shipping Details Model
    Payment Details Model
    Additional Data Model
    Payment Method Level Model
    Transaction Model
    Invoice Model
    Receipts Model
    Product Model
    I authorize {{businessName}} to process future payments