Integration Guide
Table Of Contents
- Express Checkout Integration Guide
- Contents
 - Preface
 - Introducing Express Checkout
 - Express Checkout Button and Logo Image Integration
 - PayPal Name-Value Pair API Basics
 - Implementing the Simplest Express Checkout Integration
 - Testing an Express Checkout Integration
 - Customizing Express Checkout
 - Implementing the Instant Update API
 - Immediate Payment
 - Implementing Parallel Payments
 - Handling Payment Settlements
 - Handling Recurring Payments
- How Recurring Payments Work
 - Recurring Payments Terms
 - Options for Creating a Recurring Payments Profile
 - Recurring Payments With Express Checkout
 - Recurring Payments Profile Status
 - Getting Recurring Payments Profile Information
 - Modifying a Recurring Payments Profile
 - Billing the Outstanding Amount of a Profile
 - Recurring Payments Notifications
 
 - Using Other PayPal API Operations
 - Integrating giropay with Express Checkout
 
 
Express Checkout Integration Guide May 2010 105
Implementing Parallel Payments
Integrating Parallel Payments Using the SOAP API
9
PaymentDetailsType[] PaymentDetailsArray = new PaymentDetailsType[9]; 
//******************************************************* 
 //merchant 1 
//******************************************************* 
PaymentDetailsType payment1 = new PaymentDetailsType(); 
payment1.PaymentAction = PaymentActionCodeType.Order; 
payment1.PaymentActionSpecified = true; 
payment1.SellerDetails = new SellerDetailsType(); 
payment1.SellerDetails.PayPalAccountID = "support@1stimagehosting.com"; 
//set up the line items for the first merchant 
PaymentDetailsItemType[] payment1_items_array = 
 new PaymentDetailsItemType[2]; 
PaymentDetailsItemType payment1_item1 = new PaymentDetailsItemType(); 
payment1_item1.Amount = new B asicAmountType(); 
payment1_item1.Amount.currencyID = CurrencyCodeType.USD; 
payment1_item1.Amount.Value = "1.00"; 
payment1_item1.Description = "payment1_item1_desc"; 
payment1_item1.Name = "payment1_item1_name"; 
payment1_item1.Number = "payment1_item1_number"; 
payment1_item1.ItemURL = "http://item1.com"; 
payment1_item1.Quantity = "3"; 
payment1_item1.Tax = new BasicAmountType(); 
payment1_item1.Tax.currencyID = CurrencyCodeType.USD; 
payment1_item1.Tax.Value = ".50"; 
PaymentDetailsItemType payment1_item2 = new PaymentDetailsItemType(); 
payment1_item2.Amount = new BasicAmountType(); 
payment1_item2.Amount.currencyID = CurrencyCodeType.USD; 
payment1_item2.Amount.Value = "1.00"; 
payment1_item2.Description = "payment1_item2_desc"; 
payment1_item2.Name = "payment1_item2_name"; 
payment1_item2.Number = "payment1_item2_number"; 
payment1_item2.ItemURL = "http://item2.com"; 
payment1_item2.Quantity = "2"; 
payment1_item2.Tax = new BasicAmountType(); 
payment1_item2.Tax.currencyID = CurrencyCodeType.USD; 
payment1_item2.Tax.Value = ".25"; 
payment1_items_array.SetValue(payment1_item1, 0); 
payment1_items_array.SetValue(payment1_item2, 1); 
//bind the items 
payment1.PaymentDetailsItem = payment1_items_array; 
//set the totals 
decimal tax_total = 0; 
decimal item_total = 0; 
foreach (PaymentDetailsItemType Key in payment1_items_array) 
{ 
 if (Key.Tax != null) 
 { 
 tax_total = decimal.Add(tax_total, 
 decimal.Multiply(decimal.Parse(Key.Tax.Value), 
  decimal.Parse(Key.Quantity))); 










