Perform transfer

Introduction

Perform transfer is initiated through HTTPS POST request by using URLs and the parameters.

On this stage Connecting Party’s app sends cardholder, device, session data and other parameters straight to Billblend to perform funds transfer from card to card.

A lot of criteria checks and filters may be applied, such as BIN, currency, country, blacklisted or not, etc. Depending on the integration, these settings may be customizable.

API URLs

Integration Production
https://sandbox.billblend.com/checkout/dapi/v1/transfer/{endpointId}/{invoiceId} https://pay.billblend.com/checkout/dapi/v1/transfer/{endpointId}/{invoiceId}

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
consumer.email Consumer’s email address, if sent in original card mapping transaction and card reference is being used instead of cardholder data. Necessity: RequiredType: StringLength: 3-128
destinationOfFunds   Necessity: RequiredTypeObject
destinationOfFunds.card Only one of these subtypes (card, reference) should be used. Necessity: RequiredTypeObject
destinationOfFunds.card.number Destination card number (PAN). Necessity: RequiredType: StringLength: 9-19
destinationOfFunds.reference Only one of these subtypes (card, reference) should be used. Necessity: RequiredTypeObject
destinationOfFunds.reference.clientCardId Destination card reference identifier (on client side). Necessity: RequiredType: StringLength: 1-128
session   Necessity: RequiredTypeObject
session.accessToken Access token key received in Optional consumer authentication. Necessity: RequiredType: StringLength: 32-128
session.nonce Value received in Initiate transfer response. Necessity: RequiredType: StringLength: 32-128
session.signature Value received in Initiate transfer response. Necessity: RequiredType: StringLength: 32-128
sourceOfFunds   Necessity: RequiredTypeObject
sourceOfFunds.card Only one of these subtypes (card, reference) should be used. Necessity: RequiredTypeObject
sourceOfFunds.card.expiry   Necessity: RequiredTypeObject
sourceOfFunds.card.expiry.month Source Card expiration month. Necessity: RequiredType: IntegerLength: 2
sourceOfFunds.card.expiry.year Source Card expiration year. Necessity: RequiredType: IntegerLength: 4
sourceOfFunds.card.holder   Necessity: RequiredTypeObject
sourceOfFunds.card.holder.firstName Cardholder’s first name. Necessity: RequiredType: StringLength: 1-50
sourceOfFunds.card.holder.lastName Cardholder’s last name. Necessity: RequiredType: StringLength: 1-50
sourceOfFunds.card.holder.printedName Cardholder’s printed name (first and last name together). May be used instead of firstName + lastName. Necessity: RequiredType: StringLength: 1-50
sourceOfFunds.card.number Source card number (PAN). Necessity: RequiredType: StringLength: 9-19
sourceOfFunds.card.securityCode Source card security code (CVV). Necessity: RequiredType: StringLength: 3-4
sourceOfFunds.reference only one of these subtypes (card, reference) should be used. Necessity: RequiredTypeObject
sourceOfFunds.reference.clientCardId Source card reference identifier (on client side). Necessity: RequiredType: StringLength: 1-128
sourceOfFunds.reference.securityCode Source card security code (CVV). Necessity: RequiredType: StringLength: 3-4
transaction   Necessity: RequiredTypeObject
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
location   Necessity: OptionalTypeObject
location.lat The latitude specified in the range of -90.0 through +90.0, both inclusive. Necessity: OptionalType: Double
location.lng The longitude specified in the range -180.0 through +180.0, both inclusive. Necessity: OptionalType: Double
billing   Necessity: OptionalTypeObject
billing.address   Necessity: OptionalTypeObject
billing.address.city City name. Necessity: OptionalType: StringLength: 1-100
billing.address.country ISO alpha3 country code. Necessity: OptionalType: StringLength: 3
billing.address.postcodeZip ZIP post code. Necessity: OptionalType: StringLength: 1-10
billing.address.state State is used if present. For example, Los Angeles is in CA state. Necessity: OptionalType: StringLength: 2-3
billing.address.street Street is used for district names and street names. Necessity: OptionalType: StringLength: 1-50
billing.address.street2 Street 2 is used for long addresses. Usually it contains apartment and building №. Necessity: OptionalType: StringLength: 1-50
billing.phone Consumer’s contact phone number. Necessity: OptionalType: StringLength: 1-20
consumer.birthDay Consumer’s birth day in “ddMMyyyy” format. Necessity: OptionalType: StringLength: 8
consumer.device.imei Consumer’s device international mobile equipment identity. Necessity: OptionalType: StringLength: 14-16
consumer.ipAddresses Consumer’s IP addresses. Necessity: OptionalType: List
consumer.ipAddresses[] Consumer’s IP address. Necessity: OptionalType: StringLength: 7-15
order   Necessity: OptionalTypeObject
order.description Brief transaction description. May be mandatory for certain Acquirer Banks. Necessity: OptionalType: StringLength: 128
order.siteUrl URL of website associated with the transaction. Necessity: OptionalType: StringLength: 128
order.purpose May be used for better transaction control or additional checks. Necessity: OptionalType: StringLength: 128

Success Response Parameters

Parameter Name Description Value
invoiceId Transfer transaction identifier. Type: String
session   TypeObject
session.token The session token of transfer transaction. Type: String

Fail Response Parameters

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

{
  "billing": {
    "address": {
      "city": "string",
      "country": "string",
      "postcodeZip": "string",
      "state": "string",
      "street": "string",
      "street2": "string"
    },
    "phone": "string"
  },
  "consumer": {
    "birthDay": "string",
    "device": {
      "imei": "string",
      "serialNumber": "string"
    },
    "email": "string",
    "ipAddresses": ["string"]
  },
  "destinationOfFunds": {
    "card": {
      "number": "string",
    },
    "reference": {
      "clientCardId": "string"
    }
  },
  "location": {
    "lat": "double",
    "lng": "double"
  },
  "order": {
    "description": "string",
    "siteUrl": "string",
    "purpose": "string"
  },
  "session": {
    "accessToken": "string",
    "nonce": "string",
    "signature": "string"
  },
  "sourceOfFunds": {
    "card": {
      "expiry": {
        "month": "integer",
        "year": "integer"
      },
      "holder":{
        "firstName": "string",
        "lastName": "string"
      },
      "number": "string",
      "securityCode": "string"
    },
    "reference": {
      "clientCardId": "string",
      "securityCode": "string"
    }
  },
  "transaction": {
    "amountCentis": "integer",
    "currency": "string"
  }
}

Success Response Example

{
  "invoiceId": "string",
  "session": {
    "token": "string"
  }
}

Fail Response Example

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

Request Builder

For integration purposes use Billblend test scenarios to generate random card numbers.

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