CyberSource / cybersource-sdk-java

Java SDK for CyberSource Simple Order API
Other
51 stars 84 forks source link

Invalid `amountIncludesTax` value for Level 3 processing #153

Closed attacomsian closed 2 years ago

attacomsian commented 3 years ago

We are facing a weird issue while trying to capture a payment with Level 2/3 data.

For Visa credit cards, everything works fine.

For MasterCard, the REST API returns the following error:

The following offer-level field data is either invalid or missing: offer0.gross_net_indicator

After talking to Visa technical team, it turned out that the value of the amountIncludesTax field is not correctly translating to an expected value.

Here is the response we got from the Visa team:

Turns out that there is nothing wrong with your code, but rather a documentation issue or API translation issue on our side.

For amountIncludesTax, instead of sending true which is listed in our documentation, you have to set the value to “Y” or “N”.

As a point of clarity, our REST API translates the API values to our backend servers which are expecting different field values (which are part of our other APIs). It appears that the REST API isn’t translating “true” or “false” to “Y” or “N”.

Since we are using Java SDK, we are unable to replace true/false with Y/N.

Can you please look into this issue and advise us what should we do?

Thank you so much!

P.S. If you want to reproduce the issue, here is a gist I've created for the Visa team.