sapatos
sapatos

Reputation: 1304

PayPal adaptive Payments chained payments does not allow a payment despite primary having the full amount set correctly

I'm generating the following chained payment call using php. the primary is my company which receives the full amount whilst the secondary is another recipient. the call is:

currencyCode=USD
actionType=PAY
returnUrl=http%3A%2F%2Felb-dev-xx.com%2FpaymentSuccess.php
cancelUrl=http%3A%2F%2Felb-dev-xx.com%2FpaymentCancel.php
receiverList.receiver(0).amount=12.00
receiverList.receiver(0).email=xx%40gmail.com
receiverList.receiver(0).primary=1
receiverList.receiver(0).invoiceId=MC2015022346_125
receiverList.receiver(1).amount=13.50
receiverList.receiver(1).email=xx2%40gmail.com
receiverList.receiver(1).invoiceId=MC2015022346_125
feesPayer=EACHRECEIVER
ipnNotificationUrl=http%3A%2F%2Felb-dev-xx.com%2Fpaypal%2Fipn_handler.php
memo=my+memo+and+stuff

The error I'm seeing is:

23/Feb/2015:21:32:47] (chained_payment) [436-dl4i3jsu2gbblo1fvk5evpvjl6] : array (
'responseEnvelope.timestamp' => '2015-02-23T02:32:47.511-08:00',
'responseEnvelope.ack' => 'Failure',
  'responseEnvelope.correlationId' => 'b4d7182a1a689',
  'responseEnvelope.build' => '15089777',
  'error(0).errorId' => '579017',
  'error(0).domain' => 'PLATFORM',
  'error(0).subdomain' => 'Application',
  'error(0).severity' => 'Error',
  'error(0).category' => 'Application',
  'error(0).message' => 'The amount for the primary receiver must be greater than or equal to the total of other chained receiver amounts',
)
    [23/Feb/2015:21:32:47] (chained_payment) [436-dl4i3jsu2gbblo1fvk5evpvjl6] : array (
  0 =>
  array (
'ErrorCode' => '579017',
'ErrorMsg' => 'The amount for the primary receiver must be greater than or equal to the total of other chained receiver amounts',
'ErrorDomain' => 'PLATFORM',
'ErrorSeverity' => 'Error',
'ErrorCategory' => 'Application',
  ),
)
    [23/Feb/2015:21:32:47] (chained_payment) [436-dl4i3jsu2gbblo1fvk5evpvjl6] : Calling PayPal pay() failed
    [23/Feb/2015:21:32:47] (chained_payment) [436-dl4i3jsu2gbblo1fvk5evpvjl6] : Exception::__set_state(array(
   'message' => 'The amount for the primary receiver must be greater than or equal to the total of other chained receiver amounts',
   'string' => '',
   'code' => 0,
   'file' => '/var/app/current/chained_payment.php',
       'line' => 643,
   'trace' =>
  array (
  ),
     'previous' => NULL,
  ))
  [23/Feb/2015:21:32:47] (chained_payment) [436-dl4i3jsu2gbblo1fvk5evpvjl6] : Chained Payment failed The amount for the primary receiver must be greater than or equal to the total of other chained receiver amounts

This seems to be telling me, as I'm already aware, that the primary has to get the entire hit and send the remainder on to the secondary. however it still doesn't like it.

This is happening in sandbox and production currently.

any ideas?

Upvotes: 0

Views: 207

Answers (1)

Drew Angell
Drew Angell

Reputation: 26056

Based on your request, you're trying to send $12.00 to the primary receiver, but then send $13.50 to a secondary receiver. You can't do that.

It sounds like what you want to be doing is sending $25.50 to the primary receiver, and then sending $13.50 to the secondary receiver, which would leave the primary receiver with $12.00.

Upvotes: 1

Related Questions