Sending purchased items details to the PayPal?

paypal goods and services
paypal buyer protection
paypal login
paypal seller protection
paypal customer service
paypal item not as described
paypal dispute
paypal refunded buyer before item returned

I need to send the list of item purchased and whose payments are being done using Paypal so that the buyer as well as the vendor can see that what products have the been purchased or sold. Here is the snippet of what I did for the same, by following the Github code of PayPalCheckout but I get each time. Here is my code snippet

private PayPalPayment prepareFinalCart() {

    List<PayPalItem> productsInCart = new ArrayList<>();
    double price;


    for (Program program : mPrograms) {
        if (null != program.programPrices.get(program.selectedPriceIndex).priceAfterDiscount) {
            price = program.programPrices.get(program.selectedPriceIndex).priceAfterDiscount;
        } else {
            price = program.programPrices.get(program.selectedPriceIndex).price;
        }
        PayPalItem item = new PayPalItem(program.type, 1, //Quantity
                new BigDecimal(price), //price
                Config.DEFAULT_CURRENCY, // currency
                 + String.valueOf(program.id)); // stock keeping unit

        productsInCart.add(item);
    }


    if (App.sCouponDetails != null) {
        App.sCouponDetails.calculateDiscount(mFinalCost);
    }


    PayPalItem[] items = new PayPalItem[productsInCart.size()];
    items = productsInCart.toArray(items);

    // Total amount
    BigDecimal subtotal = new BigDecimal(mFinalCost);

    // If you have shipping cost, add it here
    BigDecimal shipping = new BigDecimal("0.0");

    // If you have tax, add it here
    BigDecimal tax = new BigDecimal("0.0");

    PayPalPaymentDetails paymentDetails = new PayPalPaymentDetails(shipping, subtotal, tax);

    BigDecimal amount = subtotal.add(shipping).add(tax);


    // Getting Purchased Programs type
    StringBuilder programsType = new StringBuilder();
    for (int i = 0; i < mPrograms.size(); i++) {
        if (i == mPrograms.size() - 1) {
            programsType.append(mPrograms.get(i).type);
        } else {
            programsType.append(mPrograms.get(i).type).append(",");
        }
    }

    PayPalPayment payment = new PayPalPayment(amount, Config.DEFAULT_CURRENCY, "Total Amount: "/*programsType.toString()*/, Config.PAYMENT_INTENT);


    payment.items(items).paymentDetails(paymentDetails);


    // Custom field like invoice_number etc.,
    //payment.custom("This is text that will be associated with the payment that the app can use.");

    return payment;
}

Please suggest what's the issue here ?

Actually those b/c/d/f etc parameters are from PayPalPayment class. I just given its Json format. Here is what PayPalPayment class looks like-

PayPal Buyer Protection Policy, PayPal Buyer Protection protects the Buyer if an item purchased has not been shipped not as described by the Seller (“SNAD”); see Section 4. below for details. agree to receive the refund by way of a funds transfer to your PayPal Account. Make payments using your credit card, debit card, bank account, or other payment options, including funds held as balance in a business PayPal account (if we have verified the required identifying information you provide to us) or funds held in a PayPal Cash or a PayPal Cash Plus account linked to a personal PayPal account if you choose to open

solved. Above code was correct the price value was more than of 7 digits after decimal that was giving an error code 400 (VALIDATION_ERROR). But now handled .

I didn't receive my item or it's different than described , You can still view answers to frequently asked questions on this page or send us a message, Item Not Received – You bought something, but didn't receive it. You can locate your seller's contact information on the transaction details page. On the next page, we display all items purchased by that buyer. Remove the check from any items you don’t want to include in the invoice. Add shipping charges. Enter a message to the buyer (optional) and select the payment methods you accept. To preview the invoice, select Preview invoice before sending. To send the invoice, select Send invoice.

So the JSON string you've provided is:

{
   "b":28.8629,
   "c":"USD",
   "d":"Ching Flix,Syncers Flix",
   "f":{
      "b":28.8629,
      "c":0.0,
      "d":0.0
   },
   "g":"sale",
   "h":[
      {
         "b":"Ching Flix",
         "c":1,
         "d":12,
         "e":"USD",
         "f":"sku-6167"
      },
      {
         "b":"Syncers Flix",
         "c":1,
         "d":20.0700,
         "e":"USD",
         "f":"sku-6498"
      }
   ],
   "i":false
}

This is not a format that PayPal will accept. Where are these b/c/d/f/etc. parameter names coming from?

You need to fix the request so it matches PayPal's format.

PayPal Purchase and Seller Protection, Shop online with Purchase Protection and sell online with Seller Protection your account information secure but there are some things you can do to stay more  How do I provide shipping details when orders are sent online not my post? Once payment is complete through paypal my website automatically returns you to my site and sends email with a download link to the purchased files.

How do I create a shipping label to return a purchase to the , We'll send you and the seller an email with tracking information to confirm that you're returning the item. We understand that shipping an item back to your seller​  Hi, Have read the forum comments on issuing a receipt retrospectively but answers seem to doing this via a smartphone app. How do I use the client's payment details to simply email them a receipt from my laptop. Can I click their payment details to copy all the information into a receipt te

How do I create and print shipping labels using PayPal?, You can still view answers to frequently asked questions on this page or send us a message, though responses may Click Activity at the top of the page and find the item you want to ship. Enter and review your shipping information then click Calculate shipping. UPS labels must be purchased with a PayPal balance. A few things that you can’t pay for with PayPal include most items related to gambling, adult content or services, and buying or selling prescription drugs from noncertified sellers. If you’re planning to send payments for something that may be a tad questionable, you probably want to visit the Acceptable Use Policy for the United States in

I did not receive the item I purchased or it is different from , You can still view answers to frequently asked questions on this page or send us If you purchased the item on eBay, report it on eBay Resolution Centre instead. For eBay specific information, please refer to eBay's customer support page. PayPal offer protections to both buyers and sellers, depending on the specific circumstances of the transaction. The PayPal dispute resolution centre is the first point of call if you have a problem either as a buyer invoicing a customer, or a customer who has been disappointed by a purchase.

Comments
  • Need to see the raw request that is getting generated from this code and sent to PayPal.
  • These is the item being added in PayPalPayment . PayPalItem(name=Chinx Tier, quantity=1, price=79.950000, currency=USD, sku-2086)
  • Okay, but that is not what I asked for. We need to see exactly what is getting sent to PayPal. Maybe the PayPalItem function is doing something funny with the data. Maybe something else is filtering the data somehow and the request is getting funky data in it that PayPal doesn't like. The first step in troubleshooting this is to see exactly what we're sending to PayPal. Not what we think we're sending to PayPal. If the raw request looks good, then we could move to next steps, but that is the first step.
  • Here is the Json String of PayPalPayment which is then being send to PaymentActivity of Paypal. {"b":28.8629,"c":"USD","d":"Ching Flix,Syncers Flix","f":{"b":28.8629,"c":0.0,"d":0.0},"g":"sale","h":[{"b":"Ching Flix","c":1,"d":12,"e":"USD","f":"sku-6167"},{"b":"Syncers Flix","c":1,"d":20.0700,"e":"USD","f":"sku-6498"}],"i":false}
  • That is not the format that PayPal would accept. You have a/b/c/d as the parameter names..??
  • error- ` request failed with server response:{"name":"VALIDATION_ERROR","details":[{"field":"transactions.item_list.items","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":"developer.paypal.com/docs/api/payments/…"}`