Create one or more Credit Memos (max 100)
Scopes: credit_memo:create
curl --request POST \
--url https://api.sandbox.getasset.com/v0/business/{business_id}/credit-memo \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
[
{
"customer_id": "<string>",
"number": "<string>",
"amount": 100,
"memo": "<string>",
"issued_at": "2026-01-15T00:00:00Z",
"tags": {
"Location": "NYC"
}
}
]
'import requests
url = "https://api.sandbox.getasset.com/v0/business/{business_id}/credit-memo"
payload = [
{
"customer_id": "<string>",
"number": "<string>",
"amount": 100,
"memo": "<string>",
"issued_at": "2026-01-15T00:00:00Z",
"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([
{
customer_id: '<string>',
number: '<string>',
amount: 100,
memo: '<string>',
issued_at: '2026-01-15T00:00:00Z',
tags: {Location: 'NYC'}
}
])
};
fetch('https://api.sandbox.getasset.com/v0/business/{business_id}/credit-memo', 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}/credit-memo",
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([
[
'customer_id' => '<string>',
'number' => '<string>',
'amount' => 100,
'memo' => '<string>',
'issued_at' => '2026-01-15T00:00:00Z',
'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}/credit-memo"
payload := strings.NewReader("[\n {\n \"customer_id\": \"<string>\",\n \"number\": \"<string>\",\n \"amount\": 100,\n \"memo\": \"<string>\",\n \"issued_at\": \"2026-01-15T00:00:00Z\",\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}/credit-memo")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("[\n {\n \"customer_id\": \"<string>\",\n \"number\": \"<string>\",\n \"amount\": 100,\n \"memo\": \"<string>\",\n \"issued_at\": \"2026-01-15T00:00:00Z\",\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}/credit-memo")
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 \"customer_id\": \"<string>\",\n \"number\": \"<string>\",\n \"amount\": 100,\n \"memo\": \"<string>\",\n \"issued_at\": \"2026-01-15T00:00:00Z\",\n \"tags\": {\n \"Location\": \"NYC\"\n }\n }\n]"
response = http.request(request)
puts response.read_body{
"data": [
{
"business_id": "<string>",
"customer_id": "<string>",
"number": "<string>",
"amount": 123,
"issued_at": "2023-11-07T05:31:56Z",
"journal_entry_id": "<string>",
"id": "<string>",
"voided": true,
"memo": "<string>",
"void_journal_entry_id": "je_R2fAXCjqJPdpYata112zyW",
"voided_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"tags": {
"Job": [
{
"amount": "60.00",
"value": "Maple Street Remodel"
},
{
"amount": "40.00",
"value": "Downtown Office Rewire"
}
]
}
}
],
"errors": [
{
"error": "<string>",
"number": "<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.
Headers
Optional external entity identifier that performed the action
Path Parameters
Body
100The ID of the Customer to issue the credit to
"cus_ApaM9xeQtNyVk5qpaHJbNj"
The number of the credit memo. Must be unique per business.
255"CM-001"
The amount of the credit memo. Must be greater than zero.
x > 0100
Description of the credit memo
255The date and time the credit memo was issued. Defaults to now.
"2026-01-15T00:00:00Z"
Inline tag input. Each field maps to either a single value (string, e.g. 'NYC') or a list of {value, amount} objects to allocate the credit memo across multiple values. The tag field must already exist; values are created automatically if missing. Per-field sum of amounts must not exceed the credit memo amount.
Show child attributes
Show child attributes
{ "Location": "NYC" }
curl --request POST \
--url https://api.sandbox.getasset.com/v0/business/{business_id}/credit-memo \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
[
{
"customer_id": "<string>",
"number": "<string>",
"amount": 100,
"memo": "<string>",
"issued_at": "2026-01-15T00:00:00Z",
"tags": {
"Location": "NYC"
}
}
]
'import requests
url = "https://api.sandbox.getasset.com/v0/business/{business_id}/credit-memo"
payload = [
{
"customer_id": "<string>",
"number": "<string>",
"amount": 100,
"memo": "<string>",
"issued_at": "2026-01-15T00:00:00Z",
"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([
{
customer_id: '<string>',
number: '<string>',
amount: 100,
memo: '<string>',
issued_at: '2026-01-15T00:00:00Z',
tags: {Location: 'NYC'}
}
])
};
fetch('https://api.sandbox.getasset.com/v0/business/{business_id}/credit-memo', 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}/credit-memo",
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([
[
'customer_id' => '<string>',
'number' => '<string>',
'amount' => 100,
'memo' => '<string>',
'issued_at' => '2026-01-15T00:00:00Z',
'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}/credit-memo"
payload := strings.NewReader("[\n {\n \"customer_id\": \"<string>\",\n \"number\": \"<string>\",\n \"amount\": 100,\n \"memo\": \"<string>\",\n \"issued_at\": \"2026-01-15T00:00:00Z\",\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}/credit-memo")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("[\n {\n \"customer_id\": \"<string>\",\n \"number\": \"<string>\",\n \"amount\": 100,\n \"memo\": \"<string>\",\n \"issued_at\": \"2026-01-15T00:00:00Z\",\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}/credit-memo")
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 \"customer_id\": \"<string>\",\n \"number\": \"<string>\",\n \"amount\": 100,\n \"memo\": \"<string>\",\n \"issued_at\": \"2026-01-15T00:00:00Z\",\n \"tags\": {\n \"Location\": \"NYC\"\n }\n }\n]"
response = http.request(request)
puts response.read_body{
"data": [
{
"business_id": "<string>",
"customer_id": "<string>",
"number": "<string>",
"amount": 123,
"issued_at": "2023-11-07T05:31:56Z",
"journal_entry_id": "<string>",
"id": "<string>",
"voided": true,
"memo": "<string>",
"void_journal_entry_id": "je_R2fAXCjqJPdpYata112zyW",
"voided_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"tags": {
"Job": [
{
"amount": "60.00",
"value": "Maple Street Remodel"
},
{
"amount": "40.00",
"value": "Downtown Office Rewire"
}
]
}
}
],
"errors": [
{
"error": "<string>",
"number": "<string>"
}
]
}{
"error": "<string>",
"data": "<unknown>"
}{
"error": "<string>",
"data": "<unknown>"
}{
"error": "<string>",
"data": "<unknown>"
}{
"error": "<string>",
"data": "<unknown>"
}{
"error": "<string>",
"data": "<unknown>"
}