sk-cz-payment-codes

Generator of reference message with symbols (VS, SS, KS) used in bank transfers in Slovakia and Czech Republic.

Usage no npm install needed!

<script type="module">
  import skCzPaymentCodes from 'https://cdn.skypack.dev/sk-cz-payment-codes';
</script>

README

SK/CZ Payment Codes Generator

When sending payments to the Slovak or Czech Republic, you may be asked to fill out codes (symbols) known as VS, SS or KS. Those should be basically put into the "reference message to the recipient". The format is /VS1234567890/SS1234567890/KS1234 for payments in Slovakia or /VS/1234567890/SS/1234567890/KS/1234 for payments in the Czech Republic.

To make it easier to create the reference message and prevent some common mistakes, you can use my bookmarklet or online generator. You can also check out the Background for more information.

Do you see any mistakes or did you have any problems using the generated text? Let me know by opening an Issue or send me an email.

Bookmarklet

You can create a bookmark with URL that will contain code that will be executed each time you open the bookmark. The bookmarklet provided by me prompts for all 3 symbols, validates them, and fills them in the currently focused text field.

  • Code for the format used in Slovakia: sk.js

  • Code for the format used in Czechia: cz.js

Web Generator

If you are not comfortable using the bookmarklet or need to generate the reference message only once, you can use my online generator available at symbols.duras.me.

NPM Module

The generator part can be used as NPM module (npm install sk-cz-payment-codes):

const { generate } = require('sk-cz-payment-codes');

// Expected to return '/VS1234567890/SS1234567890/KS1234'
generate('1234567890', '1234567890', '1234');

// Expected to return '/VS/1234567890/SS/1234567890/KS/1234'
generate('1234567890', '1234567890', '1234', 'CZ');

// Expected to throw Error 'Wrong "vs" format - should be up to 10 numbers.'
generate('12345678900');

Background

Payment Codes are a relatively old concept established by the CERTIS system.

There are three different codes (also commonly called "symbols" in CZ/SK):

  • VS - Variable Code/Symbol - Variabilný/Variabilní symbol - optional, up to 10 numbers, used to identify individual payment (e.g. invoice number).
  • SS - Specific Code/Symbol - Špecifický/Specifický symbol - optional, up to 10 numbers, used to identify a subject (tax id, national id) that doesn't change between the payments.
  • KS - Constant Code/Symbol - Konštantný/Konstantní symbol - now mostly optional, exactly 4 numbers (prefixed with zeroes if necessary), used to define the type of the payment. Not required to be used unless specified otherwise. Possible options and their meaning are available on Wikipedia article in Czech and Wikipedia article in Slovak.

During the adoption of SEPA (Single Euro Payment Area) payments that do not support those symbols, payment codes had to be somehow adapted. It was decided they will be specified in the field named "reference message"/"message for the recipient"/"remittance information". The recommended format seems to differ between the countries.

In the Slovakia it's recommended to use the format /VS1234567890/SS1234567890/KS1234, see document published by "Slovak Banking Association" (non-governmental organization): Additional Optional Service applied in Slovakia to SEPA Credit Transfer (SCT).

In the Czechia it's recommended to use the format /VS/1234567890/SS/1234567890/KS/1234, see "joint recommendation of the Czech National Bank and the Czech Banking Association": Entering of Variable, Constant and Specific Codes for Payments from Abroad to the Czech Republic.