Create request
curl --request POST \
--url https://api.blockradar.co/v1/customers/{customerId}/onboarding-requests \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"provider": "infinia",
"callbackUrl": "https://example.com/webhooks/customer-onboarding"
}
'import requests
url = "https://api.blockradar.co/v1/customers/{customerId}/onboarding-requests"
payload = {
"provider": "infinia",
"callbackUrl": "https://example.com/webhooks/customer-onboarding"
}
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({
provider: 'infinia',
callbackUrl: 'https://example.com/webhooks/customer-onboarding'
})
};
fetch('https://api.blockradar.co/v1/customers/{customerId}/onboarding-requests', 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.blockradar.co/v1/customers/{customerId}/onboarding-requests",
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([
'provider' => 'infinia',
'callbackUrl' => 'https://example.com/webhooks/customer-onboarding'
]),
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://api.blockradar.co/v1/customers/{customerId}/onboarding-requests"
payload := strings.NewReader("{\n \"provider\": \"infinia\",\n \"callbackUrl\": \"https://example.com/webhooks/customer-onboarding\"\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://api.blockradar.co/v1/customers/{customerId}/onboarding-requests")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"provider\": \"infinia\",\n \"callbackUrl\": \"https://example.com/webhooks/customer-onboarding\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.blockradar.co/v1/customers/{customerId}/onboarding-requests")
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 \"provider\": \"infinia\",\n \"callbackUrl\": \"https://example.com/webhooks/customer-onboarding\"\n}"
response = http.request(request)
puts response.read_body{
"message": "<string>",
"data": {
"customerId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"case": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"businessId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"customerId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"providerId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"subjectType": "customer",
"status": "draft",
"mode": "api_only",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"feature": "<string>",
"providerReference": "<string>",
"routeIntent": {},
"data": {},
"hostedSessions": [
{}
],
"reason": "<string>",
"metadata": {},
"actions": [
{}
],
"availableActions": [
"edit_and_resubmit"
]
},
"requirements": {
"mode": "api_only",
"subjectType": "customer",
"status": "draft",
"schema": {},
"feature": "offramp"
}
},
"status": true
}Core flow
Create request
Create a request for an existing customer. Save data.case.id as the caseId for subsequent calls. Complete the fields in data.requirements.schema, then submit the request.
POST
/
v1
/
customers
/
{customerId}
/
onboarding-requests
Create request
curl --request POST \
--url https://api.blockradar.co/v1/customers/{customerId}/onboarding-requests \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"provider": "infinia",
"callbackUrl": "https://example.com/webhooks/customer-onboarding"
}
'import requests
url = "https://api.blockradar.co/v1/customers/{customerId}/onboarding-requests"
payload = {
"provider": "infinia",
"callbackUrl": "https://example.com/webhooks/customer-onboarding"
}
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({
provider: 'infinia',
callbackUrl: 'https://example.com/webhooks/customer-onboarding'
})
};
fetch('https://api.blockradar.co/v1/customers/{customerId}/onboarding-requests', 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.blockradar.co/v1/customers/{customerId}/onboarding-requests",
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([
'provider' => 'infinia',
'callbackUrl' => 'https://example.com/webhooks/customer-onboarding'
]),
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://api.blockradar.co/v1/customers/{customerId}/onboarding-requests"
payload := strings.NewReader("{\n \"provider\": \"infinia\",\n \"callbackUrl\": \"https://example.com/webhooks/customer-onboarding\"\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://api.blockradar.co/v1/customers/{customerId}/onboarding-requests")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"provider\": \"infinia\",\n \"callbackUrl\": \"https://example.com/webhooks/customer-onboarding\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.blockradar.co/v1/customers/{customerId}/onboarding-requests")
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 \"provider\": \"infinia\",\n \"callbackUrl\": \"https://example.com/webhooks/customer-onboarding\"\n}"
response = http.request(request)
puts response.read_body{
"message": "<string>",
"data": {
"customerId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"case": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"businessId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"customerId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"providerId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"subjectType": "customer",
"status": "draft",
"mode": "api_only",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"feature": "<string>",
"providerReference": "<string>",
"routeIntent": {},
"data": {},
"hostedSessions": [
{}
],
"reason": "<string>",
"metadata": {},
"actions": [
{}
],
"availableActions": [
"edit_and_resubmit"
]
},
"requirements": {
"mode": "api_only",
"subjectType": "customer",
"status": "draft",
"schema": {},
"feature": "offramp"
}
},
"status": true
}Create a request for an existing customer. Save
data.case.id as the caseId for subsequent calls. Complete the fields in data.requirements.schema, then submit the request.
See the integration overview for the full flow.Authorizations
Path Parameters
Customer identifier.
Body
application/json
Provider slug or provider UUID. Omit to use provider routing.
Example:
"infinia"
Intended customer activity.
Available options:
onramp, offramp Show child attributes
Show child attributes
URL notified as the onboarding request progresses.
Example:
"https://example.com/webhooks/customer-onboarding"

