Check transfer

Introduction

Check transfer is initiated through HTTPS POST request by using URLs and the parameters.
Check transfer is used for security purposes and allows GitPay 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/transfer/{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 transfer 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 Transfer request.

Necessity: Optional
Type: String
Length: 1-128

destinationOfFunds

Necessity: Optional
Type: Object

destinationOfFunds.reference

Necessity: Optional
Type: Object

destinationOfFunds.reference.clientCardId

The destination card reference identifier (on client side) if sent in Perform Transfer request.

Necessity: Optional
Type: String
Length: 1-128

Success Response Parameters

Parameter Name

Description

Value

invoiceId

Transfer 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, destinationOfFunds.reference.serverCardId (if present), endpointId, invoiceId, sourceOfFunds.reference.serverCardId (if present).

Necessity: Required
Type: String

session.nonce

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

Necessity: Required
Type: String

session.token

The session token of transfer transaction.

Necessity: Required
Type: String

consumer.email

Consumer’s email address.

Necessity: Optional
Type: String

destinationOfFunds

Necessity: Optional
Type: Object

destinationOfFunds.reference

Necessity: Optional
Type: Object

destinationOfFunds.reference.serverCardId

The destination card reference identifier (on server side).

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

Transfer transaction identifier.

Type: String

Request Example

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

Success Response Example

{
  "consumer": {
    "email": "string"
  },
  "destinationOfFunds": {
    "card": {
      "number": "string"
    },
    "reference": {
      "serverCardId": "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"
}