Create Transfer
curl --request POST \
--url https://api.purevault.com/v1/transfers \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"fromFboAccountId": "<string>",
"toFboAccountId": "<string>",
"notes": "<string>",
"items": [
{}
]
}
'import requests
url = "https://api.purevault.com/v1/transfers"
payload = {
"fromFboAccountId": "<string>",
"toFboAccountId": "<string>",
"notes": "<string>",
"items": [{}]
}
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({
fromFboAccountId: '<string>',
toFboAccountId: '<string>',
notes: '<string>',
items: [{}]
})
};
fetch('https://api.purevault.com/v1/transfers', 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.purevault.com/v1/transfers",
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([
'fromFboAccountId' => '<string>',
'toFboAccountId' => '<string>',
'notes' => '<string>',
'items' => [
[
]
]
]),
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.purevault.com/v1/transfers"
payload := strings.NewReader("{\n \"fromFboAccountId\": \"<string>\",\n \"toFboAccountId\": \"<string>\",\n \"notes\": \"<string>\",\n \"items\": [\n {}\n ]\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.purevault.com/v1/transfers")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"fromFboAccountId\": \"<string>\",\n \"toFboAccountId\": \"<string>\",\n \"notes\": \"<string>\",\n \"items\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.purevault.com/v1/transfers")
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 \"fromFboAccountId\": \"<string>\",\n \"toFboAccountId\": \"<string>\",\n \"notes\": \"<string>\",\n \"items\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_bodyTransfers
Create Transfer
Create a transfer between FBO accounts
POST
/
transfers
Create Transfer
curl --request POST \
--url https://api.purevault.com/v1/transfers \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"fromFboAccountId": "<string>",
"toFboAccountId": "<string>",
"notes": "<string>",
"items": [
{}
]
}
'import requests
url = "https://api.purevault.com/v1/transfers"
payload = {
"fromFboAccountId": "<string>",
"toFboAccountId": "<string>",
"notes": "<string>",
"items": [{}]
}
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({
fromFboAccountId: '<string>',
toFboAccountId: '<string>',
notes: '<string>',
items: [{}]
})
};
fetch('https://api.purevault.com/v1/transfers', 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.purevault.com/v1/transfers",
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([
'fromFboAccountId' => '<string>',
'toFboAccountId' => '<string>',
'notes' => '<string>',
'items' => [
[
]
]
]),
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.purevault.com/v1/transfers"
payload := strings.NewReader("{\n \"fromFboAccountId\": \"<string>\",\n \"toFboAccountId\": \"<string>\",\n \"notes\": \"<string>\",\n \"items\": [\n {}\n ]\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.purevault.com/v1/transfers")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"fromFboAccountId\": \"<string>\",\n \"toFboAccountId\": \"<string>\",\n \"notes\": \"<string>\",\n \"items\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.purevault.com/v1/transfers")
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 \"fromFboAccountId\": \"<string>\",\n \"toFboAccountId\": \"<string>\",\n \"notes\": \"<string>\",\n \"items\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_bodyCreates a transfer of one or more inventory items from one FBO account to another within the organization. Every item must currently belong to the source FBO account and be in an
in_vault status. The transfer is created with a pending status.
Permission: transfer_batches:create
Request body
string
required
ID of the FBO account the items are transferred from.
string
required
ID of the FBO account the items are transferred to. Must differ from
fromFboAccountId.string
Optional free-text note describing the transfer.
array
required
The inventory items to transfer — at least one. Each entry contains:
inventoryItemId(string, required) — ID of the inventory item to transfer.reason(string, required) — Why the item is being transferred. One ofrequest,trade,rebalance.
inventoryItemId values must be unique within the request.Response
Returns the created transfer batch.{
"data": {
"id": "xfer_new789",
"fromFboAccountId": "fbo_abc123",
"toFboAccountId": "fbo_def456",
"organizationId": "org_abc123",
"status": "pending",
"totalItems": 2,
"approvedBySystem": false,
"notes": "Quarterly rebalance",
"createdAt": "2025-06-15T09:00:00Z"
}
}
⌘I