cancel
Showing results for 
Search instead for 
Did you mean: 

Create Payment rejects my request made with transactions and item_list

Contributor

Create Payment rejects my request made with transactions and item_list

I am using the client-side (Javascript) Paypal integration within a Vue.js app. I was able to successfully create and receive a completed payment following this Paypal component guide here. However, I need to be able to pass the detailed line items so that (1) my customers know exactly what they are tendering payment for at all stages of the checkout and so that (2) my merchant has access to their history of what was purchased with each Paypal transaction. 

 

I am currently getting this error but my data suggests appears to be what is required per my understanding of this Paypal create payment API reference here. The error I get from my Chrome Developer Tools is this:

Uncaught Error: Error: Request to post https://www.sandbox.paypal.com/v1/payments/payment failed with 400 error. Correlation id: 6cdb868c81733, 6cdb868c81733

{
"name": "VALIDATION_ERROR",
"details": [
{
"field": "transactions.amount",
"issue": "Currency amount must be non-negative number, may optionally contain exactly 2 decimal places separated by '.', optional thousands separator ',', limited to 7 digits before the decimal point and currency which is a valid ISO Currency Code"
}
],
"message": "Invalid request - see details",
"information_link": "https://developer.paypal.com/docs/api/payments/#errors",
"debug_id": "6cdb868c81733"
}

at XMLHttpRequest.<anonymous> (https://www.paypalobjects.com/api/checkout.4.0.223.js:14044:39)

 

In terms of code, my Paypal button is configured as follows:

<Paypal env='sandbox'
                                currency='USD'
                                v-bind:client='paypalCredentials'
                                v-bind:button-style='paypalStyle'
                                v-on:payment-cancelled='onPaypalPaymentCancelled'
                                v-on:payment-authorized='onPaypalPaymentAuthorized'
                                v-on:payment-completed='onPaypalPaymentCompleted'
                                v-bind:transactions='paypalTransactionRequest()'>
                            </Paypal>
 
The paypaly button uses the v-bind:transations='' syntax to call a method in my javascript component that returns this JSON payload via JSON.stringify(). I had originally just passed back the object rather than JSON payload. Both methods fail. I noticed the curl example indicates that the price field values are also strings. Is that intended and required?
{
"intent": "sale",
"payer": {
"payment_method": "paypal"
},
"transactions": [
{
"description": "Starwicker Checkout",
"amount": {
"currency": "USD",
"total": 19.94,
"details": {
"subtotal": 15.94,
"tax": 2.01,
"shipping": 1.99
}
},
"item_list": {
"items": [
{
"sku": "DTF060",
"name": "Mars",
"description": "Starwicker Mars",
"quantity": 1,
"price": 15.94,
"tax": 2.01
}
]
}
}
]
}
 
 
2 REPLIES 2
Contributor

nnoRe: Create Payment rejects my request made with transactions and item_list

Hey, any fix to this particular error ? I would like to know if you've done something to make this fix ?

Highlighted
Moderator

Re: nnoRe: Create Payment rejects my request made with transactions and item_list

Hello,

If you're still experiencing this issue, can you please share a new debug_id ?

The existing ones provided appear to have expired.

Thanks !

Was my post helpful? If so, please give me a kudos!