Skip to main content
POST
/
accounting
/
creditNotes
cURL
curl --request POST \
  --url https://api.maesn.dev/accounting/creditNotes \
  --header 'Content-Type: application/json' \
  --header 'X-ACCOUNT-KEY: <x-account-key>' \
  --header 'X-API-KEY: <x-api-key>' \
  --data '
{
  "addresses": [
    {
      "addressLine1": "Main street 45",
      "addressLine2": "2nd floor",
      "city": "Berlin",
      "countryCode": "DE",
      "postalCode": "10243",
      "type": "BILLING"
    }
  ],
  "contactId": "eaa28f49-6028-4b6e-bb12-d8f6278073fc",
  "creditNoteDate": "2025-01-01T00:00:00Z",
  "creditNoteLines": [
    {
      "id": "9fc4f3a2-5b8e-4d1b-8a0c-9f6e7d2f3e4b",
      "description": "SEOUL Guest Chair, red",
      "itemId": "4271",
      "itemName": "RED CHAIR",
      "quantity": 1,
      "taxCode": "TAX19",
      "taxRatePercentage": 19,
      "totalDiscountAmount": 10,
      "totalDiscountPercentage": 10,
      "totalGrossAmount": 109,
      "totalNetAmount": 100,
      "totalTaxAmount": 19,
      "unitAmount": 100,
      "unitDiscountAmount": 10,
      "unitDiscountPercentage": 10,
      "unitName": "PIECE"
    }
  ],
  "creditNoteNumber": "PRES1000",
  "currency": "EUR",
  "paymentStatus": "PENDING",
  "paymentTermId": "21",
  "reference": "RCXF197253F",
  "status": "DRAFT",
  "taxRule": "NET",
  "totalDiscountAmount": 10,
  "totalDiscountPercentage": 10,
  "totalGrossAmount": 109,
  "totalNetAmount": 100,
  "totalTaxAmount": 19
}
'
import requests

url = "https://api.maesn.dev/accounting/creditNotes"

payload = {
"addresses": [
{
"addressLine1": "Main street 45",
"addressLine2": "2nd floor",
"city": "Berlin",
"countryCode": "DE",
"postalCode": "10243",
"type": "BILLING"
}
],
"contactId": "eaa28f49-6028-4b6e-bb12-d8f6278073fc",
"creditNoteDate": "2025-01-01T00:00:00Z",
"creditNoteLines": [
{
"id": "9fc4f3a2-5b8e-4d1b-8a0c-9f6e7d2f3e4b",
"description": "SEOUL Guest Chair, red",
"itemId": "4271",
"itemName": "RED CHAIR",
"quantity": 1,
"taxCode": "TAX19",
"taxRatePercentage": 19,
"totalDiscountAmount": 10,
"totalDiscountPercentage": 10,
"totalGrossAmount": 109,
"totalNetAmount": 100,
"totalTaxAmount": 19,
"unitAmount": 100,
"unitDiscountAmount": 10,
"unitDiscountPercentage": 10,
"unitName": "PIECE"
}
],
"creditNoteNumber": "PRES1000",
"currency": "EUR",
"paymentStatus": "PENDING",
"paymentTermId": "21",
"reference": "RCXF197253F",
"status": "DRAFT",
"taxRule": "NET",
"totalDiscountAmount": 10,
"totalDiscountPercentage": 10,
"totalGrossAmount": 109,
"totalNetAmount": 100,
"totalTaxAmount": 19
}
headers = {
"X-API-KEY": "<x-api-key>",
"X-ACCOUNT-KEY": "<x-account-key>",
"Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {
'X-API-KEY': '<x-api-key>',
'X-ACCOUNT-KEY': '<x-account-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
addresses: [
{
addressLine1: 'Main street 45',
addressLine2: '2nd floor',
city: 'Berlin',
countryCode: 'DE',
postalCode: '10243',
type: 'BILLING'
}
],
contactId: 'eaa28f49-6028-4b6e-bb12-d8f6278073fc',
creditNoteDate: '2025-01-01T00:00:00Z',
creditNoteLines: [
{
id: '9fc4f3a2-5b8e-4d1b-8a0c-9f6e7d2f3e4b',
description: 'SEOUL Guest Chair, red',
itemId: '4271',
itemName: 'RED CHAIR',
quantity: 1,
taxCode: 'TAX19',
taxRatePercentage: 19,
totalDiscountAmount: 10,
totalDiscountPercentage: 10,
totalGrossAmount: 109,
totalNetAmount: 100,
totalTaxAmount: 19,
unitAmount: 100,
unitDiscountAmount: 10,
unitDiscountPercentage: 10,
unitName: 'PIECE'
}
],
creditNoteNumber: 'PRES1000',
currency: 'EUR',
paymentStatus: 'PENDING',
paymentTermId: '21',
reference: 'RCXF197253F',
status: 'DRAFT',
taxRule: 'NET',
totalDiscountAmount: 10,
totalDiscountPercentage: 10,
totalGrossAmount: 109,
totalNetAmount: 100,
totalTaxAmount: 19
})
};

fetch('https://api.maesn.dev/accounting/creditNotes', 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.maesn.dev/accounting/creditNotes",
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([
'addresses' => [
[
'addressLine1' => 'Main street 45',
'addressLine2' => '2nd floor',
'city' => 'Berlin',
'countryCode' => 'DE',
'postalCode' => '10243',
'type' => 'BILLING'
]
],
'contactId' => 'eaa28f49-6028-4b6e-bb12-d8f6278073fc',
'creditNoteDate' => '2025-01-01T00:00:00Z',
'creditNoteLines' => [
[
'id' => '9fc4f3a2-5b8e-4d1b-8a0c-9f6e7d2f3e4b',
'description' => 'SEOUL Guest Chair, red',
'itemId' => '4271',
'itemName' => 'RED CHAIR',
'quantity' => 1,
'taxCode' => 'TAX19',
'taxRatePercentage' => 19,
'totalDiscountAmount' => 10,
'totalDiscountPercentage' => 10,
'totalGrossAmount' => 109,
'totalNetAmount' => 100,
'totalTaxAmount' => 19,
'unitAmount' => 100,
'unitDiscountAmount' => 10,
'unitDiscountPercentage' => 10,
'unitName' => 'PIECE'
]
],
'creditNoteNumber' => 'PRES1000',
'currency' => 'EUR',
'paymentStatus' => 'PENDING',
'paymentTermId' => '21',
'reference' => 'RCXF197253F',
'status' => 'DRAFT',
'taxRule' => 'NET',
'totalDiscountAmount' => 10,
'totalDiscountPercentage' => 10,
'totalGrossAmount' => 109,
'totalNetAmount' => 100,
'totalTaxAmount' => 19
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-ACCOUNT-KEY: <x-account-key>",
"X-API-KEY: <x-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.maesn.dev/accounting/creditNotes"

payload := strings.NewReader("{\n \"addresses\": [\n {\n \"addressLine1\": \"Main street 45\",\n \"addressLine2\": \"2nd floor\",\n \"city\": \"Berlin\",\n \"countryCode\": \"DE\",\n \"postalCode\": \"10243\",\n \"type\": \"BILLING\"\n }\n ],\n \"contactId\": \"eaa28f49-6028-4b6e-bb12-d8f6278073fc\",\n \"creditNoteDate\": \"2025-01-01T00:00:00Z\",\n \"creditNoteLines\": [\n {\n \"id\": \"9fc4f3a2-5b8e-4d1b-8a0c-9f6e7d2f3e4b\",\n \"description\": \"SEOUL Guest Chair, red\",\n \"itemId\": \"4271\",\n \"itemName\": \"RED CHAIR\",\n \"quantity\": 1,\n \"taxCode\": \"TAX19\",\n \"taxRatePercentage\": 19,\n \"totalDiscountAmount\": 10,\n \"totalDiscountPercentage\": 10,\n \"totalGrossAmount\": 109,\n \"totalNetAmount\": 100,\n \"totalTaxAmount\": 19,\n \"unitAmount\": 100,\n \"unitDiscountAmount\": 10,\n \"unitDiscountPercentage\": 10,\n \"unitName\": \"PIECE\"\n }\n ],\n \"creditNoteNumber\": \"PRES1000\",\n \"currency\": \"EUR\",\n \"paymentStatus\": \"PENDING\",\n \"paymentTermId\": \"21\",\n \"reference\": \"RCXF197253F\",\n \"status\": \"DRAFT\",\n \"taxRule\": \"NET\",\n \"totalDiscountAmount\": 10,\n \"totalDiscountPercentage\": 10,\n \"totalGrossAmount\": 109,\n \"totalNetAmount\": 100,\n \"totalTaxAmount\": 19\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("X-API-KEY", "<x-api-key>")
req.Header.Add("X-ACCOUNT-KEY", "<x-account-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.maesn.dev/accounting/creditNotes")
.header("X-API-KEY", "<x-api-key>")
.header("X-ACCOUNT-KEY", "<x-account-key>")
.header("Content-Type", "application/json")
.body("{\n \"addresses\": [\n {\n \"addressLine1\": \"Main street 45\",\n \"addressLine2\": \"2nd floor\",\n \"city\": \"Berlin\",\n \"countryCode\": \"DE\",\n \"postalCode\": \"10243\",\n \"type\": \"BILLING\"\n }\n ],\n \"contactId\": \"eaa28f49-6028-4b6e-bb12-d8f6278073fc\",\n \"creditNoteDate\": \"2025-01-01T00:00:00Z\",\n \"creditNoteLines\": [\n {\n \"id\": \"9fc4f3a2-5b8e-4d1b-8a0c-9f6e7d2f3e4b\",\n \"description\": \"SEOUL Guest Chair, red\",\n \"itemId\": \"4271\",\n \"itemName\": \"RED CHAIR\",\n \"quantity\": 1,\n \"taxCode\": \"TAX19\",\n \"taxRatePercentage\": 19,\n \"totalDiscountAmount\": 10,\n \"totalDiscountPercentage\": 10,\n \"totalGrossAmount\": 109,\n \"totalNetAmount\": 100,\n \"totalTaxAmount\": 19,\n \"unitAmount\": 100,\n \"unitDiscountAmount\": 10,\n \"unitDiscountPercentage\": 10,\n \"unitName\": \"PIECE\"\n }\n ],\n \"creditNoteNumber\": \"PRES1000\",\n \"currency\": \"EUR\",\n \"paymentStatus\": \"PENDING\",\n \"paymentTermId\": \"21\",\n \"reference\": \"RCXF197253F\",\n \"status\": \"DRAFT\",\n \"taxRule\": \"NET\",\n \"totalDiscountAmount\": 10,\n \"totalDiscountPercentage\": 10,\n \"totalGrossAmount\": 109,\n \"totalNetAmount\": 100,\n \"totalTaxAmount\": 19\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.maesn.dev/accounting/creditNotes")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["X-API-KEY"] = '<x-api-key>'
request["X-ACCOUNT-KEY"] = '<x-account-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"addresses\": [\n {\n \"addressLine1\": \"Main street 45\",\n \"addressLine2\": \"2nd floor\",\n \"city\": \"Berlin\",\n \"countryCode\": \"DE\",\n \"postalCode\": \"10243\",\n \"type\": \"BILLING\"\n }\n ],\n \"contactId\": \"eaa28f49-6028-4b6e-bb12-d8f6278073fc\",\n \"creditNoteDate\": \"2025-01-01T00:00:00Z\",\n \"creditNoteLines\": [\n {\n \"id\": \"9fc4f3a2-5b8e-4d1b-8a0c-9f6e7d2f3e4b\",\n \"description\": \"SEOUL Guest Chair, red\",\n \"itemId\": \"4271\",\n \"itemName\": \"RED CHAIR\",\n \"quantity\": 1,\n \"taxCode\": \"TAX19\",\n \"taxRatePercentage\": 19,\n \"totalDiscountAmount\": 10,\n \"totalDiscountPercentage\": 10,\n \"totalGrossAmount\": 109,\n \"totalNetAmount\": 100,\n \"totalTaxAmount\": 19,\n \"unitAmount\": 100,\n \"unitDiscountAmount\": 10,\n \"unitDiscountPercentage\": 10,\n \"unitName\": \"PIECE\"\n }\n ],\n \"creditNoteNumber\": \"PRES1000\",\n \"currency\": \"EUR\",\n \"paymentStatus\": \"PENDING\",\n \"paymentTermId\": \"21\",\n \"reference\": \"RCXF197253F\",\n \"status\": \"DRAFT\",\n \"taxRule\": \"NET\",\n \"totalDiscountAmount\": 10,\n \"totalDiscountPercentage\": 10,\n \"totalGrossAmount\": 109,\n \"totalNetAmount\": 100,\n \"totalTaxAmount\": 19\n}"

response = http.request(request)
puts response.read_body
{
  "meta": {
    "warnings": [
      "Field not used by target system"
    ],
    "pagination": {
      "total": 125,
      "perPage": 50,
      "currentPage": 1,
      "totalPages": 3
    }
  },
  "data": {
    "id": "987a2b3c-4d5e-6f7g-8h9i-0j1k2l3m4n5o",
    "addresses": [
      {
        "addressLine1": "Main street 45",
        "addressLine2": "2nd floor",
        "city": "Berlin",
        "countryCode": "DE",
        "postalCode": "10243",
        "type": "BILLING"
      }
    ],
    "contactId": "eaa28f49-6028-4b6e-bb12-d8f6278073fc",
    "createdDate": "2025-01-01T00:00:00Z",
    "creditNoteDate": "2025-01-01T00:00:00Z",
    "creditNoteLines": [
      {
        "id": "9fc4f3a2-5b8e-4d1b-8a0c-9f6e7d2f3e4b",
        "createdDate": "2025-01-01T00:00:00Z",
        "description": "SEOUL Guest Chair, red",
        "itemId": "4271",
        "itemName": "RED CHAIR",
        "quantity": 1,
        "taxCode": "TAX19",
        "taxRatePercentage": 19,
        "totalDiscountAmount": 10,
        "totalDiscountPercentage": 10,
        "totalGrossAmount": 109,
        "totalNetAmount": 100,
        "totalTaxAmount": 19,
        "type": "SERVICE_ITEM",
        "unitAmount": 100,
        "unitDiscountAmount": 10,
        "unitDiscountPercentage": 10,
        "unitName": "PIECE",
        "updatedDate": "2025-01-01T00:00:00Z"
      }
    ],
    "creditNoteNumber": "PRES1000",
    "currency": "EUR",
    "paymentStatus": "PENDING",
    "paymentTermId": "21",
    "reference": "RCXF197253F",
    "status": "DRAFT",
    "taxRule": "NET",
    "totalDiscountAmount": 10,
    "totalDiscountPercentage": 10,
    "totalGrossAmount": 109,
    "totalNetAmount": 100,
    "totalTaxAmount": 19,
    "updatedDate": "2025-01-01T00:00:00Z"
  }
}

Field support per integration

Supported request parameters:
contactId
string
required
creditNoteDate
string
required
ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
creditNoteLines
LineItem[]
required
currency
enum
required
Available options (3-letter ISO 4217): EUR
taxRule
enum
required
Determines whether unitAmount is net or gross. For NET, TAXFREE, and most options, unitAmount is net. For GROSS, unitAmount is gross.Available options: NET, TAXFREE, INTRACOMMUNITY_GOODS, INTRACOMMUNITY_SERVICE, EXPORT_SERVICE, EXPORT_GOODS, GROSS, CONSTRUCTION_SERVICE
Supported request parameters:
contactId
string
required
creditNoteNumber
string
required
creditNoteLines
LineItem[]
required
creditNoteDate
string
ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
reference
string
paymentTermId
string
Number of days for payment term (0–999), e.g., "30" for 30 days.

Headers

X-API-KEY
string
required

API key

X-ACCOUNT-KEY
string
required

Account key

Query Parameters

companyId
string
environmentName
string

Body

application/json
addresses
object[]
contactId
string
Example:

"eaa28f49-6028-4b6e-bb12-d8f6278073fc"

creditNoteDate
string
Example:

"2025-01-01T00:00:00Z"

creditNoteLines
object[]
creditNoteNumber
string
Example:

"PRES1000"

currency
string
Example:

"EUR"

paymentStatus
enum<string>
Available options:
NO_OPEN_ITEM,
PENDING,
PAID,
PARTLY_PAID,
CANCELED,
PARTIAL_CANCELLATION,
BAD_DEBT,
DEBITED,
CREDIT_NOTE_CLEARED,
UNKNOWN
Example:

"PENDING"

paymentTermId
string
Example:

"21"

reference
string
Example:

"RCXF197253F"

status
enum<string>
Available options:
DRAFT,
CORRECTIVE,
SUBMITTED,
DOCUMENT_CREATED,
OPEN,
PARTIALLY_PAID,
PAID,
PARTIALLY_OVERDUE,
OVERDUE,
VOIDED
Example:

"DRAFT"

taxRule
enum<string>
Available options:
NET,
TAXFREE,
INTRACOMMUNITY_GOODS,
INTRACOMMUNITY_SERVICE,
EXPORT_SERVICE,
EXPORT_GOODS,
REVERSE_CHARGE,
GROSS,
CONSTRUCTION_SERVICE,
PHOTOVOLTAIC_EQUIPMENT,
SMALL_BUSINESS_EXEMPTION,
NON_DOMESTIC_SERVICE,
OSS_GOODS,
OSS_ELECTRONIC_SERVICES,
OSS_SERVICES
Example:

"NET"

totalDiscountAmount
number
Example:

10

totalDiscountPercentage
number
Example:

10

totalGrossAmount
number
Example:

109

totalNetAmount
number
Example:

100

totalTaxAmount
number
Example:

19

Response

201 - application/json
meta
object
data
object
Last modified on July 9, 2026