Check sale

Introduction

Check sale is initiated through HTTPS POST request by using URLs and the parameters.
Check sale is used for security purposes and allows SBC to compare the data sent by Connecting Party’s app with the data stored on Connecting Party’s server.
It is highly recommended to respond with the actual information stored on Connecting Party’s server.

API URLs

Connecting Party Server

https://proxy.connectingpartyserver.com/sale/{invoiceId}/check

Request Parameters

Parameter Name

Description

Value

consumer


Necessity: Required
Type: Object

consumer.device


Necessity: Required
Type: Object

consumer.device.serialNumber

Consumer’s device serial number.

Necessity: Required
Type: String
Length: 1-50

session


Necessity: Required
Type: Object

session.accessToken

Consumer’s access token key sent by Connecting Party’s app.

Necessity: Required
Type: String
Length: 32-128

session.nonce

Value sent by Connecting Party’s app.

Necessity: Required
Type: String
Length: 32-128

session.signature

Value sent by Connecting Party’s app.

Necessity: Required
Type: String
Length: 32-128

session.token

The session token of sale transaction.

Necessity: Required
Type: String
Length: 16-36

sourceOfFunds

Necessity: Optional
Type: Object

sourceOfFunds.reference

Necessity: Optional
Type: Object

sourceOfFunds.reference.clientCardId

The source card reference identifier (on client side) if sent in Perform sale request.

Necessity: Optional
Type: String
Length: 1-128

Success Response Parameters

Parameter Name

Description

Value

invoiceId

Sale transaction identifier

Necessity: Required
Type: String

session


Necessity: Required
Type: Object

session.checkSignature

Checksum generated by hmac-sha1 (see Signature computation) from the concatenation of the consumer.device.serialNumber, session.nonce, endpointId, invoiceId, sourceOfFunds.reference.serverCardId (if present).

Necessity: Required
Type: String

session.nonce

Unique random string generated by Connecting Party’s server in Initiate sale response.

Necessity: Required
Type: String

session.token

The session token of sale transaction.

Necessity: Required
Type: String

consumer.email

Сonsumer’s email address, if sent in original card mapping transaction.

Necessity: Optional
Type: String

sourceOfFunds

Necessity: Optional
Type: Object

sourceOfFunds.reference

Necessity: Optional
Type: Object

sourceOfFunds.reference.serverCardId

The source card reference identifier (on server side).

Necessity: Optional
Type: String

transaction.currency

Upper case letters (ISO 4217 alpha code).

Necessity: Optional
Type: String

transaction.randomSumCentis

Random sum amount (for random sum check), 1.00 EUR = 100 centis.

Necessity: Optional
Type: Integer

Fail Response Parameters

Parameter Name

Description

Value

error

Type: Object

error.cause

Cause of the error. Possible values: FILTERED, INVALID_REQUEST, SERVER_FAILED, SERVER_UNAVAILABLE.

Type: Enum

error.code

The unique error code.

Type: String

error.message

Description of the error.

Type: String

invoiceId

Sale transaction identifier.

Type: String

Request Example

{
  "consumer": {
    "device": {
      "serialNumber": "string"
    }
  },
  "session": {
    "accessToken": "string",
    "nonce": "string",
    "signature": "string",
    "token": "string"
  },
  "sourceOfFunds": {
    "reference": {
      "clientCardId": "string"
    }
  }
}

Success Response Example

{
  "consumer": {
    "email": "string"
  },
  "invoiceId": "string",
  "session": {
    "checkSignature": "string",
    "nonce": "string",
    "token": "string"
  },
  "sourceOfFunds": {
    "card": {
      "expiry": {
        "month": "integer",
        "year": "integer"
      },
      "holder":{
        "firstName": "string",
        "lastName": "string"
      },
      "number": "string"
    },
    "reference": {
      "serverCardId": "string",
    }
  },
  "transaction": {
    "currency": "string",
    "randomSumCentis": "integer"
  }
}

Fail Response Example

{
  "error": {
    "cause": "enum",
    "code": "string",
    "message": "string"
  },
  "invoiceId": "string"
}