PAY-INVOICE-CCY The currency does not match the invoice it names
What it means. The payment and the invoice it names are in different currencies.
What it costs. Reported rather than converted: guessing an exchange rate in order to accuse a payment of being wrong is not a trade worth making. It may well be deliberate.
PAY-INVOICE-AMOUNT The amount does not match the invoice it names
What it means. The remittance names an invoice that was dropped in alongside the payment file, and the two amounts differ by more than a cent.
What it costs. An extra zero typed into an ERP produces a perfectly valid payment: 12,000 and 1,200 both pass every format check, and the bank carries out whichever one is in the file. Nothing else in the file can catch this.
PAY-NBOFTXS The stated number of transactions is wrong
What it means. The number of transactions stated in the header or in a batch does not match how many are actually in it.
What it costs. The file is refused at upload. Worth knowing before the upload, not during it.
PAY-CTRLSUM The control sum does not match the transactions
What it means. The control sum in the header does not equal the sum of the transactions in the file. Recomputed here rather than trusted.
What it costs. Banks reject the file as a whole for this โ which is the good case. The dangerous variant is a header that agrees while a transaction is missing, so both numbers are checked, not just the total.
PAY-IBAN IBAN check digits do not add up
What it means. The two digits after the country code are a checksum over the rest of the account number (ISO 13616, mod 97-10). Here they do not add up.
What it costs. One wrong character. If the resulting number happens to be valid, the money reaches a real account belonging to someone else. If it is invalid, the payment bounces days later and the invoice quietly goes overdue.
PAY-DATE The execution date is in the past
What it means. The requested execution or collection date is in the past.
What it costs. Different banks handle this differently โ some execute the same day, some return the file โ and none of them do what was meant. A warning, because a file prepared on Friday for Monday is normal.
PAY-MISSING Something required for the payment is missing
What it means. Something without which the transaction cannot happen is absent: the counterparty name or the account number.
What it costs. Nothing can be paid or collected. Usually a record that was created but never finished in the system upstream.
PAY-AMOUNT The amount is not a positive number with two decimals
What it means. An amount is negative, zero, or carries more than two decimals.
What it costs. Rejected by the bank. A third decimal is almost invisible to the eye and usually comes from a rounding or a unit-price calculation upstream.
PAY-CCY The currency is not a three-letter code
What it means. The currency attribute on an amount is not a three-letter ISO code.
What it costs. Rejected by the bank. Usually a configuration left blank or filled with a symbol instead of a code.
PAY-CHARSET Characters SEPA does not carry
What it means. A name or a remittance contains characters outside the set SEPA carries: letters, digits, space and / - ? : ( ) . , ' +
What it costs. Either the transaction is refused, or the characters are silently rewritten. The silent rewrite is worse: the money moves and the name no longer matches anything the recipient can reconcile.
PAY-RMT-LEN The remittance is longer than the creditor will see
What it means. The unstructured remittance information is longer than 140 characters, which is the limit ISO 20022 defines for one line.
What it costs. Only the first 140 characters reach the other side โ and the reference they need to clear the invoice is often at the end.
PAY-DUPLICATE The same payment appears twice in this file
What it means. Two transactions in this file share the same account number, the same amount and the same remittance information.
What it costs. This is the one error a bank will never catch for you: both transactions are perfectly valid, so both are carried out. It is a warning rather than a verdict โ two identical invoices from one supplier on one day do exist.
PAY-E2E-DUP Two transactions share an end-to-end id
What it means. Two transactions carry the same end-to-end identifier. It has to be unique within the file.
What it costs. Banks use this identifier to recognise a batch that was submitted twice, so a collision can hold up the whole file. The placeholder value NOTPROVIDED is allowed to repeat and is ignored here.
PAY-SEEN-BEFORE This one was already in an earlier file
What it means. The same account number, amount and remittance were already in a file checked in this browser on an earlier date.
What it costs. The expensive duplicate is the one across months: both files are clean on their own. Only this browser has seen the earlier one, and it remembers a sixteen-character fingerprint and a date โ not the account number, the amount or the reference.