/*
* Copyright (C) 2014 konik.io
*
* This file is part of Konik library.
*
* Konik library is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Konik library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with Konik library. If not, see <http://www.gnu.org/licenses/>.
*/
package io.konik.zugferd.unece.codes;
import io.konik.util.KonikEnum;
import javax.xml.bind.annotation.XmlEnum;
import javax.xml.bind.annotation.XmlEnumValue;
import javax.xml.bind.annotation.XmlType;
/**
* = The Payment Means Code
*
* Represents payment code according to +UNCL 4461+.
*
* @see http://www.unece.org/trade/untdid/d13b/tred/tred4461.htm[UN/EDIFACT 4461 Payment means code^]
*/
@XmlEnum
@XmlType(name = "PaymentMeansCodeType")
public enum PaymentMeansCode {
/**
* Instrument not defined
*
* Not defined legally enforceable agreement between two or
* more parties (expressing a contractual right or a right
* to the payment of money).
**/
@XmlEnumValue("1")
_1("Instrument not defined"),
/**
* Automated clearing house credit
*
* A credit transaction made through the automated clearing
* house system.
**/
@XmlEnumValue("2")
_2("Automated clearing house credit"),
/**
* Automated clearing house debit
*
* A debit transaction made through the automated clearing
* house system.
**/
@XmlEnumValue("3")
_3("Automated clearing house debit"),
/**
* ACH demand debit reversal
*
* A request to reverse an ACH debit transaction to a
* demand deposit account.
**/
@XmlEnumValue("4")
_4("ACH demand debit reversal"),
/**
* ACH demand credit reversal
*
* A request to reverse a credit transaction to a demand
* deposit account.
**/
@XmlEnumValue("5")
_5("ACH demand credit reversal"),
/**
* ACH demand credit
*
* A credit transaction made through the ACH system to a
* demand deposit account.
**/
@XmlEnumValue("6")
_6("ACH demand credit"),
/**
* ACH demand debit
*
* A debit transaction made through the ACH system to a
* demand deposit account.
**/
@XmlEnumValue("7")
_7("ACH demand debit"),
/**
* Hold
*
* Indicates that the bank should hold the payment for
* collection by the beneficiary or other instructions.
**/
@XmlEnumValue("8")
_8("Hold"),
/**
* National or regional clearing
*
* Indicates that the payment should be made using the
* national or regional clearing.
**/
@XmlEnumValue("9")
_9("National or regional clearing"),
/**
* In cash
*
* Payment by currency (including bills and coins) in
* circulation, including checking account deposits.
**/
@XmlEnumValue("10")
_10("In cash"),
/**
* ACH savings credit reversal
*
* A request to reverse an ACH credit transaction to a
* savings account.
**/
@XmlEnumValue("11")
_11("ACH savings credit reversal"),
/**
* ACH savings debit reversal
*
* A request to reverse an ACH debit transaction to a
* savings account.
**/
@XmlEnumValue("12")
_12("ACH savings debit reversal"),
/**
* ACH savings credit
*
* A credit transaction made through the ACH system to a
* savings account.
**/
@XmlEnumValue("13")
_13("ACH savings credit"),
/**
* ACH savings debit
*
* A debit transaction made through the ACH system to a
* savings account.
**/
@XmlEnumValue("14")
_14("ACH savings debit"),
/**
* Bookentry credit
*
* A credit entry between two accounts at the same bank
* branch. Synonym: house credit.
**/
@XmlEnumValue("15")
_15("Bookentry credit"),
/**
* Bookentry debit
*
* A debit entry between two accounts at the same bank
* branch. Synonym: house debit.
**/
@XmlEnumValue("16")
_16("Bookentry debit"),
/**
* ACH demand cash concentration/disbursement (CCD) credit
*
* A credit transaction made through the ACH system to a
* demand deposit account using the CCD payment format.
**/
@XmlEnumValue("17")
_17("ACH demand cash concentration/disbursement (CCD) credit"),
/**
* ACH demand cash concentration/disbursement (CCD) debit
*
* A debit transaction made through the ACH system to a
* demand deposit account using the CCD payment format.
**/
@XmlEnumValue("18")
_18("ACH demand cash concentration/disbursement (CCD) debit"),
/**
* ACH demand corporate trade payment (CTP) credit
*
* A credit transaction made through the ACH system to a
* demand deposit account using the CTP payment format.
**/
@XmlEnumValue("19")
_19("ACH demand corporate trade payment (CTP) credit"),
/**
* Cheque
*
* Payment by a pre-printed form on which instructions are
* given to an account holder (a bank or building society)
* to pay a stated sum to a named recipient.
**/
@XmlEnumValue("20")
_20("Cheque"),
/**
* Banker's draft
*
* Issue of a banker's draft in payment of the funds.
**/
@XmlEnumValue("21")
_21("Banker's draft"),
/**
* Certified banker's draft
*
* Cheque drawn by a bank on itself or its agent. A person
* who owes money to another buys the draft from a bank for
* cash and hands it to the creditor who need have no fear
* that it might be dishonoured.
**/
@XmlEnumValue("22")
_22("Certified banker's draft"),
/**
* Bank cheque (issued by a banking or similar establishment)
*
* Payment by a pre-printed form, which has been completed
* by a financial institution, on which instructions are
* given to an account holder (a bank or building society)
* to pay a stated sum to a named recipient.
**/
@XmlEnumValue("23")
_23("Bank cheque (issued by a banking or similar establishment)"),
/**
* Bill of exchange awaiting acceptance
*
* Bill drawn by the creditor on the debtor but not yet
* accepted by the debtor.
**/
@XmlEnumValue("24")
_24("Bill of exchange awaiting acceptance"),
/**
* Certified cheque
*
* Payment by a pre-printed form stamped with the paying
* bank's certification on which instructions are given to
* an account holder (a bank or building society) to pay a
* stated sum to a named recipient .
**/
@XmlEnumValue("25")
_25("Certified cheque"),
/**
* Local cheque
*
* Indicates that the cheque is given local to the
* recipient.
**/
@XmlEnumValue("26")
_26("Local cheque"),
/**
* ACH demand corporate trade payment (CTP) debit
*
* A debit transaction made through the ACH system to a
* demand deposit account using the CTP payment format.
**/
@XmlEnumValue("27")
_27("ACH demand corporate trade payment (CTP) debit"),
/**
* ACH demand corporate trade exchange (CTX) credit
*
* A credit transaction made through the ACH system to a
* demand deposit account using the CTX payment format.
**/
@XmlEnumValue("28")
_28("ACH demand corporate trade exchange (CTX) credit"),
/**
* ACH demand corporate trade exchange (CTX) debit
*
* A debit transaction made through the ACH system to a
* demand account using the CTX payment format.
**/
@XmlEnumValue("29")
_29("ACH demand corporate trade exchange (CTX) debit"),
/**
* Credit transfer
*
* Payment by credit movement of funds from one account to
* another.
**/
@XmlEnumValue("30")
_30("Credit transfer"),
/**
* Debit transfer
*
* Payment by debit movement of funds from one account to
* another.
**/
@XmlEnumValue("31")
_31("Debit transfer"),
/**
* ACH demand cash concentration/disbursement plus (CCD+)
*
* credit
* A credit transaction made through the ACH system to a
* demand deposit account using the CCD+ payment format.
**/
@XmlEnumValue("32")
_32("ACH demand cash concentration/disbursement plus (CCD+)"),
/**
* ACH demand cash concentration/disbursement plus (CCD+)
*
* debit
* A debit transaction made through the ACH system to a
* demand deposit account using the CCD+ payment format.
**/
@XmlEnumValue("33")
_33("ACH demand cash concentration/disbursement plus (CCD+)"),
/**
* ACH prearranged payment and deposit (PPD)
*
* A consumer credit transaction made through the ACH
* system to a demand deposit or savings account.
**/
@XmlEnumValue("34")
_34("ACH prearranged payment and deposit (PPD)"),
/**
* ACH savings cash concentration/disbursement (CCD) credit
*
* A credit transaction made through the ACH system to a
* demand deposit or savings account.
**/
@XmlEnumValue("35")
_35("ACH savings cash concentration/disbursement (CCD) credit"),
/**
* ACH savings cash concentration/disbursement (CCD) debit
*
* A debit transaction made through the ACH system to a
* savings account using the CCD payment format.
**/
@XmlEnumValue("36")
_36("ACH savings cash concentration/disbursement (CCD) debit"),
/**
* ACH savings corporate trade payment (CTP) credit
*
* A credit transaction made through the ACH system to a
* savings account using the CTP payment format.
**/
@XmlEnumValue("37")
_37("ACH savings corporate trade payment (CTP) credit"),
/**
* ACH savings corporate trade payment (CTP) debit
*
* A debit transaction made through the ACH system to a
* savings account using the CTP payment format.
**/
@XmlEnumValue("38")
_38("ACH savings corporate trade payment (CTP) debit"),
/**
* ACH savings corporate trade exchange (CTX) credit
*
* A credit transaction made through the ACH system to a
* savings account using the CTX payment format.
**/
@XmlEnumValue("39")
_39("ACH savings corporate trade exchange (CTX) credit"),
/**
* ACH savings corporate trade exchange (CTX) debit
*
* A debit transaction made through the ACH system to a
* savings account using the CTX payment format.
**/
@XmlEnumValue("40")
_40("ACH savings corporate trade exchange (CTX) debit"),
/**
* ACH savings cash concentration/disbursement plus (CCD+)
*
* credit
* A credit transaction made through the ACH system to a
* savings account using the CCD+ payment format.
**/
@XmlEnumValue("41")
_41("ACH savings cash concentration/disbursement plus (CCD+)"),
/**
* Payment to bank account
*
* Payment by an arrangement for settling debts that is
* operated by the Post Office.
**/
@XmlEnumValue("42")
_42("Payment to bank account"),
/**
* ACH savings cash concentration/disbursement plus (CCD+)
*
* debit
* A debit transaction made through the ACH system to a
* savings account using the CCD+ payment format.
**/
@XmlEnumValue("43")
_43("ACH savings cash concentration/disbursement plus (CCD+)"),
/**
* Accepted bill of exchange
*
* Bill drawn by the creditor on the debtor and accepted by
* the debtor.
**/
@XmlEnumValue("44")
_44("Accepted bill of exchange"),
/**
* Referenced home-banking credit transfer
*
* A referenced credit transfer initiated through home-
* banking.
**/
@XmlEnumValue("45")
_45("Referenced home-banking credit transfer"),
/**
* Interbank debit transfer
*
* A debit transfer via interbank means.
**/
@XmlEnumValue("46")
_46("Interbank debit transfer"),
/**
* Home-banking debit transfer
*
* A debit transfer initiated through home-banking.
**/
@XmlEnumValue("47")
_47("Home-banking debit transfer"),
/**
* Bank card
*
* Payment by means of a card issued by a bank or other
* financial institution.
**/
@XmlEnumValue("48")
_48("Bank card"),
/**
* Direct debit
*
* The amount is to be, or has been, directly debited to
* the customer's bank account.
**/
@XmlEnumValue("49")
_49("Direct debit"),
/**
* Payment by postgiro
*
* A method for the transmission of funds through the
* postal system rather than through the banking system.
**/
@XmlEnumValue("50")
_50("Payment by postgiro"),
/**
* FR, norme 6 97-Telereglement CFONB (French Organisation for
*
* Banking Standards) - Option A
* A French standard procedure that allows a debtor to pay
* an amount due to a creditor. The creditor will forward
* it to its bank, which will collect the money on the bank
* account of the debtor.
**/
@XmlEnumValue("51")
_51("FR, norme 6 97-Telereglement CFONB (French Organisation for"),
/**
* Urgent commercial payment
*
* Payment order which requires guaranteed processing by
* the most appropriate means to ensure it occurs on the
* requested execution date, provided that it is issued to
* the ordered bank before the agreed cut-off time.
**/
@XmlEnumValue("52")
_52("Urgent commercial payment"),
/**
* Urgent Treasury Payment
*
* Payment order or transfer which must be executed, by the
* most appropriate means, as urgently as possible and
* before urgent commercial payments.
**/
@XmlEnumValue("53")
_53("Urgent Treasury Payment"),
/**
* Promissory note
*
* Payment by an unconditional promise in writing made by
* one person to another, signed by the maker, engaging to
* pay on demand or at a fixed or determinable future time
* a sum certain in money, to order or to bearer.
**/
@XmlEnumValue("60")
_60("Promissory note"),
/**
* Promissory note signed by the debtor
*
* Payment by an unconditional promise in writing made by
* the debtor to another person, signed by the debtor,
* engaging to pay on demand or at a fixed or determinable
* future time a sum certain in money, to order or to
* bearer.
**/
@XmlEnumValue("61")
_61("Promissory note signed by the debtor"),
/**
* Promissory note signed by the debtor and endorsed by a bank
*
* Payment by an unconditional promise in writing made by
* the debtor to another person, signed by the debtor and
* endorsed by a bank, engaging to pay on demand or at a
* fixed or determinable future time a sum certain in
* money, to order or to bearer.
**/
@XmlEnumValue("62")
_62("Promissory note signed by the debtor and endorsed by a bank"),
/**
* Promissory note signed by the debtor and endorsed by a
*
* third party
* Payment by an unconditional promise in writing made by
* the debtor to another person, signed by the debtor and
* endorsed by a third party, engaging to pay on demand or
* at a fixed or determinable future time a sum certain in
* money, to order or to bearer.
**/
@XmlEnumValue("63")
_63("Promissory note signed by the debtor and endorsed by a"),
/**
* Promissory note signed by a bank
*
* Payment by an unconditional promise in writing made by
* the bank to another person, signed by the bank, engaging
* to pay on demand or at a fixed or determinable future
* time a sum certain in money, to order or to bearer.
**/
@XmlEnumValue("64")
_64("Promissory note signed by a bank"),
/**
* Promissory note signed by a bank and endorsed by another
*
* bank
* Payment by an unconditional promise in writing made by
* the bank to another person, signed by the bank and
* endorsed by another bank, engaging to pay on demand or
* at a fixed or determinable future time a sum certain in
* money, to order or to bearer.
**/
@XmlEnumValue("65")
_65("Promissory note signed by a bank and endorsed by another"),
/**
* Promissory note signed by a third party
*
* Payment by an unconditional promise in writing made by a
* third party to another person, signed by the third
* party, engaging to pay on demand or at a fixed or
* determinable future time a sum certain in money, to
* order or to bearer.
**/
@XmlEnumValue("66")
_66("Promissory note signed by a third party"),
/**
* Promissory note signed by a third party and endorsed by a
*
* bank
* Payment by an unconditional promise in writing made by a
* third party to another person, signed by the third party
* and endorsed by a bank, engaging to pay on demand or at
* a fixed or determinable future time a sum certain in
* money, to order or to bearer.
**/
@XmlEnumValue("67")
_67("Promissory note signed by a third party and endorsed by a"),
/**
* Bill drawn by the creditor on the debtor
*
* Bill drawn by the creditor on the debtor.
**/
@XmlEnumValue("70")
_70("Bill drawn by the creditor on the debtor"),
/**
* Bill drawn by the creditor on a bank
*
* Bill drawn by the creditor on a bank.
**/
@XmlEnumValue("74")
_74("Bill drawn by the creditor on a bank"),
/**
* Bill drawn by the creditor, endorsed by another bank
*
* Bill drawn by the creditor, endorsed by another bank.
**/
@XmlEnumValue("75")
_75("Bill drawn by the creditor, endorsed by another bank"),
/**
* Bill drawn by the creditor on a bank and endorsed by a
*
* third party
* Bill drawn by the creditor on a bank and endorsed by a
* third party.
**/
@XmlEnumValue("76")
_76("Bill drawn by the creditor on a bank and endorsed by a"),
/**
* Bill drawn by the creditor on a third party
*
* Bill drawn by the creditor on a third party.
**/
@XmlEnumValue("77")
_77("Bill drawn by the creditor on a third party"),
/**
* Bill drawn by creditor on third party, accepted and
*
* endorsed by bank
* Bill drawn by creditor on third party, accepted and
* endorsed by bank.
**/
@XmlEnumValue("78")
_78("Bill drawn by creditor on third party, accepted and"),
/**
* Not transferable banker's draft
*
* Issue a bankers draft not endorsable.
**/
@XmlEnumValue("91")
_91("Not transferable banker's draft"),
/**
* Not transferable local cheque
*
* Issue a cheque not endorsable in payment of the funds.
**/
@XmlEnumValue("92")
_92("Not transferable local cheque"),
/**
* Reference giro
*
* Ordering customer tells the bank to use the payment
* system 'Reference giro'. Used in the Finnish national
* banking system.
**/
@XmlEnumValue("93")
_93("Reference giro"),
/**
* Urgent giro
*
* Ordering customer tells the bank to use the bank service
* 'Urgent Giro' when transferring the payment. Used in
* Finnish national banking system.
**/
@XmlEnumValue("94")
_94("Urgent giro"),
/**
* Free format giro
*
* Ordering customer tells the ordering bank to use the
* bank service 'Free Format Giro' when transferring the
* payment. Used in Finnish national banking system.
**/
@XmlEnumValue("95")
_95("Free format giro"),
/**
* Requested method for payment was not used
*
* If the requested method for payment was or could not be
* used, this code indicates that.
**/
@XmlEnumValue("96")
_96("Requested method for payment was not used"),
/**
* Clearing between partners
*
* Amounts which two partners owe to each other to be
* compensated in order to avoid useless payments.
**/
@XmlEnumValue("97")
_97("Clearing between partners"),
/**
* Mutually defined
*
* A code assigned within a code list to be used on an
* interim basis and as defined among trading partners
* until a precise code can be assigned to the code list.
**/
@XmlEnumValue("ZZZ")
_ZZZ("Mutually defined");
/** prefix before the code in this Enumeration. */
public static final String PREFIX = "_";
/** the description for the code. */
private final String description;
PaymentMeansCode(String descirption) {
this.description = descirption;
}
/**
* Gets the code.
*
* @return the code
*/
public String getCode() {
return name().substring(1);
}
/**
* Gets the description.
*
* @return the description
*/
public String getDescription() {
return description;
}
/**
* Gets the type by the provided code.
*
* @param code the code
* @return the type by code or throws a IllegalArgumentException if the type does not exist.
*/
public static PaymentMeansCode getByCode(String code) {
return valueOf(PREFIX + code);
}
/**
* Checks if the given code is contained in the Enumeration.
*
* @param code the code
* @return true, if is known code
*/
public static boolean isKnownCode(final String code) {
return KonikEnum.isKnownCode(PaymentMeansCode.class, code);
}
@Override
public String toString() {
return new StringBuilder().append("[").append(getCode()).append("] ").append(description).toString();
}
}