<?php
namespace PayPal\Api;
use PayPal\Common\PayPalResourceModel;
use PayPal\Rest\ApiContext;
use PayPal\Validation\ArgumentValidator;
/**
* Class PaymentInstruction
*
* Contain details of how and when the payment should be made to PayPal in cases of manual bank transfer.
*
* @package PayPal\Api
*
* @property string reference_number
* @property string instruction_type
* @property \PayPal\Api\RecipientBankingInstruction recipient_banking_instruction
* @property \PayPal\Api\Currency amount
* @property string payment_due_date
* @property string note
* @property \PayPal\Api\Links[] links
*/
class PaymentInstruction extends PayPalResourceModel
{
/**
* ID of payment instruction
*
* @param string $reference_number
*
* @return $this
*/
public function setReferenceNumber($reference_number)
{
$this->reference_number = $reference_number;
return $this;
}
/**
* ID of payment instruction
*
* @return string
*/
public function getReferenceNumber()
{
return $this->reference_number;
}
/**
* Type of payment instruction
* Valid Values: ["MANUAL_BANK_TRANSFER", "PAY_UPON_INVOICE"]
*
* @param string $instruction_type
*
* @return $this
*/
public function setInstructionType($instruction_type)
{
$this->instruction_type = $instruction_type;
return $this;
}
/**
* Type of payment instruction
*
* @return string
*/
public function getInstructionType()
{
return $this->instruction_type;
}
/**
* Recipient bank Details.
*
* @param \PayPal\Api\RecipientBankingInstruction $recipient_banking_instruction
*
* @return $this
*/
public function setRecipientBankingInstruction($recipient_banking_instruction)
{
$this->recipient_banking_instruction = $recipient_banking_instruction;
return $this;
}
/**
* Recipient bank Details.
*
* @return \PayPal\Api\RecipientBankingInstruction
*/
public function getRecipientBankingInstruction()
{
return $this->recipient_banking_instruction;
}
/**
* Amount to be transferred
*
* @param \PayPal\Api\Currency $amount
*
* @return $this
*/
public function setAmount($amount)
{
$this->amount = $amount;
return $this;
}
/**
* Amount to be transferred
*
* @return \PayPal\Api\Currency
*/
public function getAmount()
{
return $this->amount;
}
/**
* Date by which payment should be received
*
* @param string $payment_due_date
*
* @return $this
*/
public function setPaymentDueDate($payment_due_date)
{
$this->payment_due_date = $payment_due_date;
return $this;
}
/**
* Date by which payment should be received
*
* @return string
*/
public function getPaymentDueDate()
{
return $this->payment_due_date;
}
/**
* Additional text regarding payment handling
*
* @param string $note
*
* @return $this
*/
public function setNote($note)
{
$this->note = $note;
return $this;
}
/**
* Additional text regarding payment handling
*
* @return string
*/
public function getNote()
{
return $this->note;
}
/**
* Retrieve a payment instruction by passing the payment_id in the request URI. Use this request if you are implementing a solution that includes delayed payment like Pay Upon Invoice (PUI).
*
* @param string $paymentId
* @param ApiContext $apiContext is the APIContext for this call. It can be used to pass dynamic configuration and credentials.
* @param PayPalRestCall $restCall is the Rest Call Service that is used to make rest calls
* @return PaymentInstruction
*/
public static function get($paymentId, $apiContext = null, $restCall = null)
{
ArgumentValidator::validate($paymentId, 'paymentId');
$payLoad = "";
$json = self::executeCall(
"/v1/payments/payment/$paymentId/payment-instruction",
"GET",
$payLoad,
null,
$apiContext,
$restCall
);
$ret = new PaymentInstruction();
$ret->fromJson($json);
return $ret;
}
}