FAQ
In this FAQ, you can find answers to different questions about the usage of our Changelly Fiat API.
General questions
What is necessary to do before Fiat API integration?
Before the integration, you must:
- Register on the Changelly website.
- Get the API keys by contacting your manager. Indicate the email used for registration on the Changelly website.
- Learn our On-Ramp or Off-Ramp use case documentation. There, you can find information about the usage of our methods and their call.
Is it necessary to create an API_PRIVATE_KEY as a PEM file?
Yes, it's necessary. To use the Fiat API correctly, you must create your API_PRIVATE_KEY as a PEM file. You can learn an example of such creation here.
What are your current On-Ramp and Off-Ramp providers?
You can find our current On-Ramp and Off-Ramp providers here.
Are there any limits for sending API requests?
Yes, there is a limit of 2 requests per second. Contact your manager if this RPS isn't enough for you.
Do you keep my money on your side?
No, we don't keep your money on our side. You have to find another service for this purpose.
General technical questions
Is there a sandbox version of the Fiat API?
No, there is no sandbox version of the Fiat API available at the moment. To test it, you can get the API keys and create transactions by making payments. We are planning to develop the sandbox version.
What should I do if I can't receive any callbacks?
If you don't receive any callbacks, please send your manager an email. The email must contain transaction IDs that didn't return callbacks.
Is it possible to register two callback URLs for one Fiat API key?
No, it's not possible. You can register only one callback URL for one Fiat API Key.
How can I convert API private keys from pkcs1 format to pkcs8?
On Mac and *nix OS you can use this console command:
openssl pkcs8 -topk8 -inform PEM -in private_key_pkcs1.pem \
-outform PEM -nocrypt -outprivate_key_pkcs8.pem
Why do I get a 401 error code when requesting the API?
Firstly, check your API keys, especially the private ones. To handle this, use our examples of sending a request with your API keys and send at least one request.
If you don't have any issues, use our code or SDK to decrease the number of errors.
How can I return a definite provider with its offers or providers in the specific order?
To return a definite provider with its offers or providers in the specific order, use the /v1/offers method and transform its response.
For example, you may want to display only the offers with the specific payment method or sort offers by exchange rate.
Why do I get a 500 error code when requesting the API?
If you get this error code, please send your manager an error request with its URL, parameters, call time, and other related data.
Usage API methods questions
How can I know actual countries, currencies, and payment methods?
You can get all this information using our Fiat API methods.
To get an actual countries list, use the /v1/countries method. If you need an actual currencies list, utilize the /v1/currencies one.
Also, you can check an actual payment methods list here.
How can I limit offers and order to specific fiats and/or cryptos?
You can limit such a list by requesting offers and orders only for the necessary pairs.
- Get a list of actual currencies using the /v1/currencies method.
- Then, choose your necessary fiats and/or cryptos and transform the response on your side according to the requirements.
Why does the /v1/orders
return an error instead of a response?
- Check if you request the /v1/offers or /v1/sell/offers method for a necessary currency from and to, country, and amount. Make sure the response returns an essential provider and payment method. Double-check the request parameters to receive an offer.
- Then, check the /v1/orders method response if you receive the offer. The response has a message with error fields you must fix.
Why does the /v1/orders
method return a 400 error code with the message about the wallet validation error?
Double-check the wallet. It must match the coin network and be validated. To check the wallet, use the /v1/validate-address method.
How should I send a request to the /v1/validate-address
method, and how much?
You should send a request to the /v1/validate-address method once for every new wallet.