API Documentation
API Endpoints/Invoices

Update invoice by invoiceReference

Updating items: No partial updates of items are supported. If you provide items in the update call, the existing items will be completely replaced by the new items. If you do not provide any items, the existing items will remain unchanged.

PUT
/invoices/{invoiceReference}
AuthorizationBasic <token>

Basic authentication is a simple authentication scheme built into the HTTP protocol. To use it, send your HTTP requests with an Authorization header that contains the word Basic followed by a space and a base64-encoded string username:password.Example: Authorization: Basic ZGVtbzpwQDU1dzByZA==

In: header

Path Parameters

invoiceReferencestring

Your invoiceReference (The Order ID in your system)

accountingdate?string

Date on which the invoice is booked, normaly the issued date

addresses?array<object & object>

Optional, addresses of the invoice, if not provided they will be copied from the identity in the moment of creation.

cancelationdate?string

Date of the cancellation of the invoice

currency?string

Taken from order

Default"If invoice is based on an order, the currency is copied from the order, otherwise the customers default currency is used."
detail?object
due?string

Due date of the invoice, relevant for all delay payment methods

issued?string

Date printed on the invoice

items?array<object>
meta?object

Merchant information related to the entity, you can store any JSON here. Size limits according to your contract.

netbased?boolean

If true the calculations are rounded to 2 decimal places, this is the recommended option for B2B business.

If false (null) the calculations are rounded to 4 decimal places to achieve better gross amounts for end customers.

number?string

Your invoiceNumber, only send this if you want to override the default invoice number generation.

orderdate?string

Date of the order, only send this if invoice it not based on an order. (Invoice flow)

ordernumber?string

Your orderNumber, only send this if invoice it not based on an order. (Invoice flow)

paymentkind?string

Kind of payment intended to be used for this order, can be different for subsequent invoices.

PP: Paypal

CC: Credit Card

DD: Direct Debit

CT: Cash Transfer

CD: Cash on Delivery

Value in"PP" | "CC" | "DD" | "CT" | "CD"
reference?string

Your invoiceReference (A unique identifier in your system), if you don't send this Abillify will generate one.

Response Body

curl -X PUT "https://staging1.abillify.dev/api/invoices/string" \
  -H "Content-Type: application/json" \
  -d '{
    "cancelationdate": "2024-01-01T00:00:00.000Z",
    "state": "canceled"
  }'
const body = JSON.stringify({
  "cancelationdate": "2024-01-01T00:00:00.000Z",
  "state": "canceled"
})

fetch("https://staging1.abillify.dev/api/invoices/string", {
  body
})
package main

import (
  "fmt"
  "net/http"
  "io/ioutil"
  "strings"
)

func main() {
  url := "https://staging1.abillify.dev/api/invoices/string"
  body := strings.NewReader(`{
    "cancelationdate": "2024-01-01T00:00:00.000Z",
    "state": "canceled"
  }`)
  req, _ := http.NewRequest("PUT", url, body)
  req.Header.Add("Content-Type", "application/json")
  res, _ := http.DefaultClient.Do(req)
  defer res.Body.Close()
  body, _ := ioutil.ReadAll(res.Body)

  fmt.Println(res)
  fmt.Println(string(body))
}
import requests

url = "https://staging1.abillify.dev/api/invoices/string"
body = {
  "cancelationdate": "2024-01-01T00:00:00.000Z",
  "state": "canceled"
}
response = requests.request("PUT", url, json = body, headers = {
  "Content-Type": "application/json"
})

print(response.text)
{
  "accountingdate": "2020-01-01T00:00:00.000Z",
  "addresses": [
    {
      "city": "Berlin",
      "country": "DE",
      "extra": "C/O Mr. Smith",
      "housenumber": "1",
      "info": "string",
      "kind": "shipping",
      "state": "Berlin",
      "street": "Main Street",
      "zipcode": "10115",
      "company": "ACME Inc.",
      "firstname": "John",
      "lastname": "Doe"
    }
  ],
  "cancelationdate": "2020-01-01T00:00:00.000Z",
  "created": "2020-01-01T00:00:00.000Z",
  "currency": "EUR",
  "detail": {
    "dunning": {
      "customPeriods": {
        "COLLECTION": 28,
        "DUNNING1": 7,
        "DUNNING2": 7,
        "DUNNING3": 7,
        "REMINDER": 7
      },
      "delayedUntil": "2020-01-01",
      "deliveryKind": "letter",
      "disabled": true
    },
    "footerText": [
      "string"
    ],
    "footerTextId": "5ad2114c-9bf0-4dd2-a058-a4047dbabdeb",
    "introText": [
      "string"
    ],
    "introTextId": "6ad2114c-9bf0-4dd2-a058-a4047dbabdeb",
    "locale": "de-DE",
    "paymentterm": "Zu zahlen innerhalb von 14 Tagen",
    "paymenttermId": "4ad2114c-9bf0-4dd2-a058-a4047dbabdeb",
    "placeOfSupplyCountry": "DE",
    "reverseCharge": true,
    "vatId": "DE987654321"
  },
  "due": "2020-01-01T00:00:00.000Z",
  "dunninglevel": 0,
  "dunningstate": "open",
  "id": "5e4a7b2b-1b0b-4c7a-8f0a-5b9b6b7c8d9e",
  "identity": "1",
  "issued": "2020-01-01T00:00:00.000Z",
  "items": [
    {
      "account": "8400",
      "costcenter": "8086",
      "created": "2020-01-01T00:00:00.000Z",
      "detail": {
        "description": "This is a product description",
        "taxprofile": "default",
        "vatclause": "Umsatzsteuerbefreit gem. UstG. §4 Nr. 1a"
      },
      "groupingflag": "DE|1234",
      "id": "5e4a7b2b-1b0b-4c7a-8f0a-5b9b6b7c8d9e",
      "kind": "principal",
      "label": "Couch Grey 3-Seater",
      "modified": "2020-01-01T00:00:00.000Z",
      "net": 991.6,
      "pos": 1,
      "product_number": "1234567890",
      "quantity": 1,
      "reference": "1234567890",
      "servicebegin": "2020-01-01T00:00:00.000Z",
      "serviceend": "2020-01-01T00:00:00.000Z",
      "taxaccount": "1776",
      "taxrate": 0.19,
      "unit": "pieces",
      "unitprice": 1190
    }
  ],
  "meta": {
    "custom_key": "custom_value"
  },
  "modified": "2020-01-01T00:00:00.000Z",
  "net": 991.6,
  "netbased": true,
  "number": "1234567890",
  "orderdate": "2020-01-01T00:00:00.000Z",
  "ordernumber": "1234567890",
  "paymentkind": "CT",
  "reference": "1234567890",
  "tax": 188.4,
  "total": 1180
}
{
  "code": 400,
  "details": [
    {
      "error": "Value for field 'debtor' is of wrong type, expected bigint.",
      "fields": [
        "debtor"
      ],
      "hint": "Value must be a number or a string containing only a number."
    }
  ],
  "message": "InvalidValue, see error details",
  "name": "ClientError",
  "type": "ERR_INVALID_VALUE"
}
{
  "code": 400,
  "details": [
    {
      "error": "Value for field 'debtor' is of wrong type, expected bigint.",
      "fields": [
        "debtor"
      ],
      "hint": "Value must be a number or a string containing only a number."
    }
  ],
  "message": "InvalidValue, see error details",
  "name": "ClientError",
  "type": "ERR_INVALID_VALUE"
}