OpenAPI Specification
openapi: 3.1.0
info:
title: Lago API documentation Add_ons Credit_notes API
description: Lago API allows your application to push customer information and metrics (events) from your application to the billing application.
version: 1.15.0
license:
name: AGPLv3
identifier: AGPLv3
contact:
email: tech@getlago.com
servers:
- url: https://api.getlago.com/api/v1
description: US Lago cluster
- url: https://api.eu.getlago.com/api/v1
description: EU Lagos cluster
security:
- bearerAuth: []
tags:
- name: Credit_notes
description: Everything about Credit notes collection
externalDocs:
description: Find out more
url: https://doc.getlago.com/docs/api/credit_notes/credit-note-object
paths:
/credit_notes:
post:
tags:
- Credit_notes
summary: Lago Create a credit note
description: This endpoint creates a new credit note.
operationId: createCreditNote
requestBody:
description: Credit note payload
content:
application/json:
schema:
$ref: '#/components/schemas/CreditNoteCreateInput'
required: true
responses:
'200':
description: Credit note created
content:
application/json:
schema:
$ref: '#/components/schemas/CreditNote'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/UnprocessableEntity'
get:
tags:
- Credit_notes
summary: Lago List all credit notes
description: This endpoint list all existing credit notes.
operationId: findAllCreditNotes
parameters:
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/per_page'
- $ref: '#/components/parameters/external_customer_id'
responses:
'200':
description: Credit notes
content:
application/json:
schema:
$ref: '#/components/schemas/CreditNotes'
'401':
$ref: '#/components/responses/Unauthorized'
/credit_notes/{lago_id}:
parameters:
- name: lago_id
in: path
description: The credit note unique identifier, created by Lago.
required: true
schema:
type: string
example: '12345'
put:
tags:
- Credit_notes
summary: Lago Update a credit note
description: This endpoint updates an existing credit note.
operationId: updateCreditNote
requestBody:
description: Credit note update payload
content:
application/json:
schema:
$ref: '#/components/schemas/CreditNoteUpdateInput'
required: true
responses:
'200':
description: Credit note updated
content:
application/json:
schema:
$ref: '#/components/schemas/CreditNote'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
get:
tags:
- Credit_notes
summary: Lago Retrieve a credit note
description: This endpoint retrieves an existing credit note.
operationId: findCreditNote
responses:
'200':
description: Credit note
content:
application/json:
schema:
$ref: '#/components/schemas/CreditNote'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/credit_notes/{lago_id}/download:
post:
tags:
- Credit_notes
summary: Lago Download a credit note PDF
description: This endpoint downloads the PDF of an existing credit note.
parameters:
- name: lago_id
in: path
description: The credit note unique identifier, created by Lago.
required: true
schema:
type: string
format: uuid
example: 1a901a90-1a90-1a90-1a90-1a901a901a90
operationId: downloadCreditNote
responses:
'200':
description: Credit note PDF
content:
application/json:
schema:
$ref: '#/components/schemas/CreditNote'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/credit_notes/estimate:
post:
tags:
- Credit_notes
summary: Lago Estimate amounts for a new credit note
description: This endpoint allows you to retrieve amounts for a new credit note creation.
requestBody:
description: Credit note estimate payload
content:
application/json:
schema:
$ref: '#/components/schemas/CreditNoteEstimateInput'
operationId: estimateCreditNote
responses:
'200':
description: Credit note amounts
content:
application/json:
schema:
$ref: '#/components/schemas/CreditNoteEstimated'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/UnprocessableEntity'
/credit_notes/{lago_id}/void:
put:
tags:
- Credit_notes
summary: Lago Void available credit
description: This endpoint voids the available credit linked to a specific credit note.
parameters:
- name: lago_id
in: path
description: The credit note unique identifier, created by Lago.
required: true
schema:
type: string
format: uuid
example: 1a901a90-1a90-1a90-1a90-1a901a901a90
operationId: voidCreditNote
responses:
'200':
description: Credit note voided
content:
application/json:
schema:
$ref: '#/components/schemas/CreditNote'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'405':
$ref: '#/components/responses/NotAllowed'
components:
responses:
BadRequest:
description: Bad Request error
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorBadRequest'
NotFound:
description: Not Found error
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorNotFound'
UnprocessableEntity:
description: Unprocessable entity error
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorUnprocessableEntity'
NotAllowed:
description: Not Allowed error
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorNotAllowed'
Unauthorized:
description: Unauthorized error
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorUnauthorized'
schemas:
CreditNoteEstimated:
type: object
required:
- estimated_credit_note
properties:
estimated_credit_note:
type: object
required:
- lago_invoice_id
- invoice_number
- currency
- taxes_amount_cents
- sub_total_excluding_taxes_amount_cents
- max_creditable_amount_cents
- max_refundable_amount_cents
- coupons_adjustment_amount_cents
- taxes_rate
- items
properties:
lago_invoice_id:
type: string
format: uuid
description: Unique identifier assigned to the invoice that the credit note belongs to
example: 1a901a90-1a90-1a90-1a90-1a901a901a90
invoice_number:
type: string
description: The invoice unique number, related to the credit note.
example: LAG-1234
currency:
allOf:
- $ref: '#/components/schemas/Currency'
- description: The currency of the credit note.
example: EUR
taxes_amount_cents:
type: integer
description: The tax amount of the credit note, expressed in cents.
example: 20
taxes_rate:
type: number
description: The tax rate associated with this specific credit note.
example: 20
sub_total_excluding_taxes_amount_cents:
type: integer
description: The subtotal of the credit note excluding any applicable taxes, expressed in cents.
example: 100
max_creditable_amount_cents:
type: integer
description: The credited amount of the credit note, expressed in cents.
example: 100
max_refundable_amount_cents:
type: integer
description: The refunded amount of the credit note, expressed in cents.
example: 0
coupons_adjustment_amount_cents:
type: integer
description: The pro-rated amount of the coupons applied to the source invoice.
example: 20
items:
type: array
items:
type: object
required:
- amount_cents
- lago_fee_id
properties:
amount_cents:
type: integer
description: The credit note's item amount, expressed in cents.
example: 100
lago_fee_id:
type: string
format: uuid
nullable: true
description: Unique identifier assigned to the fee within the Lago application. This ID is exclusively created by Lago and serves as a unique identifier for the fee's record within the Lago system.
example: 1a901a90-1a90-1a90-1a90-1a901a901a90
description: Array of credit note's items.
applied_taxes:
type: array
items:
type: object
properties:
lago_tax_id:
type: string
format: uuid
description: Unique identifier of the tax, created by Lago.
example: 1a901a90-1a90-1a90-1a90-1a901a901a90
tax_name:
type: string
description: Name of the tax.
example: TVA
tax_code:
type: string
description: Unique code used to identify the tax associated with the API request.
example: french_standard_vat
tax_rate:
type: number
description: The percentage rate of the tax
example: 20
tax_description:
type: string
description: Internal description of the taxe
example: French standard VAT
base_amount_cents:
type: integer
example: 100
amount_cents:
type: integer
description: Amount of the tax
example: 2000
amount_currency:
allOf:
- $ref: '#/components/schemas/Currency'
- description: Currency of the tax
example: USD
CreditNoteCreateInput:
type: object
required:
- credit_note
properties:
credit_note:
type: object
required:
- invoice_id
- items
properties:
invoice_id:
type: string
format: uuid
description: The invoice unique identifier, created by Lago.
example: 1a901a90-1a90-1a90-1a90-1a901a901a90
reason:
type: string
enum:
- duplicated_charge
- product_unsatisfactory
- order_change
- order_cancellation
- fraudulent_charge
- other
nullable: true
description: 'The reason of the credit note creation.
Possible values are `duplicated_charge`, `product_unsatisfactory`, `order_change`, `order_cancellation`, `fraudulent_charge` or `other`.'
example: duplicated_charge
description:
type: string
description: The description of the credit note.
example: description
credit_amount_cents:
type: integer
nullable: true
description: The total amount to be credited on the customer balance.
example: 10
refund_amount_cents:
type: integer
nullable: true
description: The total amount to be refunded to the customer.
example: 5
items:
type: array
items:
type: object
required:
- fee_id
- amount_cents
properties:
fee_id:
type: string
format: uuid
description: The fee unique identifier, created by Lago.
example: 1a901a90-1a90-1a90-1a90-1a901a901a90
amount_cents:
type: integer
description: The amount of the credit note item, expressed in cents.
example: 10
description: The list of credit note's items.
example:
- fee_id: 1a901a90-1a90-1a90-1a90-1a901a901a90
amount_cents: 10
- fee_id: 1a901a90-1a90-1a90-1a90-1a901a901a91
amount_cents: 5
CreditNoteAppliedTaxObject:
allOf:
- $ref: '#/components/schemas/BaseAppliedTax'
type: object
properties:
lago_credit_note_id:
type: string
format: uuid
description: Unique identifier of the credit note, created by Lago.
example: 1a901a90-1a90-1a90-1a90-1a901a901a90
base_amount_cents:
type: integer
example: 100
ApiErrorNotAllowed:
type: object
required:
- status
- error
- code
properties:
status:
type: integer
format: int32
example: 405
error:
type: string
example: Method Not Allowed
code:
type: string
example: not_allowed
ApiErrorNotFound:
type: object
required:
- status
- error
- code
properties:
status:
type: integer
format: int32
example: 404
error:
type: string
example: Not Found
code:
type: string
example: object_not_found
BaseAppliedTax:
type: object
properties:
lago_id:
type: string
format: uuid
description: Unique identifier of the applied tax, created by Lago.
example: 1a901a90-1a90-1a90-1a90-1a901a901a90
lago_tax_id:
type: string
format: uuid
description: Unique identifier of the tax, created by Lago.
example: 1a901a90-1a90-1a90-1a90-1a901a901a90
tax_name:
type: string
description: Name of the tax.
example: TVA
tax_code:
type: string
description: Unique code used to identify the tax associated with the API request.
example: french_standard_vat
tax_rate:
type: number
description: The percentage rate of the tax
example: 20
tax_description:
type: string
description: Internal description of the taxe
example: French standard VAT
amount_cents:
type: integer
description: Amount of the tax
example: 2000
amount_currency:
allOf:
- $ref: '#/components/schemas/Currency'
- description: Currency of the tax
example: USD
created_at:
type: string
format: date-time
description: The date and time when the applied tax was created. It is expressed in UTC format according to the ISO 8601 datetime standard. This field provides the timestamp for the exact moment when the applied tax was initially created.
example: '2022-09-14T16:35:31Z'
CreditNoteEstimateInput:
type: object
required:
- credit_note
properties:
credit_note:
type: object
required:
- invoice_id
- items
properties:
invoice_id:
type: string
format: uuid
description: The invoice unique identifier, created by Lago.
example: 1a901a90-1a90-1a90-1a90-1a901a901a90
items:
type: array
items:
type: object
required:
- fee_id
- amount_cents
properties:
fee_id:
type: string
format: uuid
description: The fee unique identifier, created by Lago.
example: 1a901a90-1a90-1a90-1a90-1a901a901a90
amount_cents:
type: integer
description: The amount of the credit note item, expressed in cents.
example: 10
description: The list of credit note's items.
example:
- fee_id: 1a901a90-1a90-1a90-1a90-1a901a901a90
amount_cents: 10
- fee_id: 1a901a90-1a90-1a90-1a90-1a901a901a91
amount_cents: 5
ApiErrorUnprocessableEntity:
type: object
required:
- status
- error
- code
- error_details
properties:
status:
type: integer
format: int32
example: 422
error:
type: string
example: Unprocessable entity
code:
type: string
example: validation_errors
error_details:
type: object
CreditNoteItemObject:
type: object
required:
- lago_id
- amount_cents
- amount_currency
- fee
properties:
lago_id:
type: string
format: uuid
description: The credit note's item unique identifier, created by Lago.
example: 1a901a90-1a90-1a90-1a90-1a901a901a90
amount_cents:
type: integer
description: The credit note's item amount, expressed in cents.
example: 100
amount_currency:
allOf:
- $ref: '#/components/schemas/Currency'
- description: The credit note's item currency.
example: EUR
fee:
allOf:
- $ref: '#/components/schemas/FeeObject'
- description: The fee object related to the credit note item.
ApiErrorUnauthorized:
type: object
required:
- status
- error
properties:
status:
type: integer
format: int32
example: 401
error:
type: string
example: Unauthorized
ApiErrorBadRequest:
type: object
required:
- status
- error
properties:
status:
type: integer
format: int32
example: 400
error:
type: string
example: Bad request
CreditNote:
type: object
required:
- credit_note
properties:
credit_note:
$ref: '#/components/schemas/CreditNoteObject'
Currency:
type: string
example: USD
enum:
- AED
- AFN
- ALL
- AMD
- ANG
- AOA
- ARS
- AUD
- AWG
- AZN
- BAM
- BBD
- BDT
- BGN
- BIF
- BMD
- BND
- BOB
- BRL
- BSD
- BWP
- BYN
- BZD
- CAD
- CDF
- CHF
- CLF
- CLP
- CNY
- COP
- CRC
- CVE
- CZK
- DJF
- DKK
- DOP
- DZD
- EGP
- ETB
- EUR
- FJD
- FKP
- GBP
- GEL
- GIP
- GMD
- GNF
- GTQ
- GYD
- HKD
- HNL
- HRK
- HTG
- HUF
- IDR
- ILS
- INR
- ISK
- JMD
- JPY
- KES
- KGS
- KHR
- KMF
- KRW
- KYD
- KZT
- LAK
- LBP
- LKR
- LRD
- LSL
- MAD
- MDL
- MGA
- MKD
- MMK
- MNT
- MOP
- MRO
- MUR
- MVR
- MWK
- MXN
- MYR
- MZN
- NAD
- NGN
- NIO
- NOK
- NPR
- NZD
- PAB
- PEN
- PGK
- PHP
- PKR
- PLN
- PYG
- QAR
- RON
- RSD
- RUB
- RWF
- SAR
- SBD
- SCR
- SEK
- SGD
- SHP
- SLL
- SOS
- SRD
- STD
- SZL
- THB
- TJS
- TOP
- TRY
- TTD
- TWD
- TZS
- UAH
- UGX
- USD
- UYU
- UZS
- VND
- VUV
- WST
- XAF
- XCD
- XOF
- XPF
- YER
- ZAR
- ZMW
FeeAppliedTaxObject:
allOf:
- $ref: '#/components/schemas/BaseAppliedTax'
type: object
properties:
lago_fee_id:
type: string
format: uuid
description: Unique identifier of the fee, created by Lago.
example: 1a901a90-1a90-1a90-1a90-1a901a901a90
CreditNoteObject:
type: object
required:
- lago_id
- sequential_id
- number
- lago_invoice_id
- invoice_number
- issuing_date
- reason
- currency
- total_amount_cents
- credit_amount_cents
- refund_amount_cents
- balance_amount_cents
- taxes_amount_cents
- taxes_rate
- sub_total_excluding_taxes_amount_cents
- coupons_adjustment_amount_cents
- created_at
- updated_at
properties:
lago_id:
type: string
format: uuid
description: The credit note unique identifier, created by Lago.
example: 1a901a90-1a90-1a90-1a90-1a901a901a90
sequential_id:
type: integer
description: The sequential identifier of the credit note, specifically scoped on the associated invoice. It provides a unique numerical identifier for the credit note within the context of the invoice.
example: 2
number:
type: string
description: The credit note unique number.
example: LAG-1234-CN2
lago_invoice_id:
type: string
format: uuid
description: Unique identifier assigned to the invoice that the credit note belongs to
example: 1a901a90-1a90-1a90-1a90-1a901a901a90
invoice_number:
type: string
description: The invoice unique number, related to the credit note.
example: LAG-1234
issuing_date:
type: string
format: date
description: The date of creation of the credit note. It follows the ISO 8601 date format and provides the specific date when the credit note was created.
example: '2022-12-06'
credit_status:
type: string
enum:
- available
- consumed
- voided
nullable: true
description: 'The status of the credit portion of the credit note. It indicates the current state or condition of the credit amount associated with the credit note. The possible values for this field are:
- `available`: this status indicates that an amount remains available for future usage. The credit can be applied towards future transactions or invoices.
- `consumed`: this status indicates that the credit amount has been fully consumed. The remaining amount is 0, indicating that the credit has been utilized in its entirety.
- `voided`: this status indicates that the remaining amount of the credit cannot be used any further. The credit has been voided and is no longer available for application or redemption.'
example: available
refund_status:
type: string
enum:
- pending
- succeeded
- failed
nullable: true
description: 'The status of the refund portion of the credit note. It indicates the current state or condition of the refund associated with the credit note. The possible values for this field are:
- `pending`: this status indicates that the refund is pending execution. The refund request has been initiated but has not been processed or completed yet.
- `succeeded`: this status indicates that the refund has been successfully executed. The refund amount has been processed and returned to the customer or the designated recipient.
- `failed`: this status indicates that the refund failed to execute. The refund request encountered an error or unsuccessful processing, and the refund amount could not be returned.'
example: pending
reason:
type: string
enum:
- duplicated_charge
- product_unsatisfactory
- order_change
- order_cancellation
- fraudulent_charge
- other
description: 'The reason of the credit note creation.
Possible values are `duplicated_charge`, `product_unsatisfactory`, `order_change`, `order_cancellation`, `fraudulent_charge` or `other`.'
example: other
description:
type: string
nullable: true
description: The description of the credit note.
example: Free text
currency:
allOf:
- $ref: '#/components/schemas/Currency'
- description: The currency of the credit note.
example: EUR
total_amount_cents:
type: integer
description: The total amount of the credit note, expressed in cents.
example: 120
taxes_amount_cents:
type: integer
description: The tax amount of the credit note, expressed in cents.
example: 20
taxes_rate:
type: number
description: The tax rate associated with this specific credit note.
example: 20
sub_total_excluding_taxes_amount_cents:
type: integer
description: The subtotal of the credit note excluding any applicable taxes, expressed in cents.
example: 100
balance_amount_cents:
type: integer
description: The remaining credit note amount, expressed in cents.
example: 100
credit_amount_cents:
type: integer
description: The credited amount of the credit note, expressed in cents.
example: 100
refund_amount_cents:
type: integer
description: The refunded amount of the credit note, expressed in cents.
example: 0
coupons_adjustment_amount_cents:
type: integer
description: The pro-rated amount of the coupons applied to the source invoice.
example: 20
created_at:
type: string
format: date-time
description: The date when the credit note was created. It is expressed in Coordinated Universal Time (UTC).
example: '2022-09-14T16:35:31Z'
updated_at:
type: string
format: date-time
description: The date when the credit note was last updated. It is expressed in Coordinated Universal Time (UTC).
example: '2022-09-14T16:35:31Z'
file_url:
type: string
nullable: true
description: The PDF file of the credit note.
example: https://getlago.com/credit_note/file
items:
type: array
items:
$ref: '#/components/schemas/CreditNoteItemObject'
description: Array of credit note's items.
applied_taxes:
type: array
items:
$ref: '#/components/schemas/CreditNoteAppliedTaxObject'
FeeObject:
type: object
required:
- item
- amount_cents
- amount_currency
- taxes_amount_cents
- taxes_rate
- total_amount_cents
- total_amount_currency
- pay_in_advance
- invoiceable
- units
- precise_unit_amount
- payment_status
properties:
lago_id:
type: string
format: uuid
nullable: true
description: Unique identifier assigned to the fee within the Lago application. This ID is exclusively created by Lago and serves as a unique identifier for the fee's record within the Lago system.
example: 1a901a90-1a90-1a90-1a90-1a901a901a90
lago_charge_id:
type: string
format: uuid
nullable: true
description: Unique identifier assigned to the charge that the fee belongs to
example: 1a901a90-1a90-1a90-1a90-1a901a901a90
lago_charge_filter_id:
type: string
format: uuid
nullable: true
description: Unique identifier assigned to the charge filter that the fee belongs to
example: 1a901a90-1a90-1a90-1a90-1a901a901a90
lago_invoice_id:
type: string
format: uuid
nullable: true
description: Unique identifier assigned to the invoice that the fee belongs to
example: 1a901a90-1a90-1a90-1a90-1a901a901a90
lago_true_up_fee_id:
type: string
format: uuid
nullable: true
description: Unique identifier assigned to the true-up fee when a minimum has been set to the charge. This identifier helps to distinguish and manage the true-up fee associated with the charge, which may be applicable when a minimum threshold or limit is set for the charge amount.
example: 1a901a90-1a90-1a90-1a90-1a901a901a90
lago_true_up_parent_fee_id:
type: string
format: uuid
nullable: true
description: Unique identifier assigned to the parent fee on which the true-up fee is assigned. This identifier establishes the relationship between the parent fee and the associated true-up fee.
example: 1a901a90-1a90-1a90-1a90-1a901a901a90
lago_subscription_id:
type: string
format: uuid
nullable: true
description: Unique identifier assigned to the subscription, created by Lago. This field is specifically displayed when the fee type is charge or subscription.
example: 1a901a90-1a90-1a90-1a90-1a901a901a90
lago_customer_id:
type: string
format: uuid
nullable: true
description: Unique identifier assigned to the customer, created by Lago. This field is specifically displayed when the fee type is charge or subscription.
example: 1a901a90-1a90-1a90-1a90-1a901a901a90
external_customer_id:
type: string
nullable: true
description: Unique identifier assigned to the customer in your application. This field is specifically displayed when the fee type is charge or subscription.
example: external_id
external_subscription_id:
type: string
nullable: true
description: Unique identifier assigned to the subscription in your application. This field is specifically displayed when the fee type is charge or subscription.
example: external_id
invoice_display_name:
type: string
description: Specifies the name that will be displayed on an invoice. If no value is set
# --- truncated at 32 KB (50 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/lago/refs/heads/main/openapi/lago-credit-notes-api-openapi.yml