Report Filing Service

<back to all web services

SignReport

SignReportSync

Represents a request to sign a report.

Requires Authentication
The following routes are available for this service:
POST/sync/elma/reports/sign
"use strict";
export class Report {
    /** @param {{id?:string,data?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {string}
     * @description The conventional ELMA file name of the report.  The format of the ELMA formula is as follows:  m5_<pb>_<BZSt-Nr>_<AccountID>_<DateiId>.xml  where:  m5 is a constant for all reporting types.  pb is a constant that represents the ELMA product designation e.g. CC, DC, FC etc.  BZSt-Nr is the 11-character BZSt (Bundeszentralamt für Steuern) - tax number of the ELMA user e.g. bz123456789  AccountID is the 10-digit account identifier of the BZSt-Online Portal (BOP) user e.g. 1234567890  DateiId is the 1 - 12 character internal short name for the data file. */
    id;
    /**
     * @type {string}
     * @description The XML-content of the report. */
    data;
}
export class PemCertificate {
    /** @param {{id?:string,content?:string,description?:string,tags?:string[]}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {string}
     * @description The unique identifier (e.g. the file name) of the certificate. */
    id;
    /**
     * @type {string}
     * @description The PEM-encoded content of the certificate. */
    content;
    /**
     * @type {string}
     * @description The description of the certificate. */
    description;
    /**
     * @type {string[]}
     * @description Tags to label or identify the certificate. */
    tags;
}
export class ElmaCredential {
    /** @param {{id?:string,certificate?:PemCertificate,authSteuernummer?:string,accountId?:string,password?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {string}
     * @description The unique identifier of this instance.  This identifer is only relevant in the context of data storage and retrieval. */
    id;
    /**
     * @type {PemCertificate}
     * @description The security certificate to authenticate the user and grant access to the ELMA server.  This certificate is generated from the BZSt-issued *.pfx BOP certificate. More details on BOP (BZSt-Online Portal - https://www.elster.de/bportal/start) */
    certificate;
    /**
     * @type {string}
     * @description The BZSt (Bundeszentralamt für Steuern) - tax number of the user. 11-character text field that may only consist of two capital letters and 9 digits (0-9).  The fiscal authority BZSt provides this number during registration at the BOP (BZSt-Online Portal - https://www.elster.de/bportal/start).  The number is available in the private area of the BOP user account under "My BOP" under the "Registration Information" */
    authSteuernummer;
    /**
     * @type {string}
     * @description The account identifier of a BZSt-Online Portal (BOP) user. 10-character text field that may only contain numbers (0-9). */
    accountId;
    /**
     * @type {string}
     * @description The password to protect the certificate from unauthorized access. */
    password;
}
export class SignReportBase {
    /** @param {{report?:Report,credential?:ElmaCredential}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {Report}
     * @description The report to sign. */
    report;
    /**
     * @type {ElmaCredential}
     * @description The credential to gain access on the ELMA server. */
    credential;
}
export class Signature {
    /** @param {{id?:string,data?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {string}
     * @description The conventional ELMA file name of the signature.  The format of the ELMA formula is as follows:  m5_<pb>_<BZSt-Nr>_<AccountID>_<DateiId>.xml.sig  where:  m5 is a constant for all reporting types.  pb is a constant that represents the ELMA product designation e.g. CC, DC, FC etc.  BZSt-Nr is the 11-character BZSt (Bundeszentralamt für Steuern) - tax number of the ELMA user e.g. bz123456789  AccountID is the 10-digit account identifier of the BZSt-Online Portal (BOP) user e.g. 1234567890  DateiId is the 1 - 12 character internal short name for the data file. */
    id;
    /**
     * @type {string}
     * @description The underlying raw data content of the signature. */
    data;
}
export class SigningResponse {
    /** @param {{report?:Report,signature?:Signature,responseStatus?:ResponseStatus}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {Report}
     * @description The report that was signed. */
    report;
    /**
     * @type {Signature}
     * @description The signature obtained from signing the report. */
    signature;
    /**
     * @type {ResponseStatus}
     * @description The status of the signing operation. */
    responseStatus;
}
export class SignReport extends SignReportBase {
    /** @param {{report?:Report,credential?:ElmaCredential,report?:Report,credential?:ElmaCredential}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /**
     * @type {Report}
     * @description The report to sign. */
    report;
    /**
     * @type {ElmaCredential}
     * @description The credential to gain access on the ELMA server. */
    credential;
}

JavaScript SignReport DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /sync/elma/reports/sign HTTP/1.1 
Host: reportfiling.staging.pwc.de 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	report: 
	{
		id: String,
		data: String
	},
	credential: 
	{
		id: String_String,
		certificate: 
		{
			id: String,
			content: String,
			description: String,
			tags: 
			[
				String
			]
		},
		authSteuernummer: String,
		accountId: String,
		password: String
	}
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	report: 
	{
		id: String,
		data: String
	},
	signature: 
	{
		id: String,
		data: AA==
	},
	responseStatus: 
	{
		errorCode: String,
		message: String,
		stackTrace: String,
		errors: 
		[
			{
				errorCode: String,
				fieldName: String,
				message: String,
				meta: 
				{
					String: String
				}
			}
		],
		meta: 
		{
			String: String
		}
	}
}