Skip to content

Conversation

@nepalez
Copy link

@nepalez nepalez commented Dec 1, 2025

Roadmap Task

Context

This PR adds Python client support for credit note metadata. This complements the backend implementation that enables customers like Mistral AI to flag credit notes synced to external systems.

Description

New methods on CreditNoteClient

Method HTTP Endpoint Description
replace_metadata(id, metadata) POST /credit_notes/:id/metadata Replaces all metadata
merge_metadata(id, metadata) PATCH /credit_notes/:id/metadata Merges new keys into existing
delete_all_metadata(id) DELETE /credit_notes/:id/metadata Removes all metadata
delete_metadata_key(id, key) DELETE /credit_notes/:id/metadata/:key Removes a single key

Metadata format

Metadata is represented as a dict with string keys and optional string values:

client.credit_notes.replace_metadata(credit_note_id, {
    "foo": "bar",
    "baz": None
})

Changes

  • lago_python_client/credit_notes/clients.py — added 4 new metadata methods
  • lago_python_client/models/credit_note.py — added metadata field to CreditNote, CreditNoteUpdate, and CreditNoteResponse models
  • lago_python_client/services/request.py — added send_patch_request for PATCH support
  • tests/fixtures/credit_note.json — added metadata field to fixture
  • tests/test_credit_note_client.py — added tests for all 4 metadata methods with null value handling

@nepalez nepalez marked this pull request as draft December 1, 2025 11:39
@nepalez nepalez force-pushed the credit-note-metadata branch from 4ea907e to f75fd21 Compare December 1, 2025 11:47
@nepalez nepalez marked this pull request as ready for review December 1, 2025 11:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants