<?php
namespace ModulesAbstract\ElectronicInvoice\UBL21Structure;

/**
 * PaymentMeans
 *
 * @see http://www.datypic.com/sc/ubl21/e-cac_PaymentMeans.html
 *
 * @see https://unece.org/fileadmin/DAM/trade/untdid/d16b/tred/tred4461.htm
 * @see https://docs.oasis-open.org/ubl/cd-UBL-1.0/xsd/codelist/UBL-CodeList-PaymentMeansCode-1.0.xsd
 */
class TypePaymentMeans extends AbstractPeppolElement
{

	/**
	 * cbc:ID, 0..1, optional tag
	 *
	 * An identifier for this means of payment.
	 * @var mixed
	 */
	public $ID = null;

	/**
	 * cbc:PaymentMeansCode, 1..1, MANDATORY tag
	 *
	 * A code signifying the type of this means of payment.
	 * @var mixed
	 */
	public $PaymentMeansCode = null;

	/**
	 * cbc:PaymentDueDate, 0..1, optional tag
	 *
	 * The date on which payment is due for this means of payment.
	 * @var mixed
	 */
	public $PaymentDueDate = null;

	/**
	 * cbc:PaymentChannelCode, 0..1, optional tag
	 *
	 * A code signifying the payment channel for this means of payment.
	 * @var mixed
	 */
	public $PaymentChannelCode = null;

	/**
	 * cbc:InstructionID, 0..1, optional tag
	 *
	 * An identifier for the payment instruction.
	 * @var mixed
	 */
	public $InstructionID = null;

	/**
	 * cbc:InstructionNote, 0..*
	 *
	 * Free-form text conveying information that is not contained explicitly in other structures.
	 * @var mixed
	 */
	public $InstructionNote = null;

	/**
	 * cbc:PaymentID, 0..*
	 *
	 * An identifier for a payment made using this means of payment.
	 * @var mixed
	 */
	public $PaymentID = null;

	/**
	 * cac:CardAccount, 0..1, optional tag
	 *
	 * A credit card, debit card, or charge card account that constitutes this means of payment.
	 * @var mixed
	 */
	public $CardAccount = null;

	/**
	 * cac:PayerFinancialAccount, 0..1, optional tag
	 *
	 * The payer's financial account.
	 * @var mixed
	 */
	public $PayerFinancialAccount = null;

	/**
	 * cac:PayeeFinancialAccount, 0..1, optional tag
	 *
	 * The payee's financial account.
	 * @var mixed
	 */
	public $PayeeFinancialAccount = null;

	/**
	 * cac:CreditAccount, 0..1, optional tag
	 *
	 * A credit account associated with this means of payment.
	 * @var mixed
	 */
	public $CreditAccount = null;

	/**
	 * cac:PaymentMandate, 0..1, optional tag
	 *
	 * The payment mandate associated with this means of payment.
	 * @var mixed
	 */
	public $PaymentMandate = null;

	/**
	 * cac:TradeFinancing, 0..1, optional tag
	 *
	 * A trade finance agreement applicable to this means of payment.
	 * @var mixed
	 */
	public $TradeFinancing = null;

}
