1.4.3. Money transfer

Funds transfer

Request

HTTP Request

POST https://${hostname}/paynet/api/v3/transfer/{endpointId}/{clientOrderId}

Request body

In the request body, supply data with the following structure:

{
  "sender": {
    "address": {
      "city": "string",
      "country": "string",
      "postcodeZip": "string",
      "state": "string",
      "street": "string",
      "street2": "string"
    },
    "firstName": "string",
    "lastName": "string",
    "phone": "string",
    "email": "string",
    "ipAddress": "string"
  },
  "receiver": {
    "address": {
      "city": "string",
      "country": "string",
      "postcodeZip": "string",
      "state": "string",
      "street": "string",
      "street2": "string"
    },
    "firstName": "string",
    "lastName": "string",
    "phone": "string"
  },
  "sourceOfFunds": {
    "card": {
      "expiry": {
        "month": "integer",
        "year": "integer"
      },
      "holder":{
        "firstName": "string",
        "lastName": "string"
      },
      "number": "string",
      "securityCode": "string"
    },
    "reference": {
      "cardReferenceId": "long",
      "securityCode": "string"
    },
    "cardMapping": {
      "subscriberId": "string",
      "subscriberType": "enum",
      "alias": "string",
      "securityCode": "string"
    }
  },
  "destinationOfFunds": {
    "card": {
      "number": "string",
    },
    "reference": {
      "cardReferenceId": "long"
    },
    "cardMapping": {
      "subscriberId": "string",
      "subscriberType": "enum",
      "alias": "string"
    }
  },
  "order": {
    "description": "string",
    "siteUrl": "string",
    "purpose": "string"
  },
  "urls": {
    "redirectUrl": "string",
    "callbackUrl": "string"
  },
  "transaction": {
    "amountCentis": "long",
    "currency": "string"
  }
}
Property name Value Description
Required properties
sourceOfFunds object  
sourceOfFunds.card object only one of these subtypes (card, reference, cardMapping) should be populated
sourceOfFunds.card.expiry object  
sourceOfFunds.card.expiry.month integer(2)  
sourceOfFunds.card.expiry.year integer(2)  
sourceOfFunds.card.holder object  
sourceOfFunds.card.holder.firstName string(1-50)  
sourceOfFunds.card.holder.lastName string(1-50)  
sourceOfFunds.card.number string(9-19) the source card number (PAN)
sourceOfFunds.card.securityCode string(3-4)  
sourceOfFunds.reference object only one of these subtypes (card, reference, cardMapping) should be populated
sourceOfFunds.reference.cardReferenceId long the source card reference identifier
sourceOfFunds.reference.securityCode string(3-4)  
sourceOfFunds.cardMapping object only one of these subtypes (card, reference, cardMapping) should be populated
sourceOfFunds.cardMapping.subscriberId string(1-99)  
sourceOfFunds.cardMapping.subscriberType enum Possible values: PHONE_NUMBER, EMAIL_ADDRESS, TWITTER
sourceOfFunds.cardMapping.alias string(1-20)  
sourceOfFunds.cardMapping.securityCode string(3-4)  
destinationOfFunds object  
destinationOfFunds.card object only one of these subtypes (card, reference, cardMapping) should be populated
destinationOfFunds.card.number string(9-19) the destination card number (PAN)
destinationOfFunds.reference object only one of these subtypes (card, reference, cardMapping) should be populated
destinationOfFunds.reference.cardReferenceId long the destination card reference identifier
destinationOfFunds.cardMapping object only one of these subtypes (card, reference, cardMapping) should be populated
destinationOfFunds.cardMapping.subscriberId string(1-99)  
destinationOfFunds.cardMapping.subscriberType enum Possible values: PHONE_NUMBER, EMAIL_ADDRESS, TWITTER
destinationOfFunds.cardMapping.alias string(1-20)  
transaction object  
transaction.amountCentis long transaction amount, 1.00 EUR = 100 centis
transaction.currency string(3) upper case letters (ISO 4217 alpha code)
Conditional properties
sender object Must be populated if sourceOfFunds.card is populated
sender.address object  
sender.address.city string(1-100)  
sender.address.country string(3) ISO 3166-1 alpha-3 code
sender.address.postcodeZip string(1-10)  
sender.address.state string(1-20) Must be filled if address is filled and country has states
sender.address.street string(1-50)  
sender.firstName string(1-50)  
sender.lastName string(1-50)  
sender.ipAddress string(1-45)  
sender.paymentPassword string(1-128) Some Acquirers require additional payment passwords for transfer operations
receiver object Must be populated if destinationOfFunds.card is populated
receiver.address object  
receiver.address.city string(1-100)  
receiver.address.country string(3) ISO 3166-1 alpha-3 code
receiver.address.postcodeZip string(1-10)  
receiver.address.state string(1-20) Must be filled if address is filled and country has states
receiver.address.street string(1-50)  
receiver.firstName string(1-50)  
receiver.lastName string(1-50)  
Optional properties
sender.address.street2 string(1-50)  
sender.phone string(1-20)  
sender.email string(1-128)  
receiver.address.street2 string(1-50)  
receiver.phone string(1-20)  
order object  
order.description string(128) Brief transaction description. May be mandatory for certain Acquirer Banks
order.siteUrl string(128) URL of website associated with the transaction
order.purpose string(128) May be used for better transaction control or additional checks
urls object  
urls.redirectUrl string(128) URL to which cardholder will be redirected after transfer has been completed
urls.callbackUrl string(128) URL to which a notification using HTTP request will be sent upon completion

Response

If successful, this method returns the following response body:

{
  "clientOrderId": "string",
  "paynetOrderId": "long",
  "sessionToken": "string",
  "requestSerialNumber": "string"
}
Property name Value Description
clientOrderId string order identifier assigned by the caller
paynetOrderId string order identifier assigned by the server
sessionToken string the session token which is to be used when calling Transfer status

In case of a failure, this method returns the following response body:

{
  "error": {
    "code": "string",
    "message": "string"
  },
  "clientOrderId": "string"
}
Property name Value Description
error object  
error.code string the error code
error.message string the description of the error
clientOrderId string order identifier assigned by the caller

Funds transfer form

Request

HTTP Request

POST https://${hostname}/paynet/api/v3/transfer-form/{endpointId}/{clientOrderId}

Request body

In the request body, supply data with the following structure:

{
  "sender": {
    "address": {
      "city": "string",
      "country": "string",
      "postcodeZip": "string",
      "state": "string",
      "street": "string",
      "street2": "string"
    },
    "firstName": "string",
    "lastName": "string",
    "phone": "string",
    "email": "string",
    "ipAddress": "string"
  },
  "receiver": {
    "address": {
      "city": "string",
      "country": "string",
      "postcodeZip": "string",
      "state": "string",
      "street": "string",
      "street2": "string"
    },
    "firstName": "string",
    "lastName": "string",
    "phone": "string"
  },
  "sourceOfFunds": {
    "reference": {
      "cardReferenceId": "long",
      "securityCode": "string"
    },
    "cardMapping": {
      "subscriberId": "string",
      "subscriberType": "enum",
      "alias": "string",
      "securityCode": "string"
    }
  },
  "destinationOfFunds": {
    "reference": {
      "cardReferenceId": "long"
    },
    "cardMapping": {
      "subscriberId": "string",
      "subscriberType": "enum",
      "alias": "string"
    }
  },
  "order": {
    "description": "string",
    "siteUrl": "string",
    "purpose": "string"
  },
  "urls": {
    "redirectUrl": "string",
    "callbackUrl": "string"
  },
  "transaction": {
    "amountCentis": "long",
    "currency": "string"
  }
}
Property name Value Description
Required properties
transaction object  
transaction.amountCentis long transaction amount, 1.00 EUR = 100 centis
transaction.currency string(3) upper case letters (ISO 4217 alpha code)
Conditional properties
sourceOfFunds object  
sourceOfFunds.reference object only one of these subtypes (reference, cardMapping) should be populated
sourceOfFunds.reference.cardReferenceId long the source card reference identifier
sourceOfFunds.reference.securityCode string(3-4)  
sourceOfFunds.cardMapping object only one of these subtypes (reference, cardMapping) should be populated
sourceOfFunds.cardMapping.subscriberId string(1-99)  
sourceOfFunds.cardMapping.subscriberType enum Possible values: PHONE_NUMBER, EMAIL_ADDRESS, TWITTER
sourceOfFunds.cardMapping.alias string(1-20)  
sourceOfFunds.cardMapping.securityCode string(3-4)  
destinationOfFunds object  
destinationOfFunds.reference object only one of these subtypes (reference, cardMapping) should be populated
destinationOfFunds.reference.cardReferenceId long the destination card reference identifier
destinationOfFunds.cardMapping object only one of these subtypes (reference, cardMapping) should be populated
destinationOfFunds.cardMapping.subscriberId string(1-99)  
destinationOfFunds.cardMapping.subscriberType enum Possible values: PHONE_NUMBER, EMAIL_ADDRESS, TWITTER
destinationOfFunds.cardMapping.alias string(1-20)  
sender object Must be populated if sourceOfFunds.cardReferenceId or sourceOfFunds.cardMapping is NOT populated
sender.address object  
sender.address.city string(1-100)  
sender.address.country string(3) ISO 3166-1 alpha-3 code
sender.address.postcodeZip string(1-10)  
sender.address.state string(1-20) Must be filled if address is filled and country has states
sender.address.street string(1-50)  
sender.firstName string(1-50)  
sender.lastName string(1-50)  
sender.ipAddress string(1-45)  
sender.paymentPassword string(1-128) Some Acquirers require additional payment passwords for transfer operations
receiver object Must be populated if destinationOfFunds.cardReferenceId or destinationOfFunds.cardMapping is NOT populated
receiver.address object  
receiver.address.city string(1-100)  
receiver.address.country string(3) ISO 3166-1 alpha-3 code
receiver.address.postcodeZip string(1-10)  
receiver.address.state string(1-20) Must be filled if address is filled and country has states
receiver.address.street string(1-50)  
receiver.firstName string(1-50)  
receiver.lastName string(1-50)  
Optional properties
sender.address.street2 string(1-50)  
sender.phone string(1-20)  
sender.email string(1-128)  
receiver.address.street2 string(1-50)  
receiver.phone string(1-20)  
order object  
order.description string(128) Brief transaction description. May be mandatory for certain Acquirer Banks
order.siteUrl string(128) URL of website associated with the transaction
order.purpose string(128) May be used for better transaction control or additional checks
urls object  
urls.redirectUrl string(128) URL to which cardholder will be redirected after transfer has been completed
urls.callbackUrl string(128) URL to which a notification using HTTP request will be sent upon completion

Request body example

This example shows the body of transfer form request that should be sent in “Credit card to card reference” case.

{
  "sender": {
    "address": {
      "city": "Moscow",
      "country": "RUS",
      "postcodeZip": "123123",
      "street": "Red sq, 1"
    },
    "firstName": "John",
    "lastName": "Smith",
    "ipAddress": "127.0.0.1"
  },
  "destinationOfFunds": {
    "reference": {
      "cardReferenceId": "11223344"
    }
  },
  "order": {
    "description": "Test order",
    "siteUrl": "https://example.com",
    "purpose": "transfer to reference"
  },
  "urls": {
    "redirectUrl": "https://example.com/finalorder",
    "callbackUrl": "https://example.com/callback"
  },
  "transaction": {
    "amountCentis": "12300",
    "currency": "RUB"
  }
}

Response

If successful, this method returns the following response body:

{
  "clientOrderId": "string",
  "paynetOrderId": "long",
  "sessionToken": "string",
  "requestSerialNumber": "string",
  "redirectUrl": "string"
}
Property name Value Description
clientOrderId string order identifier assigned by the caller
paynetOrderId string order identifier assigned by the server
sessionToken string the session token which is to be used when calling Transfer status
redirectUrl string URL to which cardholder needs to be redirected to fill transfer form

In case of a failure, this method returns the following response body:

{
  "error": {
    "code": "string",
    "message": "string"
  },
  "clientOrderId": "string"
}
Property name Value Description
error object  
error.code string the error code
error.message string the description of the error
clientOrderId string order identifier assigned by merchant

Transfer status

Request

HTTP Request

POST https://${hostname}/paynet/api/v3/transfer/status/{endpointId}/{clientOrderId}

Request body

In the request body, supply data with the following structure:

{
  "sessionToken": "string"
}
Property name Value Description
Required properties
sessionToken string(16-36) the session token of transfer transaction

Response

If successful, this method returns the following response body:

{
  "bankOrderId": "string",
  "clientOrderId": "string",
  "redirectUrl": "string",
  "state": "enum",
  "errorCode": "integer",
  "errorMessage": "string"
}
Property name Value Description
clientOrderId string order identifier assigned by the caller
state enum possible values: PROCESSING, REDIRECT_REQUEST, APPROVED, DECLINED,
    FILTERED, ERROR, UNKNOWN
Conditional properties
bankOrderId string(128) required if state is APPROVED or DECLINED
redirectUrl string(128) required if state is REDIRECT_REQUEST
Optional properties
errorCode integer error code (in case of error)
errorMessage string(256) error message (in case of error)
createdCardReferences object card references for new cards may be created automatically in specific cases. Please ask your manager for details
sourceCardReferenceId long created card reference for source card
destinationCardReferenceId long created card reference for destination card

In case of a failure, this method returns the following response body:

{
  "error": {
    "code": "string",
    "message": "string"
  },
  "clientOrderId": "string"
}
Property name Value Description
error object  
error.code string the error code
error.message string the description of the error
clientOrderId string order identifier assigned by the caller