Initiate transfer
Introduction
Initiate transfer is initiated through HTTPS POST request by using URLs and the parameters.
To initiate funds transfer, Connecting Party’s app sends {accessToken} with transaction amount and other device parameters to Connecting Party’s server, which are used to start a session with unique random {nonce} and encrypted {signature}.
In response Connecting Party’s server also provides information about invoice in Connecting Party’s system and endpoint in Billblend.
The Connecting Party’s server may also respond with the transaction’s commission.
API URLs
| Connecting Party Server |
|---|
| https://proxy.connectingpartyserver.com/transfer/initiate-transfer |
Request Parameters
| Parameter Name | Description | Value |
|---|---|---|
| consumer | Necessity: RequiredType: Object | |
| consumer.device | Necessity: RequiredType: Object | |
| consumer.device.serialNumber | Consumer’s device serial number. | Necessity: RequiredType: StringLength: 1-50 |
| transaction | Necessity: RequiredType: Object | |
| transaction.amountCentis | Transaction amount, 1.00 EUR = 100 centis. | Necessity: RequiredType: Integer |
| transaction.currency | Upper case letters (ISO 4217 alpha code). | Necessity: RequiredType: StringLength: 3 |
| session | Necessity: RequiredType: Object | |
| session.accessToken | Access token key received in Optional consumer authentication. | Necessity: RequiredType: StringLength: 32-128 |
| consumer.device.imei | Consumer’s device international mobile equipment identity. | Necessity: OptionalType: StringLength: 14-16 |
| location | Necessity: OptionalType: Object | |
| location.lat | The latitude specified in the range of -90.0 through +90.0, both inclusive. | Type: Double |
| location.lng | The longitude specified in the range -180.0 through +180.0, both inclusive. | Type: Double |
| consumer.ipAddresses | Consumer’s IP addresses. | Type: List |
| consumer.ipAddresses[] | Consumer’s IP address. | Necessity: OptionalType: StringLength: 7-15 |
| fromBin | Source of funds card BIN (first 6 digits of card number) may be used to display pre-calculated commission. | Necessity: OptionalType: StringLength: 6 |
| toBin | Destination of funds card BIN (first 6 digits of card number) may be used to display pre-calculated commission. | Necessity: OptionalType: StringLength: 6 |
Success Response Parameters
| Parameter Name | Description | Value |
|---|---|---|
| endpointId | Entry point identifier for transfer transaction. | Necessity: RequiredType: String |
| invoiceId | Transfer transaction identifier. | Necessity: RequiredType: String |
| session | Necessity: RequiredType: Object | |
| session.nonce | Unique random string generated by Connecting Party’s server. | Necessity: RequiredType: String |
| session.signature | Checksum generated by hmac-sha1 (see Signature computation) from the concatenation of the accessToken, consumer.device.serialNumber, endpointId, session.nonce, invoiceId, transaction.amountCentis and the transaction.currency. | Necessity: RequiredType: String |
| rates | Necessity: OptionalType: Object | |
| rates.min | Possible minimum commission amount. | Necessity: OptionalType: String |
| rates.max | Possible maximum commission amount. | Necessity: OptionalType: String |
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 |
Request Example
{
"consumer": {
"device": {
"imei": "string",
"serialNumber": "string"
},
"ipAddresses": ["string"]
},
"location": {
"lat": "double",
"lng": "double"
},
"session": {
"accessToken": "string"
},
"transaction": {
"amountCentis": "integer",
"currency": "string"
}
}
Success Response Example
{
"endpointId": "string",
"invoiceId": "string",
"rates": {
"min": "string",
"max": "string"
},
"session": {
"nonce": "string",
"signature": "string"
}
}
Fail Response Example
{
"error": {
"cause": "enum",
"code": "string",
"message": "string"
}
}