Transfer creation and confirmation
Transfer API allows initiating transfers between your Paysera account and either Paysera or another bank account. API allows creating manual Transfers just like in regular Paysera system. It's possible to fully automate the process, so the transfer will be created and signed by your system using API, your system would be able to track the status of initiated transfers.
Integration
1. Create transfer
With a library
<?php use PayseraClientTransfersClientClientFactory; use PayseraClientTransfersClientEntity as Entities; $clientFactory = new ClientFactory([ 'base_url' => 'https://wallet.paysera.com/transfer/rest/v1/', 'mac' => [ 'mac_id' => 'mac_id', 'mac_secret' => 'mac_password', ], ]); $transfersClient = $clientFactory->getTransfersClient(); $transferInput = (new EntitiesTransferInput()) ->setAmount($amount) ->setBeneficiary($beneficiary) ->setPayer($payer) ->setFinalBeneficiary($finalBeneficiary) ->setPerformAt($performAt) ->setChargeType($chargeType) ->setUrgency($urgency) ->setNotifications($notifications) ->setPurpose($purpose) ->setPassword($password) ->setCancelable($cancelable) ->setAutoCurrencyConvert($autoCurrencyConvert) ->setAutoChargeRelatedCard($autoChargeRelatedCard) ->setAutoProcessToDone($autoProcessToDone) ->setReserveUntil($reserveUntil) ->setCallback($callback) ; $result = $transfersClient->createTransfer($transferInput);
With the specification
POST https://wallet.paysera.com/transfer/rest/v1/transfers
Example request
POST /transfer/rest/v1/transfers HTTP/1.1 Host: wallet.paysera.com Content-Type: application/json;charset=utf-8 User-Agent: Paysera WalletApi PHP library Authorization: MAC id="wkVd93h2uS", ts="1343811600", nonce="nQnNaSNyubfPErjRO55yaaEYo9YZfKHN", mac="2VFTILV6mZSTG3mWYle+ApoQ4waD+zkfpBpaDYW9H2A=", ext="body_hash=9ozRxTTJmNuImN2RrqNNWrWAf39A2RmbriKeuDSPy2I%3D"
{ "amount": { "amount": "100.00", "currency": "EUR" }, "beneficiary": { "type": "bank", "name": "Name Surname", "bank_account": { "iban": "LT873500010002284563" }, "additional_information": { "type": "natural", "city": "New York", "state": "NY", "country": "US", "postal_code": "11235", "bank_branch_code": "US46516" }, "client_identifier": { "date_and_place_of_birth": { "date_of_birth": "1986-11-08", "city_of_birth": "Vilnius", "country_of_birth": "LT" } } }, "payer": { "account_number": "EVP9210002477825" }, "urgency": "standard", "purpose": { "details": "Transfer details that will be seen in beneficiary statement" } }
Example response
HTTP/1.1 200 OK Content-type: application/json;charset=utf-8
{ "id": "123", "status": "new", "amount": { "amount": "100.00", "currency": "EUR" }, "beneficiary": { "type": "bank", "name": "Name Surname", "bank_account": { "iban": "LT873500010002284563" }, "additional_information": { "type": "natural", "city": "New York", "state": "NY", "country": "US", "postal_code": "11235", "bank_branch_code": "US46516" }, "client_identifier": { "date_and_place_of_birth": { "date_of_birth": "1986-11-08", "city_of_birth": "Vilnius", "country_of_birth": "LT" } } }, "payer": { "account_number": "EVP9210002477825" }, "purpose": { "details": "Transfer details that will be seen in beneficiary statement", "details_options": { "preserve": false } }, "cancelable": true, "allowed_to_cancel": true, "initiator": { "user_id": 321 }, "created_at": 1489420006, "perform_at": 1489420006, "auto_currency_convert": false, "auto_charge_related_card": false, "out_commission": { "amount": "0.29", "currency": "EUR" }, "additional_information": { "estimated_processing_date": 1489420906, "out_commission_rule": { "percent": 0, "fix": { "amount": "0.29", "currency": "EUR" } }, "original_out_commission": { "amount": "0.29", "currency": "EUR" }, "correspondent_bank_fees_may_apply": false } }
2. Sign transfer
With a library
<?php use PayseraClientTransfersClientClientFactory; use PayseraClientTransfersClientEntity as Entities; $clientFactory = new ClientFactory([ 'base_url' => 'https://wallet.paysera.com/transfer/rest/v1/', 'mac' => [ 'mac_id' => 'mac_id', 'mac_secret' => 'mac_password', ], ]); $transferRegistrationParameters = (new EntitiesTransferRegistrationParameters()) ->setConvertCurrency($convertCurrency) ->setUserIp($userIp) ; $result = $transfersClient->signTransfer($id, $transferRegistrationParameters);
With the specification
PUT https://wallet.paysera.com/transfer/rest/v1/transfers/{id}/sign
Example request
PUT /rest/v1/transfers/123/sign HTTP/1.1 Host: wallet.paysera.com User-Agent: Paysera WalletApi PHP library Authorization: MAC id="wkVd93h2uS", ts="1343811600", nonce="nQnNaSNyubfPErjRO55yaaEYo9YZfKHN", mac="8ZAMWhc6f0jmkgcPo+cyzPWHmEEK9pLvK1FQ4axlV3U="
Example response
HTTP/1.1 200 OK Content-type: application/json;charset=utf-8
{ "id": "123", "status": "new", "amount": { "amount": "100.00", "currency": "EUR" }, "beneficiary": { "type": "bank", "name": "Name Surname", "bank_account": { "iban": "LT873500010002284563" }, "additional_information": { "type": "natural", "city": "New York", "state": "NY", "country": "US", "postal_code": "11235", "bank_branch_code": "US46516" }, "client_identifier": { "date_and_place_of_birth": { "date_of_birth": "1986-11-08", "city_of_birth": "Vilnius", "country_of_birth": "LT" } } }, "payer": { "account_number": "EVP9210002477825" }, "purpose": { "details": "Transfer details that will be seen in beneficiary statement", "details_options": { "preserve": false } }, "cancelable": true, "allowed_to_cancel": true, "initiator": { "user_id": 321 }, "created_at": 1489420006, "perform_at": 1489420006, "auto_currency_convert": false, "auto_charge_related_card": false, "out_commission": { "amount": "0.29", "currency": "EUR" }, "additional_information": { "estimated_processing_date": 1489420906, "out_commission_rule": { "percent": 0, "fix": { "amount": "0.29", "currency": "EUR" } }, "original_out_commission": { "amount": "0.29", "currency": "EUR" }, "correspondent_bank_fees_may_apply": false } }