cURL
curl --request POST \
--url https://api.slash.com/transfer/virtual-account \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--header 'X-Idempotency-Key: <x-idempotency-key>' \
--data '
{
"source": "<string>",
"destination": "<string>",
"amountCents": 123,
"memo": "<string>"
}
'import requests
url = "https://api.slash.com/transfer/virtual-account"
payload = {
"source": "<string>",
"destination": "<string>",
"amountCents": 123,
"memo": "<string>"
}
headers = {
"X-Idempotency-Key": "<x-idempotency-key>",
"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-Idempotency-Key': '<x-idempotency-key>',
'X-API-Key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
source: '<string>',
destination: '<string>',
amountCents: 123,
memo: '<string>'
})
};
fetch('https://api.slash.com/transfer/virtual-account', 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.slash.com/transfer/virtual-account",
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([
'source' => '<string>',
'destination' => '<string>',
'amountCents' => 123,
'memo' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>",
"X-Idempotency-Key: <x-idempotency-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.slash.com/transfer/virtual-account"
payload := strings.NewReader("{\n \"source\": \"<string>\",\n \"destination\": \"<string>\",\n \"amountCents\": 123,\n \"memo\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Idempotency-Key", "<x-idempotency-key>")
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.slash.com/transfer/virtual-account")
.header("X-Idempotency-Key", "<x-idempotency-key>")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"source\": \"<string>\",\n \"destination\": \"<string>\",\n \"amountCents\": 123,\n \"memo\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.slash.com/transfer/virtual-account")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Idempotency-Key"] = '<x-idempotency-key>'
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"source\": \"<string>\",\n \"destination\": \"<string>\",\n \"amountCents\": 123,\n \"memo\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"transferId": "<string>"
}{
"message": "<string>",
"name": "<string>",
"identifier": "<string>",
"rawStatus": 123,
"meta": {}
}{
"message": "<string>",
"name": "<string>",
"identifier": "<string>",
"rawStatus": 123,
"meta": {}
}{
"message": "<string>",
"name": "<string>",
"identifier": "<string>",
"rawStatus": 123,
"meta": {}
}{
"message": "<string>",
"name": "<string>",
"identifier": "<string>",
"rawStatus": 123,
"meta": {}
}Transfer Money
Create virtual account transfer
Transfer money between Virtual Accounts or fund a Virtual Account from a Primary Account
POST
/
transfer
/
virtual-account
cURL
curl --request POST \
--url https://api.slash.com/transfer/virtual-account \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--header 'X-Idempotency-Key: <x-idempotency-key>' \
--data '
{
"source": "<string>",
"destination": "<string>",
"amountCents": 123,
"memo": "<string>"
}
'import requests
url = "https://api.slash.com/transfer/virtual-account"
payload = {
"source": "<string>",
"destination": "<string>",
"amountCents": 123,
"memo": "<string>"
}
headers = {
"X-Idempotency-Key": "<x-idempotency-key>",
"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-Idempotency-Key': '<x-idempotency-key>',
'X-API-Key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
source: '<string>',
destination: '<string>',
amountCents: 123,
memo: '<string>'
})
};
fetch('https://api.slash.com/transfer/virtual-account', 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.slash.com/transfer/virtual-account",
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([
'source' => '<string>',
'destination' => '<string>',
'amountCents' => 123,
'memo' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>",
"X-Idempotency-Key: <x-idempotency-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.slash.com/transfer/virtual-account"
payload := strings.NewReader("{\n \"source\": \"<string>\",\n \"destination\": \"<string>\",\n \"amountCents\": 123,\n \"memo\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Idempotency-Key", "<x-idempotency-key>")
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.slash.com/transfer/virtual-account")
.header("X-Idempotency-Key", "<x-idempotency-key>")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"source\": \"<string>\",\n \"destination\": \"<string>\",\n \"amountCents\": 123,\n \"memo\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.slash.com/transfer/virtual-account")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Idempotency-Key"] = '<x-idempotency-key>'
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"source\": \"<string>\",\n \"destination\": \"<string>\",\n \"amountCents\": 123,\n \"memo\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"transferId": "<string>"
}{
"message": "<string>",
"name": "<string>",
"identifier": "<string>",
"rawStatus": 123,
"meta": {}
}{
"message": "<string>",
"name": "<string>",
"identifier": "<string>",
"rawStatus": 123,
"meta": {}
}{
"message": "<string>",
"name": "<string>",
"identifier": "<string>",
"rawStatus": 123,
"meta": {}
}{
"message": "<string>",
"name": "<string>",
"identifier": "<string>",
"rawStatus": 123,
"meta": {}
}Authorizations
api_keybearer
API key authentication for public API requests.
Keys come in two flavors:
- Legal-entity-scoped keys are pinned to a single legal entity. Minted via the dashboard under a specific entity; every request acts on that entity.
- User-scoped keys are pinned to a user and span every legal
entity that user has access to. Every request made with a
user-scoped key (except
GET /legal-entity, which lists the legal entities the user can access) must include anx-legal-entityheader naming the legal entity the request is operating on. Requests without the header are rejected with400. The authenticated user must have an active permission role on the supplied legal entity, otherwise the request is rejected with403.
Headers
Unique key to ensure idempotency of the transfer.
Body
application/json
The ID of the virtual account to transfer money from. Can also be the virtual account linked to a primary Slash account to fund a new virtual account (Virtual account with the name 'Primary account').
The ID of the virtual account to transfer money to.
The amount of money to send in cents.
Optional memo/description for the transfer to help differentiate transactions.
Maximum string length:
255Response
OK
The ID of the transfer that was created.
⌘I