stripe / stripe-java

Java library for the Stripe API.
https://stripe.com
MIT License
791 stars 357 forks source link

`toJson` fails to create exactly the same json as the Stripe HTTP API #1845

Open decoursin opened 1 month ago

decoursin commented 1 month ago

Describe the bug

The InvoiceLineItem.getUnitAmountExcludingTax returns a BigDecimal. While the Stripe API HTTP Server returns the unit_amount_excluding_tax as a string.

As a result, when the InvoiceLineItem is serialized using toJson, it returns a completely different format than the Stripe API Http Server. They should be the same.

To Reproduce

  1. Create an invoice and 1 invoice item.
  2. Serialize that invoice using toJson.
  3. View the serialize invoice item, and see that it's serialized as a json number rather than a string.

Expected behavior

Serializing an InvoiceLineItem using toJson is suppose to replicate the Stripe API HTTP server 100% exactly, and it's not doing that.

Code snippets

No response

OS

All

Java version

Java 17

stripe-java version

v26.4.0

API version

2024-06-20

Additional context

No response

xavdid-stripe commented 1 month ago

Thanks for filing! We've copied to our internal bug tracker and will address it when we have a chance.

decoursin commented 1 month ago

Great, thank you