Bhengu.Finance.Payments.QrEncoding 2.1.0

dotnet add package Bhengu.Finance.Payments.QrEncoding --version 2.1.0
                    
NuGet\Install-Package Bhengu.Finance.Payments.QrEncoding -Version 2.1.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Bhengu.Finance.Payments.QrEncoding" Version="2.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Bhengu.Finance.Payments.QrEncoding" Version="2.1.0" />
                    
Directory.Packages.props
<PackageReference Include="Bhengu.Finance.Payments.QrEncoding" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Bhengu.Finance.Payments.QrEncoding --version 2.1.0
                    
#r "nuget: Bhengu.Finance.Payments.QrEncoding, 2.1.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Bhengu.Finance.Payments.QrEncoding@2.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Bhengu.Finance.Payments.QrEncoding&version=2.1.0
                    
Install as a Cake Addin
#tool nuget:?package=Bhengu.Finance.Payments.QrEncoding&version=2.1.0
                    
Install as a Cake Tool

Bhengu.Finance.Payments.QrEncoding

A small, dependency-light wrapper over QRCoder (Apache 2.0) that turns the payload-format QrCode returned by the Bhengu Payments SDK's QR providers into renderable PNG bytes or SVG markup.

Why this package exists

The QR providers in Bhengu.Finance.Payments.* (PayShap, MPesa, Wave, Alipay, WeChat Pay, etc.) return a QrCode whose Format = QrFormat.Payload and whose Payload is the raw EMVCo / BIP21 string. That's deliberately tiny and image-library-free — most callers only need to ship the string to a mobile client that already draws the QR itself.

When a caller does need a PNG or SVG (printing a static QR, embedding in a web page, etc.) they add this package and call one method. No need to take a direct QRCoder dependency or pin its version against the rest of the SDK.

Install

dotnet add package Bhengu.Finance.Payments.QrEncoding

Usage

Round-trip from a provider

using Bhengu.Finance.Payments.Core.Interfaces;
using Bhengu.Finance.Payments.Core.Models.QrCode;
using Bhengu.Finance.Payments.QrEncoding;

QrCode payloadQr = await qrProvider.GenerateAsync(new QrCodeRequest
{
    Amount = 50m,
    Currency = "ZAR",
    Format = QrFormat.Payload
});

// Upgrade to PNG without re-hitting the provider:
QrCode pngQr = BhenguQrEncoder.UpgradeToImage(payloadQr, QrFormat.Png);
File.WriteAllBytes("payshap.png", pngQr.ImageBytes!);

Direct encoding

byte[] png = BhenguQrEncoder.EncodePng("00020101021226...EMVCo...payload...");
string svg = BhenguQrEncoder.EncodeSvg("00020101021226...EMVCo...payload...");

Notes

  • Multi-targets net8.0 and net10.0.
  • ECC level is Q (Quartile, ~25% error correction) which is a good default for printed QRs.
  • pixelsPerModule default is 10. Raise for larger images, lower for tighter ones.
  • UpgradeToImage throws ArgumentException if the source QrCode.Format isn't Payload. Re-fetch from the provider with Format=Payload before upgrading.

License

Apache 2.0 — same as the rest of the Bhengu Payments SDK.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Bhengu.Finance.Payments.QrEncoding:

Package Downloads
Bhengu.Finance.Payments.All

All Bhengu payment providers bundled together — install one package to get every provider in the Bhengu.Finance.Payments family.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.1.0 166 6/5/2026
2.0.0 130 6/5/2026
2.0.0-preview.8 75 6/5/2026
2.0.0-preview.7 79 6/4/2026
2.0.0-preview.6 80 6/4/2026
2.0.0-preview.5 76 6/4/2026