diff --git a/modules/ppcp-api-client/src/Endpoint/PayUponInvoiceOrderEndpoint.php b/modules/ppcp-api-client/src/Endpoint/PayUponInvoiceOrderEndpoint.php index 09cb0df22..288fb88b6 100644 --- a/modules/ppcp-api-client/src/Endpoint/PayUponInvoiceOrderEndpoint.php +++ b/modules/ppcp-api-client/src/Endpoint/PayUponInvoiceOrderEndpoint.php @@ -345,6 +345,16 @@ class PayUponInvoiceOrderEndpoint { $data['purchase_units'][0]['amount']['breakdown']['tax_total']['value'] = number_format( $tax_total + $shipping_taxes, 2, '.', '' ); } + $total_amount = floatval($data['purchase_units'][0]['amount']['value']); + $item_total = floatval($data['purchase_units'][0]['amount']['breakdown']['item_total']['value']); + $shipping = floatval($data['purchase_units'][0]['amount']['breakdown']['shipping']['value']); + $tax_total = floatval($data['purchase_units'][0]['amount']['breakdown']['tax_total']['value']); + $total_breakdown = $item_total + $shipping + $tax_total; + $diff = round($total_amount - $total_breakdown); + if($diff === -0.01 || $diff === 0.01) { + $data['purchase_units'][0]['amount']['value'] = number_format( $total_breakdown, 2, '.', '' ); + } + return $data; } }