# Basic concepts

## Authentication

All requests must be authenticated.

In order to make an authenticated request, please include a header containing your token as follows: X-Authorization: YOUR\_TOKEN The token is provided to the user associated with the Partner. One user - one token.

To get a test account with an API token - please - contact the **<dev@oyf.io>** or contact the sales team.

## Permissions

Privileges are an internal mechanism for restricting user actions. The set of privileges is given to the user during account creation and determines the actions that he is allowed to do. In an integration context, you will only encounter privileges when you get a "permission denied" error.

## Requests

All requests should be made using the HTTPS protocol so that traffic is encrypted.

When passing parameters in a Post request, parameters must be passed as a form object containing attribute names and values as key-value pairs.

## Responses

All the responses will be JSON structures (Except file downloading). The API aim to conform to the Restful concept. All meaningful information is passed in the BODY of response. API only supports GET and Post requests.

## Getting the Currency <a href="#getting_the_currency" id="getting_the_currency"></a>

{% code lineNumbers="true" fullWidth="true" %}

```php
$apiURL = 'https://live.oyf.io/api/payment/get-currencies-list';
$secret_key = 'aij3vg2bmucgbzrkgzsfgkenaabhdf8be81mgzz7yj38787rav8ai';
$profile_id = 'c83821798-286c-0007-bb29-2ce849e0de10';
$curl = curl_init($apiURL);
curl_setopt($curl, CURLOPT_URL, $apiURL);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$headers = array('Content-Type: application/json','X-Authorization:' . $secret_key);
curl_setopt($curl, CURLOPT_HTTPHEADER,$headers);
$data['profile_id'] = $profile_id;
$data= json_encode($data);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
```

{% endcode %}

## Response

<pre class="language-json"><code class="lang-json">{
"_metadata": {
"outcome": "SUCCESS",
<strong>"outcomeCode": 200,
</strong>"numOfRecords": 1,
"message": "Currency list"
"records": [
{
"uuid": "c7b5e721-72c3-4222-b2c4-d4a244daa1ae",
"name": "Tether Test",
"network_type": "BEP20",
"logo": "https://dhsf9xmf10p0r.cloudfront.net/oyf/uploads/1684244567-Group%201000004067.png",
}
],
"errors": []
}
</code></pre>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.oyf.io/developer-guide/basic-concepts.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
