Nikita
Nikita

Reputation: 765

Paypal SDK - Invalid Request, missing required parameter

Im currently implementing the Paypal SDK.

The weird thing is that I copied a paypal request from the docs, looking like:

purchase_units: [
  {
    "amount": {
      "currency": "EUR",
      "details": {"subtotal": "1.09", "shipping": "0.02", "tax": "0.33"},
      "total": "1.44"
    },
    "items": [
      {
        "name": "NeoPhone",
        "sku": "sku03",
        "price": "0.54",
        "currency": "EUR",
        "quantity": "1"
      },
      {
        "name": "Fitness Watch",
        "sku": "sku04",
        "price": "0.55",
        "currency": "EUR",
        "quantity": "1"
      }
    ],
    "shipping_address": {
      "line1": "2211 N First Street",
      "line2": "Building 17",
      "city": "San Jose",
      "country_code": "US",
      "postal_code": "95131",
      "state": "CA",
      "phone": "(123) 456-7890"
    },
    "shipping_method": "United Postal Service",
    "invoice_number": "invoice_number_2388",
  }
]

The problem is that this JSON triggers three errors, all complaining about Missing required parameters.

{"field":"/purchase_units/@reference_id=='default'/amount/value","value":"","location":"body","issue":"MISSING_REQUIRED_PARAMETER","description":"A required field / parameter is missing."},

{"field":"/purchase_units/@reference_id=='default'/items/0/unit_amount","value":"","location":"body","issue":"MISSING_REQUIRED_PARAMETER","description":"A required field / parameter is missing."},

{"field":"/purchase_units/@reference_id=='default'/items/1/unit_amount","value":"","location":"body","issue":"MISSING_REQUIRED_PARAMETER","description":"A required field / parameter is missing."}

I thought after those errors that he wants me to add a "value" property to the JSON in item 0, item 1 & in amount; but I cant figure out for what it would want this value attribute. On top Im a little bit confused about the errors hence I copied the code from the PayPal doku.

Does anybody understand my mistake?

Upvotes: 0

Views: 1194

Answers (1)

Preston PHX
Preston PHX

Reputation: 30467

That sample is from v1 orders, which was barely ever used and not by the JS SDK, which uses v2 orders. Here's the correct API reference: https://developer.paypal.com/docs/api/orders/v2/#orders_create

You can also start with a simple one from the Integrate Checkout guide:

       {
         "purchase_units": [{
            "amount": {
              "currency_code": "USD",
              "value": "100",
              "breakdown": {
                "item_total": {  /* Required when including the items array */
                  "currency_code": "USD",
                  "value": "100"
                }
              }
            },
            "items": [
              {
                "name": "First Product Name", /* Shows within upper-right dropdown during payment approval */
                "description": "Optional descriptive text..", /* Item details will also be in the completed paypal.com transaction view */
                "unit_amount": {
                  "currency_code": "USD",
                  "value": "50"
                },
                "quantity": "2"
              },
            ]
          }]
      }

Upvotes: 1

Related Questions