Skip to main content
POST
/
invoices
/
{invoice}
/
credit-notes
Create credit note from invoice
curl --request POST \
  --url https://app.fintoro.sk/api/public/v1/invoices/{invoice}/credit-notes \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "number": "20260051",
  "numericalSeriesId": 12,
  "issueDate": "2026-03-05",
  "dueDate": "2026-03-19",
  "deliveryDate": "2026-03-04",
  "note": "Credit note for a partial cancellation of the supply.",
  "textAboveItems": "We are fully crediting the original supply."
}
'
{
  "id": 351,
  "uuid": "6b1b8c9e-66e6-4fb5-b2db-6d7c7f0f8f19",
  "type": "credit-note",
  "number": "20260051",
  "webDokladUrl": "https://app.fintoro.sk/web-doklad/credit-note/4f3f8a95-5c4a-4c8b-9e6c-8a0c1a5df3a1",
  "pdfDownloadUrl": "https://app.fintoro.sk/api/public/v1/credit-notes/351/pdf",
  "company": {
    "name": "Fintoro s.r.o.",
    "subjectId": "12345678",
    "legalForm": "Limited liability company",
    "taxId": "2020123456",
    "vatId": "SK2020123456",
    "vatPayerTypeId": 4,
    "country": "Slovakia",
    "city": "Bratislava",
    "street": "Main Street 1",
    "zip": "81101",
    "logo": "https://cdn.fintoro.sk/company/logo.svg",
    "signature": "https://cdn.fintoro.sk/company/signature.png",
    "registrationCourt": "City Court Bratislava III",
    "registrationNumber": "12345/B",
    "email": "support@fintoro.sk",
    "phone": "+421900000000",
    "web": "https://fintoro.sk"
  },
  "clientId": 101,
  "client": {
    "name": "Acme s.r.o.",
    "type": "company",
    "subjectId": "12345678",
    "taxId": "2020123456",
    "vatId": "SK2020123456",
    "isVatPayer": true,
    "email": "billing@acme.test",
    "street": "Main Street 1",
    "city": "Bratislava",
    "zip": "81101",
    "countryId": 703,
    "country": {
      "id": 703,
      "name": "Slovakia",
      "code": "SK",
      "eu": true
    },
    "hasDeliveryAddress": true,
    "deliveryStreet": "Warehouse 9",
    "deliveryCity": "Kosice",
    "deliveryZip": "04001",
    "deliveryCountryId": 703,
    "deliveryCountry": {
      "id": 703,
      "name": "Slovakia",
      "code": "SK",
      "eu": true
    }
  },
  "bankAccount": {
    "id": 201,
    "bankId": 1,
    "bank": {
      "id": 23,
      "name": "Tatra Banka",
      "swift": "TATRSKBX"
    },
    "name": "Main account",
    "iban": "SK3111000000001234567890",
    "swift": "TATRSKBX",
    "isPrimary": true,
    "autoPaymentMatching": true
  },
  "payments": [
    {
      "id": 801,
      "documentType": "invoice",
      "documentId": 301,
      "paymentMethod": {
        "id": 1,
        "name": "Bank transfer"
      },
      "currency": {
        "id": 1,
        "symbol": "EUR",
        "name": "Euro",
        "mark": "€"
      },
      "paymentDate": "2026-03-07",
      "amount": 15.5,
      "currencyRate": 1,
      "receiptInvoice": {
        "id": 301,
        "uuid": "6b1b8c9e-66e6-4fb5-b2db-6d7c7f0f8f19",
        "type": "invoice",
        "number": "20260001",
        "clientId": 101,
        "client": {
          "name": "Acme s.r.o.",
          "type": "company",
          "subjectId": "12345678",
          "taxId": "2020123456",
          "vatId": "SK2020123456",
          "isVatPayer": true,
          "email": "billing@acme.test",
          "street": "Main Street 1",
          "city": "Bratislava",
          "zip": "81101",
          "countryId": 703,
          "country": {
            "id": 703,
            "name": "Slovakia",
            "code": "SK",
            "eu": true
          },
          "hasDeliveryAddress": true,
          "deliveryStreet": "Warehouse 9",
          "deliveryCity": "Kosice",
          "deliveryZip": "04001",
          "deliveryCountryId": 703,
          "deliveryCountry": {
            "id": 703,
            "name": "Slovakia",
            "code": "SK",
            "eu": true
          }
        },
        "issueDate": "2026-03-03",
        "dueDate": "2026-03-17",
        "deliveryDate": "2026-03-03",
        "currency": {
          "id": 1,
          "symbol": "EUR",
          "name": "Euro",
          "mark": "€"
        },
        "total": 200,
        "totalWithVat": 240,
        "toBePaid": 240,
        "status": "unpaid",
        "hasVat": true
      }
    }
  ],
  "invoiceId": 301,
  "variableSymbol": 20260051,
  "constantSymbol": 308,
  "specificSymbol": 55,
  "issueDate": "2026-03-03",
  "dueDate": "2026-03-17",
  "deliveryDate": "2026-03-03",
  "businessCaseId": 701,
  "discountType": "percentage",
  "discountValue": 10,
  "transferTaxLiability": false,
  "numericalSeriesId": 12,
  "paymentMethodId": 1,
  "currencyId": 1,
  "currencyRate": 1,
  "languageId": 1,
  "note": "Credit note for the original invoice.",
  "textAboveItems": "We are crediting the original supply.",
  "itemsTotal": -20,
  "itemsTotalWithVat": -24,
  "alreadyPaid": 0,
  "total": -20,
  "totalWithVat": -24,
  "toBePaid": -24,
  "status": "unpaid",
  "hasVat": true,
  "items": [
    {
      "id": 1,
      "uuid": "6b1b8c9e-66e6-4fb5-b2db-6d7c7f0f8f19",
      "name": "Credited consultation",
      "description": "Reversal of part of the monthly package",
      "unitPrice": -10,
      "unitId": 1,
      "quantity": 2,
      "vatRate": 20,
      "discountName": "Loyalty discount",
      "discountType": "percentage",
      "discountValue": 10,
      "priceListItemId": 501,
      "total": -20,
      "totalWithVat": -24
    }
  ]
}

Authorizations

Authorization
string
header
required

Bearer token created for a specific company in Integrations → API.

Headers

Idempotency-Key
string

Optional request identifier for safe retries. Use a unique value for each create request you want to retry safely.

Example:

"invoice-create-2026-03-03-001"

Path Parameters

invoice
integer
required

Invoice ID.

Example:

301

Body

application/json

Optional override payload for the shortcut endpoint POST /invoices/{invoice}/credit-notes. All other credit-note business fields are derived server-side from the source invoice. It does not accept items, client data, or bank account data in the request.

number
string

Manual credit-note number. If omitted, the backend uses the number from the primary credit-note numbering series, or from the series selected via numericalSeriesId. If you send number, do not send numericalSeriesId in the same payload.

Required string length: 1 - 20
Example:

"20260051"

numericalSeriesId
integer | null

Credit-note numbering series ID. When sent without number, the backend generates the final credit-note number from this series. If you send numericalSeriesId, do not send manual number in the same payload.

Example:

12

issueDate
string<date>

Optional issue date in Y-m-d format. If omitted, today's date is used.

Example:

"2026-03-05"

dueDate
string<date>

Optional due date in Y-m-d format. If omitted, the effective issueDate is used. When sent, it must be greater than or equal to the effective issueDate.

Example:

"2026-03-19"

deliveryDate
string<date>

Optional delivery date in Y-m-d format. If omitted, the effective issueDate is used. When sent, it must be less than or equal to the effective issueDate.

Example:

"2026-03-04"

note
string | null

Optional note override. If omitted, the backend uses the note from the source invoice. If you send null, the note is cleared.

Maximum string length: 3000
Example:

"Credit note for a partial cancellation of the supply."

textAboveItems
string | null

Optional override for the text shown above the line items. If omitted, the backend uses textAboveItems from the source invoice. If you send null, the text is cleared.

Maximum string length: 3000
Example:

"We are fully crediting the original supply."

Response

Credit note created from the selected invoice.

Credit note.

id
integer
Example:

351

uuid
string
Example:

"6b1b8c9e-66e6-4fb5-b2db-6d7c7f0f8f19"

type
string
Example:

"credit-note"

number
string
Example:

"20260051"

webDokladUrl
string<uri>

Absolute URL of the public web document for this credit note.

Example:

"https://app.fintoro.sk/web-doklad/credit-note/4f3f8a95-5c4a-4c8b-9e6c-8a0c1a5df3a1"

pdfDownloadUrl
string<uri>

Absolute URL of the Fintoro API endpoint that downloads this credit note PDF as an attachment.

Example:

"https://app.fintoro.sk/api/public/v1/credit-notes/351/pdf"

company
object

Supplier snapshot stored directly on this document.

clientId
integer

Live ID of the client linked to the credit note.

Example:

101

client
object

Historical client snapshot stored directly on this document.

bankAccount
object

Bank account linked to the credit note as a live relation, loaded even through soft delete.

payments
object[]

Payments linked to this credit note ordered from newest to oldest.

invoiceId
integer | null

ID of the original invoice the credit note references.

Example:

301

variableSymbol
integer | null
Example:

20260051

constantSymbol
integer | null
Example:

308

specificSymbol
integer | null
Example:

55

issueDate
string<date>
Example:

"2026-03-03"

dueDate
string<date>
Example:

"2026-03-17"

deliveryDate
string<date> | null
Example:

"2026-03-03"

businessCaseId
integer | null

Optional business case ID. When sent, it must belong to the client derived from the source invoice.

Example:

701

discountType
string | null
Example:

"percentage"

discountValue
number<float> | null
Example:

10

transferTaxLiability
boolean
Example:

false

numericalSeriesId
integer | null
Example:

12

paymentMethodId
integer

Payment method ID from the payment method reference table.

Example:

1

currencyId
integer

Currency ID from the currency reference table.

Example:

1

currencyRate
number<float>
Example:

1

languageId
integer

Language ID from the language reference table.

Example:

1

note
string | null
Example:

"Credit note for the original invoice."

textAboveItems
string | null
Example:

"We are crediting the original supply."

itemsTotal
number<float>
Example:

-20

itemsTotalWithVat
number<float>
Example:

-24

alreadyPaid
number<float>
Example:

0

total
number<float>
Example:

-20

totalWithVat
number<float>
Example:

-24

toBePaid
number<float>
Example:

-24

status
enum<string>
Available options:
paid,
unpaid,
partially_paid,
overdue,
will_not_be_paid
Example:

"unpaid"

hasVat
boolean
Example:

true

items
object[]