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

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

Request Parameters

Parameter NameDescriptionValue
consumerNecessity: RequiredTypeObject
consumer.deviceNecessity: RequiredTypeObject
consumer.device.serialNumberConsumer’s device serial number.Necessity: RequiredType: StringLength: 1-50
consumer.emailСonsumer’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
destinationOfFundsNecessity: RequiredTypeObject
destinationOfFunds.cardOnly one of these subtypes (card, reference) should be used.Necessity: RequiredTypeObject
destinationOfFunds.card.numberDestination card number (PAN).Necessity: RequiredType: StringLength: 9-19
destinationOfFunds.referenceOnly one of these subtypes (card, reference) should be used.Necessity: RequiredTypeObject
destinationOfFunds.reference.clientCardIdDestination card reference identifier (on client side).Necessity: RequiredType: StringLength: 1-128
sessionNecessity: RequiredTypeObject
session.accessTokenAccess token key received in Optional consumer authentication.Necessity: RequiredType: StringLength: 32-128
session.nonceValue received in Initiate transfer response.Necessity: RequiredType: StringLength: 32-128
session.signatureValue received in Initiate transfer response.Necessity: RequiredType: StringLength: 32-128
sourceOfFundsNecessity: RequiredTypeObject
sourceOfFunds.cardOnly one of these subtypes (card, reference) should be used.Necessity: RequiredTypeObject
sourceOfFunds.card.expiryNecessity: RequiredTypeObject
sourceOfFunds.card.expiry.monthSource Card expiration month.Necessity: RequiredType: IntegerLength: 2
sourceOfFunds.card.expiry.yearSource Card expiration year.Necessity: RequiredType: IntegerLength: 4
sourceOfFunds.card.holderNecessity: RequiredTypeObject
sourceOfFunds.card.holder.firstNameCardholder’s first name.Necessity: RequiredType: StringLength: 1-50
sourceOfFunds.card.holder.lastNameCardholder’s last name.Necessity: RequiredType: StringLength: 1-50
sourceOfFunds.card.holder.printedNameCardholder’s printed name (first and last name together). May be used instead of firstName + lastName.Necessity: RequiredType: StringLength: 1-50
sourceOfFunds.card.numberSource card number (PAN).Necessity: RequiredType: StringLength: 9-19
sourceOfFunds.card.securityCodeSource card security code (CVV).Necessity: RequiredType: StringLength: 3-4
sourceOfFunds.referenceonly one of these subtypes (card, reference) should be used.Necessity: RequiredTypeObject
sourceOfFunds.reference.clientCardIdSource card reference identifier (on client side).Necessity: RequiredType: StringLength: 1-128
sourceOfFunds.reference.securityCodeSource card security code (CVV).Necessity: RequiredType: StringLength: 3-4
transactionNecessity: RequiredTypeObject
transaction.amountCentisTransaction amount, 1.00 EUR = 100 centis.Necessity: RequiredType: Integer
transaction.currencyUpper case letters (ISO 4217 alpha code).Necessity: RequiredType: StringLength: 3
locationNecessity: OptionalTypeObject
location.latThe latitude specified in the range of -90.0 through +90.0, both inclusive.Necessity: OptionalType: Double
location.lngThe longitude specified in the range -180.0 through +180.0, both inclusive.Necessity: OptionalType: Double
billingNecessity: OptionalTypeObject
billing.addressNecessity: OptionalTypeObject
billing.address.cityCity name.Necessity: OptionalType: StringLength: 1-100
billing.address.countryISO alpha3 country code.Necessity: OptionalType: StringLength: 3
billing.address.postcodeZipZIP post code.Necessity: OptionalType: StringLength: 1-10
billing.address.stateState is used if present. For example, Los Angeles is in CA state.Necessity: OptionalType: StringLength: 2-3
billing.address.streetStreet is used for district names and street names.Necessity: OptionalType: StringLength: 1-50
billing.address.street2Street 2 is used for long addresses. Usually it contains apartment and building №.Necessity: OptionalType: StringLength: 1-50
billing.phoneСonsumer’s contact phone number.Necessity: OptionalType: StringLength: 1-20
consumer.birthDayСonsumer’s birth day in “ddMMyyyy” format.Necessity: OptionalType: StringLength: 8
consumer.device.imeiСonsumer’s device international mobile equipment identity.Necessity: OptionalType: StringLength: 14-16
consumer.ipAddressesСonsumer’s IP addresses.Necessity: OptionalType: List
consumer.ipAddresses[]Сonsumer’s IP address.Necessity: OptionalType: StringLength: 7-15
orderNecessity: OptionalTypeObject
order.descriptionBrief transaction description. May be mandatory for certain Acquirer Banks.Necessity: OptionalType: StringLength: 128
order.siteUrlURL of website associated with the transaction.Necessity: OptionalType: StringLength: 128
order.purposeMay be used for better transaction control or additional checks.Necessity: OptionalType: StringLength: 128

Success Response Parameters

Parameter NameDescriptionValue
invoiceIdTransfer transaction identifier.Type: String
sessionTypeObject
session.tokenThe session token of transfer transaction.Type: String

Fail Response Parameters

Parameter NameDescriptionValue
errorTypeObject
error.causeCause of the error. Possible values: INVALID_REQUESTINVALID_CONFIGURATIONINTERNAL_ERRORPROCESSING_FAILED.Type: Enum
error.codeThe unique error code.Type: String
error.messageDescription of the error.Type: String
invoiceIdTransfer 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