Wenn Ihre Anwendung in PHP geschrieben ist, so können Sie einfach die REST Schnittstelle zur Erzeugung der QR-Rechnung nutzen.

Wie das geht, sehen Sie in folgendem PHP Beispiel. Das Beispiel haben wir bewusst sehr einfach gehalten und auf Dinge wie Fehlerbehandlung verzichtet:
https://bitbucket.org/codeblockgmbh/qrinvoice-examples-php/src/master/rest-client/php-curl-qr-invoice.php

Das Script lässt sich wie folgt aufrufen:
php php-curl-qr-invoice.php

Als Resultat wird eine PDF Datei ‚paymentpartreceipt.pdf‘ geschrieben, welches den Zahlteil samt Empfangsschein enthält.

Im Beispiel nutzen wir einfachheitshalber PHPs curl Funktionen, anstelle davon lässt sich selbstverständlich jede beliebige Alternative nutzen.

<?php

// this example uses PHPs curl functions to make the REST call, however any other way for REST calls can be used
// please note that this example is a simplified one as it does not implement any error handling - make sure you do so for production use (see the Swagger Documentation for details on HTTP status codes)

$output_language = 'de'; // de, fr, it, en
$output_format = 'application/pdf'; // this example is for PDF only, however also rasterized images are supported: image/png ...
$font_family = 'HELVETICA'; // HELVETICA, ARIAL
$page_size = 'A4'; // A4, A5, DIN_LANG
$boundary_lines = 'true'; // true, false
$boundary_line_scissors = 'true'; // true, false
$boundary_line_separation_label = 'true'; // true, false - can only be true for A4 and A5 output

// demo URL endpoint - do NOT use it for production
$service_url = "http://demo.qr-invoice.ch/qr-invoice/payment-part" .
    "?fontFamily=$font_family" . 
    "&pageSize=$page_size" .
    "&boundaryLines=$boundary_lines" .
    "&boundaryLineScissors=$boundary_line_scissors" .
    "&boundaryLineSeparationText=$boundary_line_separation_label";

$request = array (
    'creditorInformation' => 
    array (
      'creditor' => 
      array (
        'addressType' => 'STRUCTURED',
        'city' => 'Biel',
        'country' => 'CH',
        'houseNumber' => '1268',
        'name' => 'Robert Schneider AG',
        'postalCode' => '2501',
        'streetName' => 'Rue du Lac',
      ),
      'iban' => 'CH4431999123000889012',
    ),
    'ultimateDebtor' => 
    array (
      'addressType' => 'STRUCTURED',
      'city' => 'Rorschach',
      'country' => 'CH',
      'houseNumber' => '28',
      'name' => 'Pia-Maria Rutschmann-Schnyder',
      'postalCode' => '9400',
      'streetName' => 'Grosse Marktgasse',
    ),
    'paymentAmountInformation' => 
    array (
      'amount' => 1949.75,
      'currency' => 'CHF',
    ),
    'paymentReference' => 
    array (
      'reference' => '210000000003139471430009017',
      'referenceType' => 'QRR',
      'additionalInformation' => 
      array (
        'unstructuredMessage' => 'Instruction of 15.09.2019',
        'billInformation' => '//S1/10/10201409/11/190512/20/1400.000-53/30/106017086/31/180508/32/7.7/40/2:10;0:30',
      ),
    ),
    'alternativeSchemes' => 
    array (
      'alternativeSchemeParameters' => 
      array (
        0 => 'Name AV1: UV;UltraPay005;12345',
        1 => 'Name AV2: XY;XYService;54321',
      ),
    ),
  )
;

$curl = curl_init($service_url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");                                                                     
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($request));   
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Accept-Language: $output_language","Accept: $output_format",'Content-Type: application/json')); 

$curl_response = curl_exec($curl);
if ($curl_response === false) {
    $info = curl_getinfo($curl);
    curl_close($curl);
    die('error occured during curl exec. Additioanl info: ' . var_export($info));
}
curl_close($curl);

$payment_part_receipt_file = 'paymentpartreceipt.pdf';
file_put_contents($payment_part_receipt_file, $curl_response);

?>