From 4d32bdb0f4a1a077e516775a675c251269e566b7 Mon Sep 17 00:00:00 2001 From: Anna Velentsevich Date: Wed, 2 Sep 2026 11:22:18 +0200 Subject: [PATCH] fix(invoices,credit_notes): align request params with the API contract net_payment_term is not permitted by the invoices controller on create or update, so it was silently dropped; description is permitted on credit note create but was missing from the whitelist. --- lib/lago/api/resources/credit_note.rb | 1 + lib/lago/api/resources/invoice.rb | 3 +-- spec/factories/credit_note.rb | 1 + spec/factories/invoice.rb | 2 -- spec/lago/api/resources/invoice_spec.rb | 5 ----- 5 files changed, 3 insertions(+), 9 deletions(-) diff --git a/lib/lago/api/resources/credit_note.rb b/lib/lago/api/resources/credit_note.rb index ce990037..1d911f2f 100644 --- a/lib/lago/api/resources/credit_note.rb +++ b/lib/lago/api/resources/credit_note.rb @@ -18,6 +18,7 @@ def whitelist_params(params) result_hash = { invoice_id: params[:invoice_id], reason: params[:reason], + description: params[:description], refund_status: params[:refund_status], credit_amount_cents: params[:credit_amount_cents], refund_amount_cents: params[:refund_amount_cents], diff --git a/lib/lago/api/resources/invoice.rb b/lib/lago/api/resources/invoice.rb index 0d728d50..7189ea63 100644 --- a/lib/lago/api/resources/invoice.rb +++ b/lib/lago/api/resources/invoice.rb @@ -94,7 +94,7 @@ def preview(params) end def whitelist_params(params) - result = params.slice(:payment_status, :net_payment_term) + result = params.slice(:payment_status) if params.key?(:metadata) metadata = whitelist_metadata(params[:metadata]) @@ -124,7 +124,6 @@ def one_off_params(params) result = { external_customer_id: params[:external_customer_id], currency: params[:currency], - net_payment_term: params[:net_payment_term], skip_psp: params[:skip_psp], billing_entity_code: params[:billing_entity_code], purchase_order_number: params[:purchase_order_number] diff --git a/spec/factories/credit_note.rb b/spec/factories/credit_note.rb index 8a22fe1b..c97c63bc 100644 --- a/spec/factories/credit_note.rb +++ b/spec/factories/credit_note.rb @@ -4,6 +4,7 @@ factory :create_credit_note, class: OpenStruct do invoice_id { '1a901a90-1a90-1a90-1a90-1a901a901a90' } reason { 'duplicated_charge' } + description { 'Credit note description' } items { build_list(:create_credit_note_item, 2).map(&:to_h) } metadata { { 'foo' => 'bar', 'baz' => 'qux' } } end diff --git a/spec/factories/invoice.rb b/spec/factories/invoice.rb index fc6e3cb7..d3d67b9e 100644 --- a/spec/factories/invoice.rb +++ b/spec/factories/invoice.rb @@ -4,7 +4,6 @@ factory :create_invoice, class: OpenStruct do external_customer_id { '_ID_' } currency { 'EUR' } - net_payment_term { 0 } fees do [ { @@ -17,7 +16,6 @@ factory :update_invoice, class: OpenStruct do payment_status { 'succeeded' } - net_payment_term { 0 } metadata do [ { diff --git a/spec/lago/api/resources/invoice_spec.rb b/spec/lago/api/resources/invoice_spec.rb index aeff3387..fc9ffa76 100644 --- a/spec/lago/api/resources/invoice_spec.rb +++ b/spec/lago/api/resources/invoice_spec.rb @@ -24,7 +24,6 @@ { external_customer_id: '_ID_', currency: 'EUR', - net_payment_term: 0, skip_psp: true, fees: [ { @@ -48,7 +47,6 @@ expect(invoice).to have_attributes( lago_id: invoice_id, - net_payment_term: 0, payment_due_date: '2022-06-02', payment_status: 'succeeded', payment_overdue: false, @@ -75,7 +73,6 @@ { external_customer_id: '_ID_', currency: 'EUR', - net_payment_term: 0, skip_psp: true, fees: [ { @@ -109,7 +106,6 @@ { external_customer_id: '_ID_', currency: 'EUR', - net_payment_term: 0, skip_psp: true, fees: [ { @@ -166,7 +162,6 @@ { external_customer_id: '_ID_', currency: 'EUR', - net_payment_term: 0, skip_psp: true, billing_entity_code: 'eu_entity', fees: [