curl --request POST \
--url https://api.lumx.io/autoconversion-rules/simulate-deposit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"accountId": "44dd9734-176a-4ced-924f-103f8d50ea5e",
"amount": "100.00",
"reference": "IIDCDYjYUTbKouEUOyvxZ3xnU"
}
'import requests
url = "https://api.lumx.io/autoconversion-rules/simulate-deposit"
payload = {
"accountId": "44dd9734-176a-4ced-924f-103f8d50ea5e",
"amount": "100.00",
"reference": "IIDCDYjYUTbKouEUOyvxZ3xnU"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
accountId: '44dd9734-176a-4ced-924f-103f8d50ea5e',
amount: '100.00',
reference: 'IIDCDYjYUTbKouEUOyvxZ3xnU'
})
};
fetch('https://api.lumx.io/autoconversion-rules/simulate-deposit', 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://api.lumx.io/autoconversion-rules/simulate-deposit",
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([
'accountId' => '44dd9734-176a-4ced-924f-103f8d50ea5e',
'amount' => '100.00',
'reference' => 'IIDCDYjYUTbKouEUOyvxZ3xnU'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://api.lumx.io/autoconversion-rules/simulate-deposit"
payload := strings.NewReader("{\n \"accountId\": \"44dd9734-176a-4ced-924f-103f8d50ea5e\",\n \"amount\": \"100.00\",\n \"reference\": \"IIDCDYjYUTbKouEUOyvxZ3xnU\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://api.lumx.io/autoconversion-rules/simulate-deposit")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"accountId\": \"44dd9734-176a-4ced-924f-103f8d50ea5e\",\n \"amount\": \"100.00\",\n \"reference\": \"IIDCDYjYUTbKouEUOyvxZ3xnU\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lumx.io/autoconversion-rules/simulate-deposit")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"accountId\": \"44dd9734-176a-4ced-924f-103f8d50ea5e\",\n \"amount\": \"100.00\",\n \"reference\": \"IIDCDYjYUTbKouEUOyvxZ3xnU\"\n}"
response = http.request(request)
puts response.read_body{
"matchedRule": true
}Simulate a deposit
This endpoint simulates a deposit to test autoconversion rules end-to-end. Sandbox only — returns 404 in production.
curl --request POST \
--url https://api.lumx.io/autoconversion-rules/simulate-deposit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"accountId": "44dd9734-176a-4ced-924f-103f8d50ea5e",
"amount": "100.00",
"reference": "IIDCDYjYUTbKouEUOyvxZ3xnU"
}
'import requests
url = "https://api.lumx.io/autoconversion-rules/simulate-deposit"
payload = {
"accountId": "44dd9734-176a-4ced-924f-103f8d50ea5e",
"amount": "100.00",
"reference": "IIDCDYjYUTbKouEUOyvxZ3xnU"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
accountId: '44dd9734-176a-4ced-924f-103f8d50ea5e',
amount: '100.00',
reference: 'IIDCDYjYUTbKouEUOyvxZ3xnU'
})
};
fetch('https://api.lumx.io/autoconversion-rules/simulate-deposit', 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://api.lumx.io/autoconversion-rules/simulate-deposit",
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([
'accountId' => '44dd9734-176a-4ced-924f-103f8d50ea5e',
'amount' => '100.00',
'reference' => 'IIDCDYjYUTbKouEUOyvxZ3xnU'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://api.lumx.io/autoconversion-rules/simulate-deposit"
payload := strings.NewReader("{\n \"accountId\": \"44dd9734-176a-4ced-924f-103f8d50ea5e\",\n \"amount\": \"100.00\",\n \"reference\": \"IIDCDYjYUTbKouEUOyvxZ3xnU\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://api.lumx.io/autoconversion-rules/simulate-deposit")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"accountId\": \"44dd9734-176a-4ced-924f-103f8d50ea5e\",\n \"amount\": \"100.00\",\n \"reference\": \"IIDCDYjYUTbKouEUOyvxZ3xnU\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lumx.io/autoconversion-rules/simulate-deposit")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"accountId\": \"44dd9734-176a-4ced-924f-103f8d50ea5e\",\n \"amount\": \"100.00\",\n \"reference\": \"IIDCDYjYUTbKouEUOyvxZ3xnU\"\n}"
response = http.request(request)
puts response.read_body{
"matchedRule": true
}Authorizations
Bearer authentication header on the format Bearer <API_KEY>.
Headers
Optional UUID v4 idempotency key. If you resend the same key with a different request body, the API returns a 409 error. Cached responses include the header X-Idempotency-Cached: true. Keys expire after 24 hours.
Body
Account that receives the simulated deposit.
"44dd9734-176a-4ced-924f-103f8d50ea5e"
Deposit amount as a numeric string.
"100.00"
Deposit reference. Use the rule's sourceDepositInfo depositIdentifier (PIX) or reference (SPEI) to match the rule. Omit for USD rules, where deposits are matched to the account.
"IIDCDYjYUTbKouEUOyvxZ3xnU"
Response
Deposit successfully simulated.
Whether the simulated deposit matched an active rule.
true