Class Bill

  • All Implemented Interfaces:
    java.io.Serializable

    public class Bill
    extends java.lang.Object
    implements java.io.Serializable
    QR bill data
    See Also:
    Serialized Form
    • Constructor Detail

      • Bill

        public Bill()
    • Method Detail

      • getVersion

        public Bill.Version getVersion()
        Gets the version of the QR bill standard.
        Returns:
        the version
      • setVersion

        public void setVersion​(Bill.Version version)
        Sets the version of the QR bill standard.
        Parameters:
        version - the version
      • getAmount

        public java.math.BigDecimal getAmount()
        Gets the payment amount
        Returns:
        the amount
      • getAmountAsDouble

        public java.lang.Double getAmountAsDouble()
        Gets the payment amount as a Double instance
        Returns:
        the amount
      • setAmount

        public void setAmount​(java.math.BigDecimal amount)
        Sets the payment amount.

        Valid values are between 0.01 and 999,999,999.99

        Parameters:
        amount - the amount
      • setAmountFromDouble

        public void setAmountFromDouble​(java.lang.Double amount)
        Sets the payment amount from a Double solid-line-with_scissors

        The value is saved with a scale of 2.

        Parameters:
        amount - the amount
      • getCurrency

        public java.lang.String getCurrency()
        Gets the payment currency.
        Returns:
        the currency
      • setCurrency

        public void setCurrency​(java.lang.String currency)
        Sets the payment currency.

        Valid values are "CHF" and "EUR".

        Parameters:
        currency - the currency
      • getAccount

        public java.lang.String getAccount()
        Gets the creditor's account number.
        Returns:
        the account number
      • setAccount

        public void setAccount​(java.lang.String account)
        Sets the creditor's account number.

        Account numbers must be valid IBANs of a bank of Switzerland or Liechtenstein. Spaces are allowed in the account number.

        Parameters:
        account - the account number
      • getCreditor

        public Address getCreditor()
        Gets the creditor address.
        Returns:
        the creditor address
      • setCreditor

        public void setCreditor​(Address creditor)
        Sets the creditor address.
        Parameters:
        creditor - the creditor address.
      • getReference

        public java.lang.String getReference()
        Gets the payment reference
        Returns:
        the reference
      • setReference

        public void setReference​(java.lang.String reference)
        Sets the payment reference.

        The reference is mandatory for QR IBANs, i.e. IBANs in the range CHxx30000xxxxxx through CHxx31999xxxxx.

        If specified, the reference must be either a valid QR reference (which corresponds to the form ISR reference) or a valid creditor reference according to ISO 11649 ("RFxxxx"). Both may contain spaces for formatting.

        Parameters:
        reference - the payment reference number
      • createAndSetCreditorReference

        public void createAndSetCreditorReference​(java.lang.String rawReference)
        Creates and sets a ISO11649 creditor reference from a raw string by prefixing the String with "RF" and the modulo 97 checksum.

        Whitespace is removed from the reference

        Parameters:
        rawReference - The raw string
        Throws:
        java.lang.IllegalArgumentException - if rawReference contains invalid characters
      • getDebtor

        public Address getDebtor()
        Gets the debtor's address.
        Returns:
        the debtor address
      • setDebtor

        public void setDebtor​(Address debtor)
        Sets the debtor's address.

        The debtor is optional. If it is omitted, both setting this field to null or setting an address with all null or empty values is ok.

        Parameters:
        debtor - the debtor address
      • getUnstructuredMessage

        public java.lang.String getUnstructuredMessage()
        Gets the additional unstructured message.
        Returns:
        the unstructured message
      • setUnstructuredMessage

        public void setUnstructuredMessage​(java.lang.String unstructuredMessage)
        Sets the additional unstructured message.
        Parameters:
        unstructuredMessage - the unstructured message
      • getBillInformation

        public java.lang.String getBillInformation()
        Gets the additional bill information.
        Returns:
        bill information
      • setBillInformation

        public void setBillInformation​(java.lang.String billInformation)
        Sets the additional bill information
        Parameters:
        billInformation - bill information
      • getAlternativeSchemes

        public AlternativeScheme[] getAlternativeSchemes()
        Get the alternative schemes.

        A maximum of two schemes are allowed.

        Returns:
        alternative schemes
      • setAlternativeSchemes

        public void setAlternativeSchemes​(AlternativeScheme[] alternativeSchemes)
        Sets the alternative scheme parameters.

        A maximum of two schemes with parameters are allowed.

        Parameters:
        alternativeSchemes - alternative payment scheme information
      • getFormat

        public BillFormat getFormat()
        Gets the bill format.
        Returns:
        bill format
      • setFormat

        public void setFormat​(BillFormat format)
        Sets the bill format.
        Parameters:
        format - bill format
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object