How does the revolving credit invoicing process work?

When the Enfuce invoicing process starts, it will pick all the accounts that have the invoicing date in question. The system controls whether the account has balance or new transactions from the last invoicing cycle and starts the invoice calculation.

If an account does not have any debt and the balance is zero, and there are no transactions within the billing period, the statement will not be created and will be moved to the next invoicing date.

The Enfuce system…

  • checks if the end-user has paid the expected amount from the previous invoice before the due date. If not, the system will calculate overdue interest based on the remaining amount and days delayed. Overdue interest will be generated once a month.
  • checks if there are any fees to be generated during the invoicing process and posts the possible fee transactions on the account.
  • books the generated capital, overdue interest, interest, and fee to the due account.
  • generates the invoice data for each end-user affected at the end of the invoicing process.

The invoice process flow

Rules and exceptions to the revolving credit invoicing process

There are rules for when the accounts are included in the statement exports:

  • If the balance is not equal to zero
  • If the balance equals zero but there are transactions in the cycle

The accounts are not included in the statement exports if…

  • The balance is zero and there are no transactions
  • The credit limit is zero (a credit limit set to zero is not a credit product)
  • The account has status Sent to Collection

Statement number in a revolving credit invoice

The statement number is created from the account number and the billing date.

An example: The statement number for an account with account number 12345 which gets a statement on 2023-04-01 would be 12345230401. Statement numbers also help in tracking payments and managing overdue interests which is why each invoice number needs to be unique.

Statement reference number in a revolving credit invoice

The reference number used for statements is set/updated in Account Details API in the paymentReference field (Optional). The possible types are:

  • Customer-specific
  • Finnish 7-3-1 checksum generation method (Account number as a base)
  • MOD10 checksum generation method (Account number as a base)

Invoicing dates for revolving credit invoices

Every account will have one mandatory invoicing date in a month (also known as the billing cycle end date). There will be a default invoice date set up on the institution level but these can be changed into whichever calendar date per account through the Account Update API in the field invoiceDayOfMonth.For further details, please see the ‘Update a credit account’ guide.

For example, when an account is created it will have the invoice date set as the last day of the month as default. If you would like to set the invoice date on any other day of the month, this can be changed or added with the Account Update API.

The minimum billing cycle length is 14 days, which means that if an account is created closer than two weeks to the billing cycle end date, the first billing cycle end date is pushed one month forward. The same will happen if the invoice date is changed for the account in the middle of the invoicing cycle.

In conclusion:

  1. If the account is created between the 1st – 15th, it will have the statement on the last day of the same month
  2. If the account is created between 16th – 31st then the first invoicing will be on the last day of the next month

Invoice due date in a revolving credit invoice

The invoice due date can be adjusted with the Payment Terms API, which is available for credit products. The maximum length of the payment term can only be as long as the billing cycle, which is the length of the calendar month (28-31 days). If the month in question is 28 days long, it is the maximum length of the payment term even if 30 days would have been configured in the settings.

The due date has to pass before the next billing cycle closes. There cannot be two invoices open at the same time. The invoice due dates are always on banking days and cannot take place on Saturdays and Sundays by system default. Country-specific bank holidays can be added and maintained, so that the system skips due dates in case they fall on Christmas day, for example.

Minimum to pay in a revolving credit product

Minimum to pay (MTP) is the lowest amount that needs to be paid by the account holder every month by the due date so that the account balance doesn’t go overdue and start the reminder process.

A minimum-to-pay percentage can be set on an account level. The MTP is calculated as a flat percentage that can be set anything from 0-100 % of the account principal balance including interests and fees. If it is set for 100 % then all un-invoiced debt is always invoiced. The MTP percentage cannot be changed for the invoices that are already created. Any overdue balance will be added on top of the MTP.

You can also set thresholds for the MTP amount that will be rounded up if the percentage amount is less than the threshold.

For example, if the MTP percentage is 10% and the MTP amount is £20, then for an open balance of £100 the interest would be 100 x 0,10 = £10 which is rounded up to £20 based on the threshold rule. You can also set a minimum amount for delinquency, in this example, £5. If MTP is less than that, the balance will not age.

There are two options for the MTP calculations.

  1. In the default configuration, the MTP is calculated from the whole amount, including balance, fees, and interests.Default as an example: £100 balance, £3 fee, £2 interest with 10% MTP = £(100+3+2) * 0,1 = £10,5 MTP (+ possible overdue balance)
  2. The other possible configuration for the MTP goes like this: Interest + fees + % of the principal balance + the amount of overdue balance.An example for this option: £100 balance, £3 fee, £2 interest with 10 % MTP = £100 * 0,1 + £3 + £2 = £15 (+ possible overdue balance)

Statement printing and delivery methods for revolving credit

Enfuce generates XML files for you to use when invoicing customers. The statement XML file contains all the relevant information for you to create invoice print-outs. The statement information includes account details, invoice due amount, and recipient information, for example. The details of these are included in the ‘Statement XML file content’ section below. In addition, card and account transactions that have occurred during the invoice period are included in the invoice files.

Enfuce sends these files to you for further processing. You, as the issuer, handle the actual creation of invoice print-outs and the distribution of them and add possible additional information from other systems. Enfuce supports adding information for the invoicing method based on your customers’ preferences. They can choose to receive paper, e-mail, or e-invoices.

Management of the invoice delivery method is managed by you. You can update invoice delivery methods for different accounts via Enfuce Update a credit account API with the invoiceDeliveryMethod option. The different invoicing methods are stored on the end-customer level and the information is forwarded to you in the statement file under the classifier information STMT_DELIVERY_TYPE.

Statement XML file naming for a revolving credit product

Enfuce_statement_institution_yyyy-mm-dd_X_yyyymmdd_hhmmss.xml

  • Institution
    • Issuer number
  • yyyy-mm-dd
    • Reporting date to identify for which date the content was generated
  • X – running number to indicate the consisting
    • File splitting is used for statements to avoid big files with high volumes
    • The maximum amount of records: 99 per file
  • yyyymmdd_hhmmss
    • Timestamp of the file generation time in the Enfuce system

These sections and fields are included in the XML file, but only if there are values to be presented.

SectionField NameDetailsValues
filefileDateFile creation dateYYYY-MM-DD
filefileIdRunning number sequence (file split)
fileinstitutionIdIssuer number
fileinstitutionNameIssuer name (Company Ltd)
fileNumberOfRecordsNumber of records in the file max is 99 (will be split into new file if more)
filereceiverReceiver where the file will be sent
recordsrecord recordIdRecord sequence number in the file
accountaccountNumberCustomer account number
accountaccountNameCustomer name
accountaddInfo (type&value)Additional field containing the product configuration data (see values)FUNCTIONAL_DATES GL_PLAN MTP_OPTION TARIFF_PLAN TARIFF_PLAN_INST PAYREF_TYPE
account – classifiersclassifier (code,name,valueCode, valueName)Additional field containing miscellaneous data of the account’s classifiersDLQ_LEVEL, Delinquency Level
account – classifiersclassifier (code,name,valueCode, valueName)Additional field containing miscellaneous data of the account’s classifiersLTY_ENROLMENT, Loyalty Enrolment
account – classifiersclassifier (code,name,valueCode, valueName)Additional field containing miscellaneous data of the account’s classifiersPRODUCT_COMMERCIAL_CODE, Product Commercial Codes
account – classifiersclassifier (code,name,valueCode, valueName)Additional field containing miscellaneous data of the account’s classifiersSTMT_DELIVERY_TYPE, Statement Delivery
account – classifiersclassifier (code,name,valueCode, valueName)Additional field containing miscellaneous data of the account’s classifiersPRODUCT_COMMERCIAL_NAME, Product Commercial Names
account – classifiersclassifier (code,name,valueCode, valueName)Additional field containing miscellaneous data of the account’s classifiersCONTR_STATUS, Contract Status, 00 = Account OK
accountproductNameProduct nameRevolving Credit
accountproductCodeProduct codeCREDIT
accountstatusSee further information see account statuseseg. 00 -Account OK
transactionsaccountNumberCustomer account number (private or company)
transactionsaddInfo (type, value)Additional field containing miscellaneous data of transactionFILENAME PAYER_NAME PAYMENT_DATE SENDER FROM_SOURCE OSRC_MEMBER R_REQ_RBS_NUMBER FPLP_SOURCE_CONTRACT FPLP_TARGET_CONTRACT T_USG
transactionsexchangeRateExchange rate presented with 5 decimals1.00000
transactionsfees (amount, currency, name)Left blank if no fees attached to the transaction
transactionslinkIdTransaction record ID
transactionsmccCodeMerchant Category Code
transactionsdirectionDescribing if the transaction is debiting or crediting1 = credit -1 = debit
transactionspostingDateTransaction posting dateYYYY-MM-DD
transactionssettlementAmountSettlement amount
transactionssettlementCurrencyCurrency code208 = DKK 578 = NOK 752 = SEK 826 = GBP 840 = USD 978 = EUR
transactionstransactionAmountTransaction amount
transactionstransactionCurrencyCurrency code978 = EUR
transactionstransactionDateTransaction dateYYYY-MM-DD
transactionstransactionTimeNot available so default value0:00:00
transactionstransactionTypeCodeTransaction type code for account level transactionsEg. PT-P Payments ILR3 Revolving interest
transactionstransactionTypeNameTransaction type namePayment To Client Contract Revolving Interest
balancesamountBalance amount
balancestypeType of balanceTOTAL_DUE DUE PAST_DUE OVD_01 OVD_02 TOTAL_BALANCE OPENING_BALANCE
recordsbillingDateBilling dateYYYY-MM-DD
recordsbillingPeriodEndDateBilling period end dateYYYY-MM-DD
recordsbillingPeriodStartDateBilling period start dateYYYY-MM-DD
cardscardHolderFirstNameCardholder first name
cardscardHolderLastNameCardholder last name
cardscardIdCard ID (linked to contract)
cardsmaskedCardNumberCard numbers are masked in the file
cardsproductNameInstitution + product name (eg. Visa, MC)
cardsstatusCard status00 = Card Ok
cards: transactionsaddInfos (type,value)Additional field containing miscellaneous data of transactions
cards: transactionscardIdCard ID (linked to contract)
cards: transactionsexchangeRateDefault?1.00000
cards: transactionsfees (amount, currency, name)Left blank if no fees attached to the transactionATM Fee Marku-Up Fee
cards: transactionslinkIdTransaction record ID
cards: transactionsmaskedCardNumberCard numbers are masked in the file
cards: transactionsmccCodeMerchant Category Code
cards: transactionsdirectionCredit or debit card-1 = debit
cards: transactionspostingDateTransaction posting dateYYYY-MM-DD
cards: transactionssettlementAmountSettlement amount
cards: transactionssettlementCurrencyCurrency code978 = EUR
cards: transactionssite
cards: transactionstransactionAmountTransaction amount
cards: transactionstransactionCityTransaction city
cards: transactionstransactionCountryTransaction country
cards: transactionstransactionCurrencyTransaction currency978 = EUR
cards: transactionstransactionDateTransaction dateYYYY-MM-DD
cards: transactionstransactionDetailsEg. retailer/online shop name
cards: transactionstransactionRetRefNumberTransaction reference number
cards: transactionstransactionTimeTime when transaction happenedHH:MM:SS
cards: transactionstransactionTypeCodeTransaction code for card level transactionseg. R1-P R1-R
cards: transactionstransactionTypeNameTransaction nameRetail
clientaddInfo (type,value)Additional field containing miscellaneous data of the customerEXT_ID
clientclientNumberCustomer number
clientemailCustomer email address
clientfirstNameCustomer first name
clientlastNameCustomer last name
clientlocaleCustomer country locationsv_SE
recordscreditLimitAccount credit limit
deliveryAddressaddressLine1Street address
deliveryAddresscityCity
deliveryAddresscountryCodeISO alpha-3 codeeg. SWE
deliveryAddresscountryNameCountry name in letterseg. Sweden
deliveryAddresszipCodePostal code
recordsdueDateInvoice due date
interestRatescodeInterest rate codeINT_BASE INT_CASH_BILLED INT_CASH_OVD INT_FEE_BILLED INT_RETAIL_BILLED INT_RETAIL_OVD INT_FEE_OVD
interestRateseffectiveDateThe date the interest rate is valid from
interestRatesnameInterest rate nameInterest Base Rate Interest Rate – Cash Billed Interest Rate – Cash Overdue Interest Rate – Fee Billed Interest Rate – Retail Billed Interest Rate – Retail Overdue Interest Rate – Fee Overdue
interestRatesvalueInterest rate percentage
recordsminimumToPayAmountMTP Value
recordsminimumToPayPercentageMTP Percentage
recordsrecordIdRecord sequence number in the file
recordsrecordNumberStatement number
recordsreferenceNumberStatement reference number
recordsselectedDueDateStatement due date
fileslipReceiverCompanyNameBank name
fileslipReceiverIBAN1Bank code