PointOfSalesRefunds img

The APIs to manage point of sales (pos) refunds.
You can use these APIs to : -

      - initiate(create) a refund,
      - query a refund details,
      - capture a refund,
      - cancel a refund,
      - query list of refunds associated with a payment,

APIDescription
GET api/pos/refund/create?amount={amount}&currencyCode={currencyCode}&paymentId={paymentId}&refundOrderId={refundOrderId}&accessToken={accessToken}&bioCode={bioCode}

Create a refund

POST api/pos/refund/create

Create a refund by a POST request

GET api/pos/refund/details?refundId={refundId}&accessToken={accessToken}&bioCode={bioCode}

Query the refund details

GET api/pos/refunds?paymentId={paymentId}&accessToken={accessToken}&bioCode={bioCode}

Gets a list of refundsIds associated with the paymentId

GET api/pos/refund/capture?refundId={refundId}&accessToken={accessToken}&bioCode={bioCode}

Capture a refund.

GET api/pos/refund/cancel?refundId={refundId}&accessToken={accessToken}&bioCode={bioCode}

Cancel a refund.


PointOfSalesPayments img

The APIs to manage point of sales (pos) payments.
You can use these APIs to : -

      - request the API to generate qrCode,
      - initiate a new payment,
      - check payment status. The possible payment status are (Initiated,Paired,IssuedToUser,Reserved,CancelledByUser,CancelledByClient,CancelledByMobilePay,ExpiredAndCancelled,Captured,RejectedByMobilePayDueToAgeRestrictions),
      - capture a payment (Note: You can only capture a payment when its status is Reserved),
      - query a payment details,
      - prepare a payment,
      - make payment ready,
      - or cancel a payment (Note: You can cancel at a payment at any point but not when it's status is captured. If it is captured you can only refund.

MobilePay has two types of Payments flow.
  • Direct Payment flow

    This payment flow you start with

        - initiate a new payment (api/pos/payment/start),
        - check payment status (api/pos/payment/status). The possible payment status are (Initiated,Paired,IssuedToUser,Reserved,CancelledByUser,CancelledByClient,CancelledByMobilePay,ExpiredAndCancelled,Captured,RejectedByMobilePayDueToAgeRestrictions),
        - capture a payment (api/pos/payment/capture) (Note: You can only capture a payment when its status is Reserved),
  • Other Payment flow

    This payment flow you start with

        - prepare a new payment (api/pos/payment/prepare),
        - make a prepare payment ready (api/pos/payment/ready),
        - check payment status (api/pos/payment/status). The possible payment status are (Initiated,Paired,IssuedToUser,Reserved,CancelledByUser,CancelledByClient,CancelledByMobilePay,ExpiredAndCancelled,Captured,RejectedByMobilePayDueToAgeRestrictions),
        - capture a payment (api/pos/payment/capture) (Note: You can only capture a payment when its status is Reserved),

The payment flow that I would recommend to use is the first one (Direct Payment Flow).
NOTE: The Point of Sale is responsible for cancelling a payment that has been initiated but not completed. Otherwise you can't state a new payment.

APIDescription
GET api/pos/terminal/qrcode?terminalId={terminalId}&accessToken={accessToken}&bioCode={bioCode}

Get the QrCode image link for the terminal

GET api/pos/payment/start?orderId={orderId}&amount={amount}&terminalId={terminalId}&currencyCode={currencyCode}&accessToken={accessToken}&bioCode={bioCode}

Starts a payment by initiating a new payment based on a terminalId.
Upon calling this API, It will read the merchant information, terminal information from Integra.
NOTE: A payment will only be initiated if there is no any active payment on the Pos

GET api/pos/payment/start/byPosId?orderId={orderId}&amount={amount}&posId={posId}&currencyCode={currencyCode}&accessToken={accessToken}&bioCode={bioCode}

Starts a payment by initiating a new payment based on a posId.
Upon calling this API, It will read the merchant information from Integra.
NOTE: A payment will only be initiated if there is no any active payment on the Pos

POST api/pos/payment/start

Starts a payment by initiating a new payment based on the terminalId using POST method.
Upon calling this API, It will read the merchant information and terminal information from Integra.
NOTE: A payment will only be initiated if there is no any active payment on the Pos

POST api/pos/payment/start/byPosId

Starts a payment by initiating a new payment based on the posId using POST method.
Upon calling this API, It will read the merchant information from Integra.
NOTE: A payment will only be initiated if there is no any active payment on the Pos

GET api/pos/payment/prepare?orderId={orderId}&terminalId={terminalId}&accessToken={accessToken}&bioCode={bioCode}

The prepared payment flow makes the payment accessible to the customer on creation, pending an amount.
Only when the payment is readied will the customer be able to make the approval.
As an example, this flow could be used to start a payment before the payment amount is known.This could for instance be because goods are still being scanned at a cash register or to support loyalty flows.
When using this payment flow, you will always need to call the api pos/payment/ready after preparing a payment. A payment will only be prepare if there is no any active payment on the Pos

POST api/pos/payment/prepare

The prepared payment flow makes the payment accessible to the customer on creation, pending an amount using a POST method.
Only when the payment is readied will the customer be able to make the approval.
As an example, this flow could be used to start a payment before the payment amount is known.This could for instance be because goods are still being scanned at a cash register or to support loyalty flows.
When using this payment flow, you will always need to call the api pos/payment/ready after preparing a payment. A payment will only be prepare if there is no any active payment on the Pos

GET api/pos/payment/ready?orderId={orderId}&amount={amount}&terminalId={terminalId}&currencyCode={currencyCode}&paymentId={paymentId}&accessToken={accessToken}&bioCode={bioCode}

Makes a payment ready for the user approval.
NOTE: A payment will only be ready if it has been prepare first

POST api/pos/payment/ready

Makes a payment ready for the user approval using POST method.
NOTE: A payment will only be ready if it has been prepare first

GET api/pos/payment/details?paymentId={paymentId}&accessToken={accessToken}&bioCode={bioCode}

Query the payment details.

GET api/pos/payments?state={state}&orderId={orderId}&terminalId={terminalId}&accessToken={accessToken}&bioCode={bioCode}

Gets a list of active payments (ie. neither captured, rejected, cancelled, or reversed) if no paymentState is provided.
Can also return only captured payments if the Captured paymentState is explicitly provided.
You can use this also in the case of an unexpected restart of the client where the payment flow cannot be continued it might be necessary to cancel the active payment since there can be only one active payment on a PoS. If the paymentId of the active payment is lost it can be retrieved by calling API.

GET api/pos/payment/status?paymentId={paymentId}&accessToken={accessToken}&bioCode={bioCode}

Gets a payment status.
NOTE:The possible status values are:

    1. Initiated
    2. Prepared
    3. Paired
    4. IssuedToUser
    5. Reserved

      This means, the user has approved the payment ready to capture

    6. Captured
    7. CancelledByUser
    8. CancelledByClient
    9. CancelledByMobilePay
    10. ExpiredAndCancelled
    11. RejectedByMobilePayDueToAgeRestrictions

GET api/pos/payment/capture?paymentId={paymentId}&amount={amount}&accessToken={accessToken}&bioCode={bioCode}

Capture a payment.
NOTE: You can only capture a payment with status as Reserved

GET api/pos/payment/cancel?paymentId={paymentId}&accessToken={accessToken}&bioCode={bioCode}

Cancel a payment.
NOTE : You can cancel a payment at any state but not when you have already Capture a payment.

GET api/pos/payment/id/retrieve/bystate?orderId={orderId}&state={state}&accessToken={accessToken}&bioCode={bioCode}

In case the paymentId has been lost it can be retrieved by calling this API.
This works only if the payment status that you supply is Captured

GET api/pos/payment/id/retrieve/byterminal?orderId={orderId}&terminalId={terminalId}&paymentState={paymentState}&accessToken={accessToken}&bioCode={bioCode}

In case the paymentId has been you can use the terminalId and orderId to retrieve the paymentId.
This API will read the merchant information and terminal point of sale information from Integra

GET api/pos/payment/id/retrieve/byposId?paymentState={paymentState}&orderId={orderId}&posId={posId}&accessToken={accessToken}&bioCode={bioCode}

In case the paymentId has been you can use the posId and orderId to retrieve the paymentId.
This API will only read the merchant information from Integra


PointOfSalesManagement

The APIs to manage point of sales (pos).
You can request to crate a long lived an access token, reset access token, create pos, delete pos, get point of sale information, get the list of sotersIds, store information.

NOTE: If you would like to update the Pos information, you will need first to delete a PoS and then create it.

If you would like a specific return result type, add the accept type header value. For example to receive result as JSON, Add a request header Accept, application/json.

APIDescription
GET api/pos/manage/token?bioCode={bioCode}

Creates a long lived merchant AccessToken to be used to access MobilePay Payment API.
NOTE : accessToken will be only created if the MerchantInformation's accessToken value is empty

GET api/pos/manage/token/reset?bioCode={bioCode}&previousAccessToken={previousAccessToken}

Resets a long lived merchant AccessToken to be used to access MobilePay Payment API.
NOTE: To reset an accessToken, you will always need to provide the previousAccessToken

POST api/pos/manage/token

Creates a long lived merchant AccessToken using a POST REQUEST

GET api/pos/manage/create?terminalId={terminalId}&accessToken={accessToken}&bioCode={bioCode}

Creates a Point of Sale.
NOTE: You will be able to create a Point of Sale if the terminal's PoSId value on Integra is empty.

POST api/pos/manage/create

Creates a Point of Sale - POST method.
NOTE: You will be able to create a Point of Sale if the terminal's PoSId value on Integra is empty.

GET api/pos/manage/delete?terminalId={terminalId}&accessToken={accessToken}&bioCode={bioCode}

Deletes a point of sale PosId terminal from MobilePay gateway

DELETE api/pos/manage/delete?terminalId={terminalId}&accessToken={accessToken}&bioCode={bioCode}

Deletes a point of sale PosId terminal from MobilePay gateway

GET api/pos/manage/terminal/information?terminalId={terminalId}&accessToken={accessToken}&bioCode={bioCode}

Get information about the terminal Pos from MobilePay gateway

GET api/pos/manage/stores?accessToken={accessToken}&bioCode={bioCode}

Get the StoresIds of the supplied merchant bioCode and access token.

GET api/pos/manage/store?storeId={storeId}&accessToken={accessToken}&bioCode={bioCode}

Get the Store information

GET api/pos/manage/checkInStatus/byposId?posId={posId}&accessToken={accessToken}&bioCode={bioCode}

Looks up information about the user currently checked in at a point of sale using a posId.

GET api/pos/manage/checkInStatus/byterminalId?terminalId={terminalId}&accessToken={accessToken}&bioCode={bioCode}

Looks up information about the user currently checked in at a point of sale using a terminalId.