The vCard format support extentions, and the invoice specific information can be included using such extentions. For example an invoice from SLX Debian Labs (picked because we ask for donations to the Debian Edu project and thus have bank account information publicly available) for NOK 1000.00 could have these extra fields:
X-INVOICE-NUMBER:1 X-INVOICE-AMOUNT:NOK1000.00 X-BANK-ACCOUNT-NUMBER:16040884339 X-BANK-IBAN-NUMBER:NO8516040884339 X-BANK-SWIFT-NUMBER:DNBANOKKXXX
The X-BANK-ACCOUNT-NUMBER field was proposed in a stackoverflow answer regarding how to put bank account information into a vCard.
The complete vCard could look like this:BEGIN:VCARD VERSION:2.1 ORG:SLX Debian Labs Foundation ADR;WORK:;;Gunnar Schjelderups vei 29D;OSLO;;0485;Norway URL;WORK:http://www.linuxiskolen.no/slxdebianlabs/ EMAIL;PREF;INTERNET:sdl-styret@rt.nuug.no REV:20130212T095000Z X-INVOICE-NUMBER:1 X-INVOICE-AMOUNT:NOK1000.00 X-BANK-ACCOUNT-NUMBER:16040884339 X-BANK-IBAN-NUMBER:NO8516040884339 X-BANK-SWIFT-NUMBER:DNBANOKKXXX END:VCARD
The resulting QR code created using qrencode would look like this, and should be readable (and thus checkable) by any smart phone, or for example the zbar bar code reader and feed right into the approval and accounting system.
The extension fields will most likely not show up in any normal vCard reader, so those parts would have to go directly into a system handling invoices. I am a bit unsure how vCards without name parts are handled, but a simple test indicate that this work just fine.