Wallet Order Reservations
Wallet Order Reservations are required before processing cards.
A successful Wallet Order Reservation will return a url of the hosted widget which can be presented to your users and a reservation ID if you choose to use a white label API solution.
Internationalization
The API supports international address details. A province or administrative area, such as a county, can be entered in the "state" parameter. The example below features an address in Norway, which has counties instead of states. The county name is listed in the state field.
Note: Localized presentment currencies will enjoy higher conversion rates than setting USD as the sourceCurrency
for international users.
{
"sourceAmount": "100",
"amountIncludeFees": false,
"paymentMethod": "debit-card",
"sourceCurrency": "NOK",
"destCurrency": "BTC",
"dest": "bitcoin:1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2",
"referrerAccountId": "AC_XXXXXXXXXX",
"street1": "Bergjelandsgt. 30",
"postalCode":"4012",
"city": "Stavanger",
"state":"Rogaland",
"country":"NO"
}
You can choose a different sourceCurrency
to charge a card if a local sourceCurrency
does not support a desired market pair.
Rates Locking
To use rates locking you must use specific fields.
When sourceAmount
/destAmount
is specified, amountIncludeFees
is mandatory.
When amount
is specified, you are not locking the rates.
Necessary Fields for Rates Locking:
sourceAmount
OR destAmount
, not both,
amountIncludeFees
Ex. true
paymentMethod
Ex. "debit-card",
sourceCurrency
Ex. "USD",
destCurrency
Ex. "ETH",
dest
Ex. "ethereum:0x9E01E0E60dF079136a7a1d4ed97d709D5Fe3e341",
referrerAccountId
Ex. "AC_XXXXXXXXXX",
country
Ex. "US"
How amountIncludeFees Works:
amountIncludeFees
= false
Fees are added on top: $100 + fees will be charged to the user. The user receives the full $100 in value.
amountIncludeFees
= true
Fees will be subtracted from the amount: $100 - fees will be sent to the user's wallet. The user receives the amount less the fees.
Rate Locking Expiration
Locked quotes are good for 15 minutes. After that, the reservation is expired.
curl -X POST \
API_URL/v3/orders/reserve \
-H 'Authorization: Bearer WYRE_SECRET_KEY' \
-H 'Content-Type: application/json' \
-H 'cache-control: no-cache' \
-d '{
"sourceAmount": "10",
"amountIncludeFees": false,
"paymentMethod": "debit-card",
"sourceCurrency": "USD",
"destCurrency": "ETH",
"dest": "ethereum:0x9E01E0E60dF079136a7a1d4ed97d709D5Fe3e341",
"redirectUrl": "https://www.sendeyre.com",
"failureRedirectUrl": "https://www.sendwyre.com",
"referrerAccountId": "AC_XXXXXXXXXX",
"country":"US",
"lockFields": ["amount"]
}'
Next: You need to GET the Rate Locked Reservation endpoint. This will return the response below, and allows you to display rates and fees in your UI before completing the transaction.
{
"amount":null,
"sourceCurrency":"USD",
"destCurrency":"ETH",
"dest":"ethereum:0x9E01E0E60dF079136a7a1d4ed97d709D5Fe3e341",
"referrerAccountId":"AC______AAAA",
"sourceAmount":null,
"destAmount":0.02,
"amountIncludeFees":true,
"street1":"1550 Bryant Street",
"city":"San Francisco",
"state":"CA",
"postalCode":"94103",
"country":"US",
"firstName":"",
"lastName":"",
"phone":"...",
"email":"",
"lockFields":[
"sourceAmount",
"destAmount",
"amountIncludeFees",
"paymentMethod",
"country",
"sourceCurrency",
"destCurrency",
"dest",
"referrerAccountId"
],
"redirectUrl":"http://google.com",
"failureRedirectUrl":"http://google.com",
"paymentMethod":"debit-card",
"referenceId":null,
"hideTrackBtn":null,
"quote":{
"sourceCurrency":"USD",
"sourceAmount":8.89,
"sourceAmountWithoutFees":5.45,
"destCurrency":"ETH",
"destAmount":0.013,
"exchangeRate":0.002388613861386138642579298795,
"equivalencies":{
"GUSD":5.26,
"USDC":5.255737,
"EUR":4.44,
"USDT":5.255217,
"GBP":4.03,
"DAI":6.081825531005859375,
"USD":5.25,
"CAD":6.93,
"BUSD":5.255736808466774984,
"USDS":5.255737,
"HUSD":5.25573681,
"BTC":0.00039169,
"ETH":0.013000000000000000,
"AUD":7.38,
"PAX":5.255736808466774984,
"WETH":0.013000000000000000
},
"fees":{
"ETH":0.007000000000000000,
"USD":0.51
}
},
"quoteLockRequest":true
}
For Card Processing API or Apple Pay White label you must use the values in the quote
object as the rates are locked. For this reservation, the quote cannot be changed.
Wallet Order Reservation Notes
You will only need an approved production Wyre account to generate the WORs (Wallet Order Reservations). If you do not have an approved account they will fail automatically.
The generated reservation wallet order ID may only be used once. If the order fails, the ID will become unusable.
Any callbacks issued on behalf of the order will use the same order ID, so it can be useful for correlating Wyre order to data in your own database.
Reservations are good for 15 minutes.
You should supply your own test dummy data. Do not use the ones in the samples.
Updated almost 3 years ago