Check verification

Introduction

Check verification is initiated through HTTPS POST request by using URLs and the parameters.
Check verification is used for security purposes and allows GoldenApple 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/verification/{invoiceId}/check

Request Parameters

Parameter Name

Description

Value

consumer

Type: Object

consumer.device

Type: Object

consumer.device.serialNumber

Consumer’s device serial number.

Type: String
Length: 1-50

session

Type: Object

session.accessToken

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

Type: String
Length: 32-128

session.nonce

Value sent by Connecting Party’s app.

Type: String
Length: 32-128

session.signature

Value sent by Connecting Party’s app.

Type: String
Length: 32-128

session.token

The session token of verification transaction.

Type: String
Length: 16-36

Success Response Parameters

Parameter Name

Description

Value

invoiceId

Verification 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 consumer.device.serialNumber, session.nonce, endpointId and invoiceId.

Necessity: Required
Type: String

session.nonce

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

Necessity: Required
Type: String

session.token

The session token of verification transaction.

Necessity: Required
Type: String

billing


Necessity: Optional
Type: Object

billing.address


Necessity: Optional
Type: Object

billing.address.city

City name.

Necessity: Optional
Type: String

billing.address.country

ISO alpha3 country code.

Necessity: Optional
Type: String

billing.address.postcodeZip

ZIP post code.

Necessity: Optional
Type: String

billing.address.state

State is used if present. For example, Los Angeles is in CA state.

Necessity: Optional
Type: String

billing.address.street

Street is used for district names and street names.

Necessity: Optional
Type: String

billing.address.street2

Street 2 is used for long addresses. Usually it contains apartment and building №.

Necessity: Optional
Type: String

billing.phone

Customer’s contact phone number.

Necessity: Optional
Type: String

consumer.birthDay

Consumer’s birth day in “ddMMyyyy” format.

Necessity: Optional
Type: String

consumer.email

Consumer’s email address.

Necessity: Optional
Type: String

consumer.ipAddresses

Consumer’s IP addresses.

Necessity: Optional
Type: List

consumer.ipAddresses[]

Consumer’s IP address.

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

Verification transaction identifier.

Type: String

Request Example

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

Success Response Example

{
  "billing": {
    "address": {
      "city": "string",
      "country": "string",
      "postcodeZip": "string",
      "state": "string",
      "street": "string",
      "street2": "string"
    },
    "phone": "string"
  },
  "consumer": {
    "birthDay": "string",
    "email": "string",
    "ipAddresses": ["string"]
  },
  "invoiceId": "string",
  "session": {
    "checkSignature": "string",
    "nonce": "string",
    "token": "string"
  },
  "transaction": {
    "currency": "string",
    "randomSumCentis": "integer"
  }
}

Fail Response Example

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