SallaApp / ZATCA

An unofficial package maintained by Salla to help developers to implement ZATCA (Fatoora) QR code easily which required for e-invoicing
MIT License
137 stars 54 forks source link

New structure #25

Closed sossesriq closed 9 months ago

sossesriq commented 1 year ago

Hello do you have the new structure for QR Code?

The users will be able to validate the following fields:

  1. Seller's Name.
  2. VAT registration number of the seller.
  3. Timestamp of the electronic invoice or credit/debit note (date and time).
  4. Electronic invoice or credit/debit note total (with VAT).
  5. VAT amount.
  6. Hash of XML electronic invoice or credit/debit note.
  7. Elliptic Curve Digital Signature Algorithm (ECDSA) signature.
  8. ECDSA public key: The public key BLOB format contains only the public portion of an ECDSA key used to generate the Cryptographic Stamp. Length of the public key BLOB for a 256-bit key is 64 bytes (72 bytes including magic number and field length information on some systems)
  9. For Simplified Tax Invoices and their associated notes, the ECDSA signature of the cryptographic stamp’s public key by ZATCA’s technical Certificate Authority (CA) is required. ● An ECDSA signature is encoded according to IEEE P1363. This signature format encodes the (r, s) tuple as the concatenation of the bigendian representation of r and the big-endian representation of s. ● Each of these values is encoded using the number of bytes required to encode the maximum integer value in the key's mathematical field. ● For example, an ECDSA signature from 256-bit elliptic curves (like secp256k1) encodes each of r and s as 32 bytes, and produces a signature output of 64 bytes.
mohamedalaa80000 commented 1 year ago

Hi @sossesriq I have done all phase two steps in php or laravel Contact me on whatsapp 00201210407130

thaifanisalla commented 1 year ago

All this

Hello do you have the new structure for QR Code?

The users will be able to validate the following fields:

  1. Seller's Name.
  2. VAT registration number of the seller.
  3. Timestamp of the electronic invoice or credit/debit note (date and time).
  4. Electronic invoice or credit/debit note total (with VAT).
  5. VAT amount.
  6. Hash of XML electronic invoice or credit/debit note.
  7. Elliptic Curve Digital Signature Algorithm (ECDSA) signature.
  8. ECDSA public key: The public key BLOB format contains only the public portion of an ECDSA key used to generate the Cryptographic Stamp. Length of the public key BLOB for a 256-bit key is 64 bytes (72 bytes including magic number and field length information on some systems)
  9. For Simplified Tax Invoices and their associated notes, the ECDSA signature of the cryptographic stamp’s public key by ZATCA’s technical Certificate Authority (CA) is required. ● An ECDSA signature is encoded according to IEEE P1363. This signature format encodes the (r, s) tuple as the concatenation of the bigendian representation of r and the big-endian representation of s. ● Each of these values is encoded using the number of bytes required to encode the maximum integer value in the key's mathematical field. ● For example, an ECDSA signature from 256-bit elliptic curves (like secp256k1) encodes each of r and s as 32 bytes, and produces a signature output of 64 bytes.

All this points supported in this pr currently : https://github.com/SallaApp/ZATCA/pull/22 you can use it , until we marge it to master

twf-nikhila commented 1 year ago

All this

Hello do you have the new structure for QR Code? The users will be able to validate the following fields:

  1. Seller's Name.
  2. VAT registration number of the seller.
  3. Timestamp of the electronic invoice or credit/debit note (date and time).
  4. Electronic invoice or credit/debit note total (with VAT).
  5. VAT amount.
  6. Hash of XML electronic invoice or credit/debit note.
  7. Elliptic Curve Digital Signature Algorithm (ECDSA) signature.
  8. ECDSA public key: The public key BLOB format contains only the public portion of an ECDSA key used to generate the Cryptographic Stamp. Length of the public key BLOB for a 256-bit key is 64 bytes (72 bytes including magic number and field length information on some systems)
  9. For Simplified Tax Invoices and their associated notes, the ECDSA signature of the cryptographic stamp’s public key by ZATCA’s technical Certificate Authority (CA) is required. ● An ECDSA signature is encoded according to IEEE P1363. This signature format encodes the (r, s) tuple as the concatenation of the bigendian representation of r and the big-endian representation of s. ● Each of these values is encoded using the number of bytes required to encode the maximum integer value in the key's mathematical field. ● For example, an ECDSA signature from 256-bit elliptic curves (like secp256k1) encodes each of r and s as 32 bytes, and produces a signature output of 64 bytes.

All this points supported in this pr currently : #22 you can use it , until we marge it to master

Thanks for pointing, is the readme file also updated? Because need steps to implement this. Or will the same step work?

thaifanisalla commented 9 months ago

hi @twf-nikhila you can see the test files , and do simulate of it.