Create Transactions
Scopes: transaction:create
curl --request POST \
--url https://api.sandbox.getasset.com/v0/business/{business_id}/transactions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
[
{
"description": "Payment from Acme Corp",
"transaction_datetime": "2025-01-15T14:30:00Z",
"amount": 150.75,
"transaction_id": "plaid_txn_abc123",
"external_account_id": "eac_WQMDNUHpBThYSNh4AprDBo",
"line_items": [
{
"description": "Office Supplies",
"amount": -50,
"ledger_id": "ldg_Ns6rRRLYVZPh4cVB7MDby5",
"ledger_name": "Software & SaaS Expense"
}
],
"metadata_": {},
"tags": {
"Location": "NYC"
}
}
]
'import requests
url = "https://api.sandbox.getasset.com/v0/business/{business_id}/transactions"
payload = [
{
"description": "Payment from Acme Corp",
"transaction_datetime": "2025-01-15T14:30:00Z",
"amount": 150.75,
"transaction_id": "plaid_txn_abc123",
"external_account_id": "eac_WQMDNUHpBThYSNh4AprDBo",
"line_items": [
{
"description": "Office Supplies",
"amount": -50,
"ledger_id": "ldg_Ns6rRRLYVZPh4cVB7MDby5",
"ledger_name": "Software & SaaS Expense"
}
],
"metadata_": {},
"tags": { "Location": "NYC" }
}
]
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([
{
description: 'Payment from Acme Corp',
transaction_datetime: '2025-01-15T14:30:00Z',
amount: 150.75,
transaction_id: 'plaid_txn_abc123',
external_account_id: 'eac_WQMDNUHpBThYSNh4AprDBo',
line_items: [
{
description: 'Office Supplies',
amount: -50,
ledger_id: 'ldg_Ns6rRRLYVZPh4cVB7MDby5',
ledger_name: 'Software & SaaS Expense'
}
],
metadata_: {},
tags: {Location: 'NYC'}
}
])
};
fetch('https://api.sandbox.getasset.com/v0/business/{business_id}/transactions', 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.sandbox.getasset.com/v0/business/{business_id}/transactions",
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([
[
'description' => 'Payment from Acme Corp',
'transaction_datetime' => '2025-01-15T14:30:00Z',
'amount' => 150.75,
'transaction_id' => 'plaid_txn_abc123',
'external_account_id' => 'eac_WQMDNUHpBThYSNh4AprDBo',
'line_items' => [
[
'description' => 'Office Supplies',
'amount' => -50,
'ledger_id' => 'ldg_Ns6rRRLYVZPh4cVB7MDby5',
'ledger_name' => 'Software & SaaS Expense'
]
],
'metadata_' => [
],
'tags' => [
'Location' => 'NYC'
]
]
]),
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.sandbox.getasset.com/v0/business/{business_id}/transactions"
payload := strings.NewReader("[\n {\n \"description\": \"Payment from Acme Corp\",\n \"transaction_datetime\": \"2025-01-15T14:30:00Z\",\n \"amount\": 150.75,\n \"transaction_id\": \"plaid_txn_abc123\",\n \"external_account_id\": \"eac_WQMDNUHpBThYSNh4AprDBo\",\n \"line_items\": [\n {\n \"description\": \"Office Supplies\",\n \"amount\": -50,\n \"ledger_id\": \"ldg_Ns6rRRLYVZPh4cVB7MDby5\",\n \"ledger_name\": \"Software & SaaS Expense\"\n }\n ],\n \"metadata_\": {},\n \"tags\": {\n \"Location\": \"NYC\"\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.sandbox.getasset.com/v0/business/{business_id}/transactions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("[\n {\n \"description\": \"Payment from Acme Corp\",\n \"transaction_datetime\": \"2025-01-15T14:30:00Z\",\n \"amount\": 150.75,\n \"transaction_id\": \"plaid_txn_abc123\",\n \"external_account_id\": \"eac_WQMDNUHpBThYSNh4AprDBo\",\n \"line_items\": [\n {\n \"description\": \"Office Supplies\",\n \"amount\": -50,\n \"ledger_id\": \"ldg_Ns6rRRLYVZPh4cVB7MDby5\",\n \"ledger_name\": \"Software & SaaS Expense\"\n }\n ],\n \"metadata_\": {},\n \"tags\": {\n \"Location\": \"NYC\"\n }\n }\n]")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sandbox.getasset.com/v0/business/{business_id}/transactions")
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 {\n \"description\": \"Payment from Acme Corp\",\n \"transaction_datetime\": \"2025-01-15T14:30:00Z\",\n \"amount\": 150.75,\n \"transaction_id\": \"plaid_txn_abc123\",\n \"external_account_id\": \"eac_WQMDNUHpBThYSNh4AprDBo\",\n \"line_items\": [\n {\n \"description\": \"Office Supplies\",\n \"amount\": -50,\n \"ledger_id\": \"ldg_Ns6rRRLYVZPh4cVB7MDby5\",\n \"ledger_name\": \"Software & SaaS Expense\"\n }\n ],\n \"metadata_\": {},\n \"tags\": {\n \"Location\": \"NYC\"\n }\n }\n]"
response = http.request(request)
puts response.read_body{
"data": [
{
"external_id": "1234567890",
"amount": 520.56,
"datetime": "2023-11-07T05:31:56Z",
"description": "Payment from Acme Corp",
"posted": true,
"type": "business",
"reviewed": true,
"id": "txn_WQMDNUHpBThYSNh4AprDBo",
"external_account_id": "eac_WQMDNUHpBThYSNh4AprDBo",
"metadata_": {},
"category": [
{
"amount": "89.23",
"name": "Office Supplies"
}
],
"status": "confirmed",
"line_items": [
{
"id": "le_GA6EG2qFxA97NZHtxeLPUy",
"ledger_id": "ldg_Ns6rRRLYVZPh4cVB7MDby5",
"category": "Office Supplies",
"description": "Office Supplies",
"amount": -89.23
}
],
"invoice_payments": null,
"refund_payments": null,
"bill_payments": null,
"tags": {
"Job": [
{
"amount": "3000.00",
"value": "Maple Street Remodel"
},
{
"amount": "1500.00",
"value": "Downtown Office Rewire"
}
]
}
}
],
"errors": [
{
"error": "<string>",
"transaction_id": "<string>"
}
]
}{
"error": "<string>",
"data": "<unknown>"
}{
"error": "<string>",
"data": "<unknown>"
}{
"error": "<string>",
"data": "<unknown>"
}{
"error": "<string>",
"data": "<unknown>"
}{
"error": "<string>",
"data": "<unknown>"
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Path Parameters
The id of the business
"biz_GA6EG2qFxA97NZHtxeLPUy"
Body
100The description of the Transaction
512"Payment from Acme Corp"
The datetime the Transaction was created in UTC ISO-8601 format
"2025-01-15T14:30:00Z"
The amount of the Transaction
150.75
A value that uniquely identifies the Transaction
"plaid_txn_abc123"
The ID of the External Account associated with the Transaction
"eac_WQMDNUHpBThYSNh4AprDBo"
Categorize the Transaction on ingestion. One line item assigns a single category, several split it across categories, and each amount is signed in the same direction as the Transaction and must sum to it. When given, the Journal Entry is created from these line items and the categorization pipeline does not run.
Show child attributes
Show child attributes
The metadata of the Transaction
Add tags using two methods: Inline tags or tag splits. Each field maps to either a single value (string, e.g. 'NYC') or a list of {value, amount, ledger_id} objects to allocate the transaction across multiple values. The tag field must already exist; values are created automatically if missing. Per-field sum of amounts must not exceed the transaction amount.
Show child attributes
Show child attributes
{ "Location": "NYC" }
curl --request POST \
--url https://api.sandbox.getasset.com/v0/business/{business_id}/transactions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
[
{
"description": "Payment from Acme Corp",
"transaction_datetime": "2025-01-15T14:30:00Z",
"amount": 150.75,
"transaction_id": "plaid_txn_abc123",
"external_account_id": "eac_WQMDNUHpBThYSNh4AprDBo",
"line_items": [
{
"description": "Office Supplies",
"amount": -50,
"ledger_id": "ldg_Ns6rRRLYVZPh4cVB7MDby5",
"ledger_name": "Software & SaaS Expense"
}
],
"metadata_": {},
"tags": {
"Location": "NYC"
}
}
]
'import requests
url = "https://api.sandbox.getasset.com/v0/business/{business_id}/transactions"
payload = [
{
"description": "Payment from Acme Corp",
"transaction_datetime": "2025-01-15T14:30:00Z",
"amount": 150.75,
"transaction_id": "plaid_txn_abc123",
"external_account_id": "eac_WQMDNUHpBThYSNh4AprDBo",
"line_items": [
{
"description": "Office Supplies",
"amount": -50,
"ledger_id": "ldg_Ns6rRRLYVZPh4cVB7MDby5",
"ledger_name": "Software & SaaS Expense"
}
],
"metadata_": {},
"tags": { "Location": "NYC" }
}
]
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([
{
description: 'Payment from Acme Corp',
transaction_datetime: '2025-01-15T14:30:00Z',
amount: 150.75,
transaction_id: 'plaid_txn_abc123',
external_account_id: 'eac_WQMDNUHpBThYSNh4AprDBo',
line_items: [
{
description: 'Office Supplies',
amount: -50,
ledger_id: 'ldg_Ns6rRRLYVZPh4cVB7MDby5',
ledger_name: 'Software & SaaS Expense'
}
],
metadata_: {},
tags: {Location: 'NYC'}
}
])
};
fetch('https://api.sandbox.getasset.com/v0/business/{business_id}/transactions', 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.sandbox.getasset.com/v0/business/{business_id}/transactions",
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([
[
'description' => 'Payment from Acme Corp',
'transaction_datetime' => '2025-01-15T14:30:00Z',
'amount' => 150.75,
'transaction_id' => 'plaid_txn_abc123',
'external_account_id' => 'eac_WQMDNUHpBThYSNh4AprDBo',
'line_items' => [
[
'description' => 'Office Supplies',
'amount' => -50,
'ledger_id' => 'ldg_Ns6rRRLYVZPh4cVB7MDby5',
'ledger_name' => 'Software & SaaS Expense'
]
],
'metadata_' => [
],
'tags' => [
'Location' => 'NYC'
]
]
]),
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.sandbox.getasset.com/v0/business/{business_id}/transactions"
payload := strings.NewReader("[\n {\n \"description\": \"Payment from Acme Corp\",\n \"transaction_datetime\": \"2025-01-15T14:30:00Z\",\n \"amount\": 150.75,\n \"transaction_id\": \"plaid_txn_abc123\",\n \"external_account_id\": \"eac_WQMDNUHpBThYSNh4AprDBo\",\n \"line_items\": [\n {\n \"description\": \"Office Supplies\",\n \"amount\": -50,\n \"ledger_id\": \"ldg_Ns6rRRLYVZPh4cVB7MDby5\",\n \"ledger_name\": \"Software & SaaS Expense\"\n }\n ],\n \"metadata_\": {},\n \"tags\": {\n \"Location\": \"NYC\"\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.sandbox.getasset.com/v0/business/{business_id}/transactions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("[\n {\n \"description\": \"Payment from Acme Corp\",\n \"transaction_datetime\": \"2025-01-15T14:30:00Z\",\n \"amount\": 150.75,\n \"transaction_id\": \"plaid_txn_abc123\",\n \"external_account_id\": \"eac_WQMDNUHpBThYSNh4AprDBo\",\n \"line_items\": [\n {\n \"description\": \"Office Supplies\",\n \"amount\": -50,\n \"ledger_id\": \"ldg_Ns6rRRLYVZPh4cVB7MDby5\",\n \"ledger_name\": \"Software & SaaS Expense\"\n }\n ],\n \"metadata_\": {},\n \"tags\": {\n \"Location\": \"NYC\"\n }\n }\n]")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sandbox.getasset.com/v0/business/{business_id}/transactions")
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 {\n \"description\": \"Payment from Acme Corp\",\n \"transaction_datetime\": \"2025-01-15T14:30:00Z\",\n \"amount\": 150.75,\n \"transaction_id\": \"plaid_txn_abc123\",\n \"external_account_id\": \"eac_WQMDNUHpBThYSNh4AprDBo\",\n \"line_items\": [\n {\n \"description\": \"Office Supplies\",\n \"amount\": -50,\n \"ledger_id\": \"ldg_Ns6rRRLYVZPh4cVB7MDby5\",\n \"ledger_name\": \"Software & SaaS Expense\"\n }\n ],\n \"metadata_\": {},\n \"tags\": {\n \"Location\": \"NYC\"\n }\n }\n]"
response = http.request(request)
puts response.read_body{
"data": [
{
"external_id": "1234567890",
"amount": 520.56,
"datetime": "2023-11-07T05:31:56Z",
"description": "Payment from Acme Corp",
"posted": true,
"type": "business",
"reviewed": true,
"id": "txn_WQMDNUHpBThYSNh4AprDBo",
"external_account_id": "eac_WQMDNUHpBThYSNh4AprDBo",
"metadata_": {},
"category": [
{
"amount": "89.23",
"name": "Office Supplies"
}
],
"status": "confirmed",
"line_items": [
{
"id": "le_GA6EG2qFxA97NZHtxeLPUy",
"ledger_id": "ldg_Ns6rRRLYVZPh4cVB7MDby5",
"category": "Office Supplies",
"description": "Office Supplies",
"amount": -89.23
}
],
"invoice_payments": null,
"refund_payments": null,
"bill_payments": null,
"tags": {
"Job": [
{
"amount": "3000.00",
"value": "Maple Street Remodel"
},
{
"amount": "1500.00",
"value": "Downtown Office Rewire"
}
]
}
}
],
"errors": [
{
"error": "<string>",
"transaction_id": "<string>"
}
]
}{
"error": "<string>",
"data": "<unknown>"
}{
"error": "<string>",
"data": "<unknown>"
}{
"error": "<string>",
"data": "<unknown>"
}{
"error": "<string>",
"data": "<unknown>"
}{
"error": "<string>",
"data": "<unknown>"
}