Virtual Accounts and FX

Hi folks,

We’re trying to use virtual IBANs in Europe to receive payments in Euros. Does anyone know how we FX these funds across to a different wallet? (our corporate wallet in AUD)

We are trying to use the various “Wallet FX Rates (Beta)” APIs however trying to create a quote fails with a MISSING_PHONE_NUMBER_OR_EWALLET_ID error. I know the wallet exists because I can retrieve it using other API methods, however creating an FX quote simply does not work.

Ultimately, I’d like to use the “Convert Currencies and Transfer” method, however without being able to create a quote, we can’t even get past the start line.

I cannot see any other method to transfer FX within or between wallets - is there something that I might be missing?

Thanks @Alan, I see that you are looking at Request Quote under Wallet FX Rates (Beta). I want to confirm this is the request you are currently trying to make?

When I used Request Quote I tried the following and it worked for me.

Request Quote Request

{
    "ewallet_id": "ewallet_3975c946fe7836e47b05a2b70e22d63a",
    "sell_currency": "EUR",
    "buy_currency": "USD",
    "fixed_side": "sell",
    "amount": 100
}

Request Quote Response

{
    "status": {
        "error_code": "",
        "status": "SUCCESS",
        "message": "",
        "response_code": "",
        "operation_id": "088ba35a-7e29-47ac-b4e8-1767a39109ac"
    },
    "data": {
        "quote_id": "quote_fd6a3d059c2596c89110124aa4251c73",
        "ewallet_id": "ewallet_3975c946fe7836e47b05a2b70e22d63a",
        "buy_currency": "USD",
        "sell_currency": "EUR",
        "fixed_side": "sell",
        "rate": 1.0084937585,
        "created_at": 1646076749,
        "expires_at": 1646249548,
        "sell_amount": 100,
        "buy_amount": 100.85,
        "sufficient_funds": true,
        "deposit_amount": 0,
        "deposit_currency": "EUR"
    }
}

I tried a few different variations, but I’ll keep trying to replicate your error.

G’day Kyle, thanks for getting back to us so quickly

We see that the documentation endpoint is “rates/quotes”. I don’t know when this changed, as we have been using the “account/quote” endpoint as that was what was documented some time ago (not sure when it changed).

Given that, I have just made the following call to the original endpoint and received the subsequent error. To be clear, the wallet exists because I can call “user/ewallet_OurCorporateWalletID” and receive details of said wallet.

POST: https://api.rapyd.net/v1/account/quote
Request content:
{
  "amount": "1000",
  "buy_amount": "1000",
  "buy_currency": "AUD",
  "ewallet_id": "ewallet_OurCorporateWalletID",
  "fixed_side": "sell",
  "forward_date": null,
  "sell_currency": "EUR"
}
Response content: 
{
  "status": {
    "error_code": "MISSING_PHONE_NUMBER_OR_EWALLET_ID",
    "status": "ERROR",
    "message": "The request attempted an operation that requires a wallet, but the wallet was not found. The request was rejected. Corrective action: Provide the wallet's phone number in E.164 format or wallet ID, which is a string starting with 'ewallet_'.",
    "response_code": "MISSING_PHONE_NUMBER_OR_EWALLET_ID",
    "operation_id": "e9106753-2ce8-4760-88a3-d64b271a04eb"
  }
}

If we attempt the same request using the “rates/quotes” API, we receive the following:

POST: https://api.rapyd.net/v1/rates/quotes
Request content:
{
  "amount": "1000",
  "buy_amount": "1000",
  "buy_currency": "AUD",
  "ewallet_id": "ewallet_OurCorporateWalletID",
  "fixed_side": "sell",
  "forward_date": null,
  "sell_currency": "EUR"
}
Response content: 
{
  "status": {
    "error_code": "INTERNAL_ERROR",
    "status": "ERROR",
    "message": "Contact Rapyd Client Support.",
    "response_code": "INTERNAL_ERROR",
    "operation_id": "cc17e0e7-fffd-4a5c-be82-09320792a6b4"
  }
}

I also see that you have used USD-EUR pair - we operate in AUD (and have successfully used Rapyd for AUD spot/execute for some time now). Can you see whether AUD FX is working for you?

Our business case is to receive EUR via a per-customer virtual bank account (IBAN), FX to AUD and transfer to our corporate wallet. As such, the FX quote is the first step in this workflow.

Any other suggestions?

Thanks @JohnTownes. Here is a list of our supported currency pairs. Unfortunately in Beta version AUD is not on here yet.

  • USD-SGD
  • EUR-USD
  • EUR-SGD
  • GBP-USD
  • GBP-EUR
  • GBP-SGD
  • USD-HKD
  • SGD-HKD
  • USD-HKD
  • SGD-THB

For some reason I was referring back to this post where Alan may have been talking about Austria/EUR, but I do see now that you have AUD / Australia here.

I can follow up about the endpoint change with our product team. Any further changes, I’ll be sure to post in our Changelog. Thanks.

You can also tag the Feedback category label with your post.
Screen Shot 2022-03-01 at 5.15.11 PM

Thanks for the update Kyle.

We’ll try and work this through with Rapyd support, however the response hasn’t been great so far. It is frustrating for us because we are successfully using quote/execute in production now, so to hear about these changes is something of a surprise to us.