Create a webhook registration
curl --request POST \
--url https://app.sandbox.rio.trade/api/webhooks/{type} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"url": "<string>",
"userId": "66290ac8bd3903485989f82e",
"retryOnFailure": true
}
'import requests
url = "https://app.sandbox.rio.trade/api/webhooks/{type}"
payload = {
"url": "<string>",
"userId": "66290ac8bd3903485989f82e",
"retryOnFailure": True
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({url: '<string>', userId: '66290ac8bd3903485989f82e', retryOnFailure: true})
};
fetch('https://app.sandbox.rio.trade/api/webhooks/{type}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.sandbox.rio.trade/api/webhooks/{type}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'url' => '<string>',
'userId' => '66290ac8bd3903485989f82e',
'retryOnFailure' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.sandbox.rio.trade/api/webhooks/{type}"
payload := strings.NewReader("{\n \"url\": \"<string>\",\n \"userId\": \"66290ac8bd3903485989f82e\",\n \"retryOnFailure\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.sandbox.rio.trade/api/webhooks/{type}")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"<string>\",\n \"userId\": \"66290ac8bd3903485989f82e\",\n \"retryOnFailure\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.sandbox.rio.trade/api/webhooks/{type}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"url\": \"<string>\",\n \"userId\": \"66290ac8bd3903485989f82e\",\n \"retryOnFailure\": true\n}"
response = http.request(request)
puts response.read_body{
"id": "66733d33222710ab2785dc62",
"secret": "IgAeeIIorKQ86gAGItsmY0slzhxRY1Gvj/VIJz8DtIs="
}Webhooks API
Register a Webhook
POST
/
api
/
webhooks
/
{type}
Create a webhook registration
curl --request POST \
--url https://app.sandbox.rio.trade/api/webhooks/{type} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"url": "<string>",
"userId": "66290ac8bd3903485989f82e",
"retryOnFailure": true
}
'import requests
url = "https://app.sandbox.rio.trade/api/webhooks/{type}"
payload = {
"url": "<string>",
"userId": "66290ac8bd3903485989f82e",
"retryOnFailure": True
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({url: '<string>', userId: '66290ac8bd3903485989f82e', retryOnFailure: true})
};
fetch('https://app.sandbox.rio.trade/api/webhooks/{type}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.sandbox.rio.trade/api/webhooks/{type}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'url' => '<string>',
'userId' => '66290ac8bd3903485989f82e',
'retryOnFailure' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.sandbox.rio.trade/api/webhooks/{type}"
payload := strings.NewReader("{\n \"url\": \"<string>\",\n \"userId\": \"66290ac8bd3903485989f82e\",\n \"retryOnFailure\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.sandbox.rio.trade/api/webhooks/{type}")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"<string>\",\n \"userId\": \"66290ac8bd3903485989f82e\",\n \"retryOnFailure\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.sandbox.rio.trade/api/webhooks/{type}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"url\": \"<string>\",\n \"userId\": \"66290ac8bd3903485989f82e\",\n \"retryOnFailure\": true\n}"
response = http.request(request)
puts response.read_body{
"id": "66733d33222710ab2785dc62",
"secret": "IgAeeIIorKQ86gAGItsmY0slzhxRY1Gvj/VIJz8DtIs="
}v1 (legacy). This page documents the API before the v2 update. The v1
format is not enabled for new accounts and must be enabled on your account by
your account manager. New integrations should use the
current documentation. To update an existing integration,
follow the migration guide.
Authorizations
Path Parameters
Type of webhook to be created.
Available options:
orders, bank-accounts, users Body
application/json
URL to send the webhook to
The user ID of the user that the webhook is being created for
Example:
"66290ac8bd3903485989f82e"
Whether to retry webhook delivery on failure. If true, the system will retry up to 5 times with exponential backoff. If false or not provided, only one attempt will be made.
Example:
true