
Research
/Security News
GlassWASM: WebAssembly Malware Found in Trojanized Open VSX Extensions
The trojanized extensions use TinyGo-compiled WebAssembly and Solana transaction memos to resolve command-and-control infrastructure.
eu-payment-qr
Advanced tools
Generate and parse EPC QR codes (GiroCode) for SEPA payments.
qrcode, react-native-qrcode-svg)vision-camera, expo-camera)npm install eu-payment-qr
import { generate } from 'eu-payment-qr';
const qrString = generate({
recipient: 'Max Müller',
iban: 'DE89370400440532013000',
amount: 149.99,
reference: 'INV-2024-001'
});
// Use with any QR library
// <QRCode value={qrString} />
import { parse, isEpcQR } from 'eu-payment-qr';
// Check if string is EPC format
if (isEpcQR(scannedData)) {
const result = parse(scannedData);
if (result.valid) {
console.log(result.data);
// { recipient: 'Max Müller', iban: '...', amount: 149.99, ... }
} else {
console.error(result.error);
}
}
import { validate, validateIBAN, validateBIC } from 'eu-payment-qr';
// Validate complete payment data
const result = validate({
recipient: 'Max Müller',
iban: 'DE89370400440532013000',
amount: 149.99
});
if (!result.valid) {
console.log(result.errors);
// [{ field: 'iban', message: '...', code: 'IBAN_INVALID_CHECKSUM' }]
}
// Validate individual fields
validateIBAN('DE89370400440532013000'); // { valid: true }
validateBIC('COBADEFFXXX'); // { valid: true }
import { girocode } from 'eu-payment-qr';
const qrString = girocode.generate({ ... });
const result = girocode.parse(qrString);
generate(data, options?)Generates an EPC QR code string.
Parameters:
data.recipient (string, required) - Beneficiary name (max 70 chars)data.iban (string, required) - IBANdata.bic (string, optional) - BIC/SWIFT codedata.amount (number, optional) - Amount in EUR (max 999,999,999.99)data.reference (string, optional) - Payment reference (max 35 chars)data.message (string, optional) - Additional info (max 140 chars)options.version ('001' | '002', default: '002') - EPC versionoptions.encoding ('UTF-8' | 'ISO-8859-1', default: 'UTF-8')Returns: string - EPC QR payload
Throws: EpcError if validation fails
parse(qrString)Parses an EPC QR code string.
Parameters:
qrString (string) - Raw QR code contentReturns: ParseResult
valid (boolean)data (PaymentData, if valid)error (string, if invalid)isEpcQR(qrString)Quick check if a string is EPC QR format.
Returns: boolean
validate(data)Validates payment data.
Returns: ValidationResult
valid (boolean)errors (ValidationError[])validateIBAN(iban)Validates an IBAN.
Returns: { valid: boolean, error?: ValidationError }
validateBIC(bic)Validates a BIC/SWIFT code.
Returns: { valid: boolean, error?: ValidationError }
formatIBAN(iban)Formats IBAN with spaces for display.
Returns: string (e.g., "DE89 3704 0044 0532 0130 00")
This library implements the EPC069-12 standard used by:
The generated string can be encoded as a QR code and scanned by banking apps across Europe.
All SEPA countries: AT, BE, BG, HR, CY, CZ, DK, EE, FI, FR, DE, GR, HU, IE, IT, LV, LT, LU, MT, NL, PL, PT, RO, SK, SI, ES, SE, CH, GB, IS, LI, NO, MC, SM, AD, VA
MIT
FAQs
Generate and parse EPC QR codes (GiroCode) for SEPA payments
We found that eu-payment-qr demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
The trojanized extensions use TinyGo-compiled WebAssembly and Solana transaction memos to resolve command-and-control infrastructure.

Security News
Anthropic says the directive cited national security concerns over a narrow jailbreak, but offered no specific technical details.

Security News
A network of 152 Chrome live wallpaper extensions hid ad tracking and made extension-driven traffic look like Google search clicks.