curl --request POST \
--url https://api.paywise.de/mahnservice/v1/invoices/{uuid}/payments/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"amount": "<string>",
"value_date": "2023-12-25",
"reference": "<string>"
}
'import requests
url = "https://api.paywise.de/mahnservice/v1/invoices/{uuid}/payments/"
payload = {
"amount": "<string>",
"value_date": "2023-12-25",
"reference": "<string>"
}
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({amount: '<string>', value_date: '2023-12-25', reference: '<string>'})
};
fetch('https://api.paywise.de/mahnservice/v1/invoices/{uuid}/payments/', 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.paywise.de/mahnservice/v1/invoices/{uuid}/payments/",
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([
'amount' => '<string>',
'value_date' => '2023-12-25',
'reference' => '<string>'
]),
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.paywise.de/mahnservice/v1/invoices/{uuid}/payments/"
payload := strings.NewReader("{\n \"amount\": \"<string>\",\n \"value_date\": \"2023-12-25\",\n \"reference\": \"<string>\"\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.paywise.de/mahnservice/v1/invoices/{uuid}/payments/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"amount\": \"<string>\",\n \"value_date\": \"2023-12-25\",\n \"reference\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.paywise.de/mahnservice/v1/invoices/{uuid}/payments/")
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 \"amount\": \"<string>\",\n \"value_date\": \"2023-12-25\",\n \"reference\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"amount": "<string>",
"value_date": "2023-12-25",
"created": "2023-11-07T05:31:56Z",
"reference": "<string>"
}{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"amount": "<string>",
"value_date": "2023-12-25",
"created": "2023-11-07T05:31:56Z",
"reference": "<string>"
}{
"detail": "<string>",
"code": "<string>",
"errors": [
{
"field": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}{
"detail": "<string>",
"code": "<string>",
"errors": [
{
"field": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}{
"detail": "<string>",
"code": "<string>",
"errors": [
{
"field": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}{
"detail": "<string>",
"code": "<string>",
"errors": [
{
"field": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}{
"detail": "<string>",
"code": "<string>",
"errors": [
{
"field": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}{
"detail": "<string>",
"code": "<string>",
"errors": [
{
"field": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}{
"detail": "<string>",
"code": "<string>",
"errors": [
{
"field": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}Report a payment
Reports a payment. A partial payment reduces the balance while dunning continues over the full amount; once the reported total covers the invoice amount, the invoice is marked paid and dunning stops (except at dunning_state “inkasso”: the payment is recorded but the state is owned by the debt-collection side). Retry-safe: an identical repeat (same amount, value_date and non-empty reference) returns 200 with the existing payment instead of double-counting. 409 (codes: duplicate_payment — identical payment WITHOUT a reference already exists, add a distinct reference to record a genuine second payment; invoice_cancelled; invoice_written_off; not_api_invoice). Open through a subscription lapse, refused (403 company_locked) while the account is locked by paywise.
curl --request POST \
--url https://api.paywise.de/mahnservice/v1/invoices/{uuid}/payments/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"amount": "<string>",
"value_date": "2023-12-25",
"reference": "<string>"
}
'import requests
url = "https://api.paywise.de/mahnservice/v1/invoices/{uuid}/payments/"
payload = {
"amount": "<string>",
"value_date": "2023-12-25",
"reference": "<string>"
}
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({amount: '<string>', value_date: '2023-12-25', reference: '<string>'})
};
fetch('https://api.paywise.de/mahnservice/v1/invoices/{uuid}/payments/', 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.paywise.de/mahnservice/v1/invoices/{uuid}/payments/",
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([
'amount' => '<string>',
'value_date' => '2023-12-25',
'reference' => '<string>'
]),
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.paywise.de/mahnservice/v1/invoices/{uuid}/payments/"
payload := strings.NewReader("{\n \"amount\": \"<string>\",\n \"value_date\": \"2023-12-25\",\n \"reference\": \"<string>\"\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.paywise.de/mahnservice/v1/invoices/{uuid}/payments/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"amount\": \"<string>\",\n \"value_date\": \"2023-12-25\",\n \"reference\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.paywise.de/mahnservice/v1/invoices/{uuid}/payments/")
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 \"amount\": \"<string>\",\n \"value_date\": \"2023-12-25\",\n \"reference\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"amount": "<string>",
"value_date": "2023-12-25",
"created": "2023-11-07T05:31:56Z",
"reference": "<string>"
}{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"amount": "<string>",
"value_date": "2023-12-25",
"created": "2023-11-07T05:31:56Z",
"reference": "<string>"
}{
"detail": "<string>",
"code": "<string>",
"errors": [
{
"field": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}{
"detail": "<string>",
"code": "<string>",
"errors": [
{
"field": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}{
"detail": "<string>",
"code": "<string>",
"errors": [
{
"field": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}{
"detail": "<string>",
"code": "<string>",
"errors": [
{
"field": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}{
"detail": "<string>",
"code": "<string>",
"errors": [
{
"field": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}{
"detail": "<string>",
"code": "<string>",
"errors": [
{
"field": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}{
"detail": "<string>",
"code": "<string>",
"errors": [
{
"field": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
UUID of the invoice in this request.
Body
A payment reported against an invoice. A partial payment reduces the balance while dunning continues over the full amount; once the reported total covers the amount, the invoice is marked paid and dunning stops.
Decimal string (preferred) or JSON number.
^[0-9]{1,10}(?:\.[0-9]{1,2})?$Date the payment was received; must not be in the future. Together with amount and reference, it identifies an identical repeated payment report.
Optional payment reference. Omitted, blank and null references are treated alike. A repeat with the same invoice, amount, value_date and nonempty reference (compared case-insensitively) returns the existing payment (200). An identical unreferenced payment returns 409 duplicate_payment; use a distinct reference for a genuine second payment.
255Response
A payment reported against an invoice. A partial payment reduces the balance while dunning continues over the full amount; once the reported total covers the amount, the invoice is marked paid and dunning stops.
Amount received toward the invoice in its currency, expressed in major units and greater than zero. Partial payments reduce balance; covering the full invoice stops dunning unless it has already been handed to debt collection.
^[0-9]{1,10}(?:\.[0-9]{1,2})?$Date the payment was received; must not be in the future. Together with amount and reference, it identifies an identical repeated payment report.
Optional payment reference. Omitted, blank and null references are treated alike. A repeat with the same invoice, amount, value_date and nonempty reference (compared case-insensitively) returns the existing payment (200). An identical unreferenced payment returns 409 duplicate_payment; use a distinct reference for a genuine second payment.
255