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 Billblend 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: RequiredTypeObject
consumer.device   Necessity: RequiredTypeObject
consumer.device.serialNumber Consumer’s device serial number. Necessity: RequiredType: StringLength: 1-50
session   Necessity: RequiredTypeObject
session.accessToken Consumer’s access token key sent by Connecting Party’s app. Necessity: RequiredType: StringLength: 32-128
session.nonce Value sent by Connecting Party’s app. Necessity: RequiredType: StringLength: 32-128
session.signature Value sent by Connecting Party’s app. Necessity: RequiredType: StringLength: 32-128
session.token The session token of sale transaction. Necessity: RequiredType: StringLength: 16-36
sourceOfFunds   Necessity: OptionalTypeObject
sourceOfFunds.reference   Necessity: OptionalTypeObject
sourceOfFunds.reference.clientCardId The source card reference identifier (on client side) if sent in Perform sale request. Necessity: OptionalType: StringLength: 1-128

Success Response Parameters

Parameter Name Description Value
invoiceId Sale transaction identifier Necessity: RequiredType: String
session   Necessity: RequiredTypeObject
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: RequiredType: String
session.nonce Unique random string generated by Connecting Party’s server in Initiate sale response. Necessity: RequiredType: String
session.token The session token of sale transaction. Necessity: RequiredType: String
consumer.email Consumer’s email address, if sent in original card mapping transaction. Necessity: OptionalType: String
sourceOfFunds   Necessity: OptionalTypeObject
sourceOfFunds.reference   Necessity: OptionalTypeObject
sourceOfFunds.reference.serverCardId The source card reference identifier (on server side). Necessity: OptionalType: String
transaction.currency Upper case letters (ISO 4217 alpha code). Necessity: OptionalType: String
transaction.randomSumCentis Random sum amount (for random sum check), 1.00 EUR = 100 centis. Necessity: OptionalType: Integer

Fail Response Parameters

Parameter Name Description Value
error   TypeObject
error.cause Cause of the error. Possible values: FILTEREDINVALID_REQUESTSERVER_FAILEDSERVER_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"
}

Contact us

By clicking on the button, you agree to the data protection policy

Complete the quiz

By clicking on the button, you agree to the data protection policy