3.26. api/v4/transfer-by-ref
Introduction
Deposit to card transfer (D2C) is a money transfer from Connecting Party bank account (Deposit) and Receiver bank card number (PAN) or tokenized card data (Card Reference ID). Deposit to card is initiated through HTTPS POST request by using URLs and the parameters specified below. Use OAuth RSA-SHA256 for authentication.
API URLs
Integration |
Production |
---|---|
https://sandbox.solidpayments.com/paynet/api/v4/transfer-by-ref/ENDPOINTID |
https://gate.solidpayments.com/paynet/api/v4/transfer-by-ref/ENDPOINTID |
https://sandbox.solidpayments.com/paynet/api/v4/transfer-by-ref/group/ENDPOINTGROUPID |
https://gate.solidpayments.com/paynet/api/v4/transfer-by-ref/group/ENDPOINTGROUPID |
Request Parameters
Note
Parameter Name |
Description |
Value |
---|---|---|
client_orderid |
Connecting Party order identifier. |
Necessity : RequiredType : StringLenght : 128 |
login |
Connecting Party’s login. Must be used as oauth_consumer_key in OAuth Authorization, not included in request as login parameter. |
Necessity : RequiredType : StringLenght : 20 |
destination-card-no |
Card number of destination card. Mandatory if destination-card-ref-id omitted. For the scenario of payment to a card inside the system, this card will be considered as a destination, and all processing limits, lists and fraud scoring will be applied to it as a destination card. |
Necessity : ConditionalType : StringLenght : 16-19 |
destination-card-ref-id |
Card reference id to destination card, obtained at Card Registration step. Mandatory if destination-card-no omitted. For the scenario of payment to a card inside the system, this card will be considered as a destination, and all processing limits, lists and fraud scoring will be applied to it as a destination card. |
Necessity : ConditionalType : NumericLenght : 20 |
amount |
Amount to be transferred. The amount has to be specified in the highest units with . delimiter. For instance, 10.5 for USD means 10 US Dollars and 50 Cents. |
Necessity : RequiredType : NumericLenght : 10 |
currency |
Currency the transaction is charged in (three-letter currency code). Example ofВ valid parameter values are: USD for US Dollar EUR for European Euro. |
Necessity : RequiredType : StringLenght : 3 |
order_desc |
Order description. |
Necessity : RequiredType : StringLenght : 64k |
receiver_identity_document_series |
Receiver’s identity document series (e.g. 4 digits for domestic passport). |
Necessity : OptionalType : StringLenght : 512 |
receiver_identity_document_number |
Receiver’s identity document number (e.g. 6 digits for domestic passport). |
Necessity : OptionalType : StringLenght : 512 |
receiver_identity_document_id |
Receiver’s identity document id. Possible values: 21 for domestic passport or 31 for international passport. |
Necessity : OptionalType : StringLenght : 512 |
receiver_address1 |
Receiver’s address. |
Necessity : Conditional*Type : StringLenght : 512 |
receiver_city |
Receiver’s city. |
Necessity : Conditional*Type : StringLenght : 512 |
receiver_first_name |
Receiver first name. |
Necessity : RequiredType : StringLenght : 128 |
receiver_middle_name |
Receiver middle name. |
Necessity : OptionalType : StringLenght : 128 |
receiver_last_name |
Receiver last name. |
Necessity : RequiredType : StringLenght : 128 |
receiver_phone |
Receiver full international cell phone number, including country code. |
Necessity : OptionalType : StringLenght : 128 |
receiver_resident |
Is receiver a resident? |
Necessity : OptionalType : BooleanLenght : true/false |
ipaddress |
Customer’s IP address, included for fraud screening purposes. |
Necessity : OptionalType : StringLenght : 45 |
first_name |
Sender first name. |
Necessity : OptionalType : StringLenght : 128 |
middle_name |
Sender middle name. |
Necessity : OptionalType : StringLenght : 128 |
last_name |
Sender last name. |
Necessity : OptionalType : StringLenght : 128 |
ssn |
Last four digits of the Sender’s social security number. |
Necessity : OptionalType : NumericLenght : 32 |
birthday |
Sender date of birth, in the format MMDDYY. |
Necessity : OptionalType : NumericLenght : 8 |
address1 |
Sender address line 1. |
Necessity : OptionalType : StringLenght : 50 |
city |
Sender city. |
Necessity : OptionalType : StringLenght : 50 |
state |
Sender’s state. Please see Appendix A for a list of valid state codes. Mandatory for USA, Canada and Australia. |
Necessity : OptionalType : StringLenght : 2-3 |
zip_code |
Sender ZIP code. |
Necessity : OptionalType : StringLenght : 10 |
receiver_zip_code |
Receiver ZIP code. |
Necessity : Conditional*Type : StringLenght : 10 |
country |
Sender country(two-letter country code). Please see Appendix B for a list of valid country codes. |
Necessity : OptionalType : StringLenght : 2 |
receiver_country_code |
Receiver country(two-letter country code). Please see Appendix B for a list of valid country codes. |
Necessity : OptionalType : StringLenght : 2 |
phone |
Sender full international phone number, including country code. |
Necessity : OptionalType : StringLenght : 15 |
cell_phone |
Sender full international cell phone number, including country code. |
Necessity : OptionalType : StringLenght : 15 |
Sender email address. |
Necessity : OptionalType : StringLenght : 50 |
|
purpose |
Destination to where the payment goes. It is useful for the Connecting Parties who let their clients to transfer money from a credit card to some type of client’s account, e.g. game or mobile phone account. Sample values are: +7123456789; gamer0001@ereality.com etc. This value will be used by fraud monitoring system. |
Necessity : OptionalType : StringLenght : 128 |
server_callback_url |
URL the transaction result will be sent to. Connecting Party may use this URL for custom processing of the transaction completion, e.g. to collect sales data in Connecting Party’s database. See more details at Connecting Party Callbacks. |
Necessity : OptionalType : StringLenght : 128 |
redirect_url |
URL the cardholder will be redirected to upon completion of the transaction. Please note that the cardholder will be redirected in any case, no matter whether the transaction is approved or declined. See more details at Statuses. |
Necessity : OptionalType : StringLenght : 250 |
redirect_success_url |
URL the cardholder will be redirected to upon completion of the transaction. Please note that the cardholder will be redirected only in case if the transaction is approved. |
Necessity : OptionalType : StringLenght : 1024 |
redirect_fail_url |
URL the cardholder will be redirected to upon completion of the transaction. Please note that the cardholder will be redirected only in case if the transaction is declined or filtered. |
Necessity : OptionalType : StringLenght : 1024 |
merchant_data |
Any additional information for this transaction which may be useful in Connecting Party’s external systems, e.g. VIP customer, TV promo campaign lead. Will be returned in Status response and Connecting Party Callback. |
Necessity : OptionalType : StringLenght : 64k |
Response Parameters
Note
Response parameter |
Description |
---|---|
type |
The type of response. May be async-response, validation-error, error. If type equals validation-error or error, error-message and error-code parameters contain error details. |
paynet-order-id |
Order id assigned to the order by Solid Payments. |
merchant-order-id |
Connecting Party order id. |
serial-number |
Unique number assigned by Solid Payments server to particular request from the Connecting Party. |
error-message |
If status is error this parameter contains the reason for decline or error details. |
error-code |
The error code is case of error status. |
Request Example
POST /paynet/api/v4/transfer-by-ref/39915 HTTP/1.1
Host: sandbox.solidpayments.com
User-Agent: curl/7.83.0
Accept: */*
Authorization: OAuth oauth_consumer_key="TestMerchant", oauth_nonce="w1rmMzx2Sq2k5Hi7KAZmdhHHD6BygKcE", oauth_signature="rXn0DwLOlaV%2Ft1q3s%2FJdLybJTdxKKN0XeFtyVNZ0U5bG0Qfcc6iyHqQG66Ohb852CYKjhrxvG3wf33RlIQdO9f23OSg91JkdrUgl8QDrMqntC5myWGR1woums%2BMjpV821fAY8AS%2BBByNUKOuC1mwFgLYwr5YinbhjDa6P8aEdHgbf%2FVw5vg9OqjwKxJhSXPGB5mIg7T9gTNXF4n4YTUJA0l%2BWyeGcIjuTSsiCUnbsrNjBOGYc0PlUSuHirwJ0NiKVdHk3qaZrGaEw8SZEq%2F8x0naoaaOXUq%2FkpqPfTJT%2FjTl%2FbGyX1x%2FwTl6EYgIElavHYj2psIGmFnyUk%2FYnaGZHikE00rSf4IkG5Ye2M4hyl7lKQOCXMZMvvGtfvLm0RsAod8o30KuDD5Tw%2BRmDiQNCqN8GeZawHsZipgwZuy2IdZ3sHiot3U6NEt1OVH9TsWDU%2FstfBJOWBBStTRTTh4hn3Zvf5jLuTfTcepKz4CIgdQGGmMmRSz6dcBnkYJaa7VRTh27dz%2BnEuC0laEYAytVuzQA43MvUXNLmAuh9JlmqQquAZwB%2BRFfLPgOj%2FVVsFsqX35UWBYQtWlWdEVc3jWBVxCjEW0s8cAcowlb4R2g4V48HC2Rz3ggfINzP9%2FWtX1nkNnIlzQAeYbMREguYqFrK%2BYK6Lqyu%2BM1jeo6j9CWhhk%3D", oauth_signature_method="RSA-SHA256", oauth_timestamp="1697442690", oauth_version="1.0"
Content-Length: 805
Content-Type: application/x-www-form-urlencoded
Connection: close
address1=10020Main%20st
&amount=100
&birthday=19820115
&cell_phone=%2B19023384543
&city=Seattle
&client_orderid=34T43R77N
&country=US
¤cy=USD
&destination-card-ref-id=1461819
&email=john.smith%40gmail.com
&first_name=John
&ipaddress=65.153.12.232
&last_name=Smith
&merchant_data=VIP%20customer
&middle_name=M
&order_desc=Test%20Order%20Description
&phone=%2B12063582043
&purpose=user_account1
&receiver_address1=Red%20Sq%2C%201a
&receiver_city=Moscow
&receiver_first_name=Jane
&receiver_identity_document_id=21
&receiver_identity_document_number=222222
&receiver_identity_document_series=1111
&receiver_last_name=Doe
&receiver_middle_name=L
&receiver_phone=%2B79031110022
&receiver_resident=true
&redirect_url=http%3A%2F%2Fwww.example.com%2F
&server_callback_url=https%3A%2F%2Fhttpstat.us%2F200
&ssn=1267&state=WA
&zip_code=98102
Success Response Example
HTTP/1.1 200
Server: server
Date: Mon, 16 Oct 2023 13:20:25 GMT
Content-Type: text/html;charset=utf-8
Connection: close
Vary: Accept-Encoding
X-XSS-Protection: 1
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000
Content-Language: en-US
Strict-Transport-Security: max-age=31536000
Content-Length: 145
type=async-response
&serial-number=00000000-0000-0000-0000-000002ee3a57
&merchant-order-id=34T43R77N
&paynet-order-id=7234671
&end-point-id=39915
Fail Response Example
HTTP/1.1 200
Server: server
Date: Mon, 16 Oct 2023 07:54:11 GMT
Content-Type: text/html;charset=utf-8
Connection: close
Vary: Accept-Encoding
X-XSS-Protection: 1
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000
Content-Language: en-US
Strict-Transport-Security: max-age=31536000
Content-Length: 162
type=validation-error
&serial-number=00000000-0000-0000-0000-000002ee3a4f
&merchant-order-id=34T43R77N
&error-message=Rebill+1461819+was+not+found
&error-code=104
Postman Collection
Request Builder
Enter your private key in PKCS#1 container to use debug. See RSA-SHA256 for details.
Debug form
Use either destination-card-no or destination-card-ref-id
Normalized parameters string to sign, according to OAuth 1.0a rules |
---|
POST body parameters to submit |
---|
OAuth 1.0a headers to submit. |
---|
HEX Encoded Signature |
---|
Base64 Encoded Signature |
---|
|