- Device Authentication
- User Authentication
- Protocol Specification ezeep Blue Pull Printing Release Action
Pull Printing Release Workflow for Trusted Device App
This article describes the authentication and print job management of an app running on a printer-releated device (or even the printer itself) that authenticates itself using some fixed secret and identifies the user by verifying some credentials (user input or smartcard serial number). How to obtain the requested print data for forwarding to the print device is not subject of this API/article). An external ezeep Blue Hub may be used or a ezeep Blue Print Connector PS is required.
Device Authentication
The calls to this API are authentication via HTTP Basic Authorization scheme.
The assignment of an ezeep Blue Release Station card reader to a certain ezeep Blue printer object and its Authentication is made by the ‘Pull Printing Password’ sent as password part in the basic Authorization header of every web request. The (secret) value needs to be configured by the ezeep Blue organization administrator, who can obtain this value from the ezeep Blue Portal.
User Authentication
The user is identified by some ID. That ID can be obtained for example from a Smartcard (serial number) or via keyboard input interactively from the user. The ID is send as user name in the Authorization header. A system-unknown (i.e. new) user ID causes the printout of a registration code for user self-registration.
Protocol Specification ezeep Blue Pull Printing Release Action
base URL
https://pp2.ezeep.com/
Personal Printing Header Elements
Every request header has to contain the tag X-Lang-ID
which specifies the language code for the
error messages delivered by the server. The language code is specified as ISO 639: 2-letter code. The sample language code which is used within
this document is “en”
for English. Furthermore the client has to describe itself by sending the
XFMP-User-Agent
with a customized description.
Every response of the server may contain at least the X-FMP-Return
HTTP header. This header value specifies the
result of the request. A value of zero indicates success. A value unequal zero indicates an error. For
further information about errors see chapter Error codes.
UNICODE Support
All string values (among them for instance print job names and display names) are UTF-8 encoded, if not otherwise mentioned. If you use such values in URLs, don’t forget to canonalize the UTF-8 strings.
Commands
Get Version
This request returns the filenames and version numbers of all PPS components. This is useful for support purposes. The request does not require authentication. Future server versions may append more data sections.
GET https://pp2.ezeep.com/TPFM/?Cmd=GetVersion HTTP/1.1
X-Lang-ID: en
X-FMP-User-Agent: ezp-pp-manufatorer-model/1.0
If successful, returns Error code of 0, otherwise 1 or 2.
Example Request:
curl -X GET https://pp2.ezeep.com/TPFM/?Cmd=GetVersion \
--header "X-Lang-ID: en" \
--header "X-FMP-User-Agent: printer-model"
Example Response:
HTTP/1.1 200 OK
Content-Type: text/plain; charset=utf-8
X-FMP-Return: 0
Server: ThinPrint Personal Printing Server
Date: Sat, 05 Jan 2008 12:27:05 GMT
[FileVersions]
Get Capabilities
This request returns the list of commands supported by the PPS for the specified user.
Authentication is optional. If no authentication was made, the capabilities of the guest user are
returned.
Future server versions may append more data sections.
Optional parameter Printer
can be used to request a printout of a registration code for user self-registration when the user ID is unknown. This requires valid device authentication.
GET https://pp2.ezeep.com/TPFM/?Cmd=GetCapabilities HTTP/1.1
Authorization: Basic dGhpbnByaW50OmZtcA==
X-Lang-ID: en
X-FMP-User-Agent: ezp-pp-manufatorer-model/1.0
Supported parameters (passed as query parameters in URL):
Parameter | Type | Required | Description |
---|---|---|---|
Printer |
string | No | id of the printer to use (alphanumeric, the ezeep Blue Pull Printing endpoint uses UUIDs) |
If successful, returns Error code of 0, otherwise 2.
Example Request:
curl -X GET https://pp2.ezeep.com/TPFM/?Cmd=GetCapabilities \
--header "X-Lang-ID: en" \
--header "X-FMP-User-Agent: printer-model"
Example Response:
HTTP/1.1 200 OK
Content-Type: text/plain; charset=utf-8
X-FMP-Return: 0
Server: ThinPrint Personal Printing Server
Date: Sat, 05 Jan 2008 12:27:05 GMT
[Commands]
1=GetVersion
2=GetCapabilities
3=GetJobList
4=DeleteJob
5=PrintJob
6=CancelPrintJob
7=SetJobProperties
8=CreateLocalJob
9=UpdateLocalJob
[SYSTEM]
Type=essentials
Get Print Job List
This request returns the list of print jobs of the specified user. This request requires a user
authentication. The result contains a list of print jobs of the specified user. The print job information
is formatted as a list of job properties separated by ‘:’. The information contain (in this order)
- the job filename (which cannot contain a colon),
- the job file size, the creation date, the last modified date,
- the file attributes,
- the job id (alphanumeric, the ezeep Blue Pull Printing endpoint uses UUIDs),
- the display name of the job and
- the display name of the printer driver, used to create this job.
All string values are UTF-8 encoded.
The date attributes are represented as number of seconds since January 1, 1970 GMT. The display
name of the job may be empty. In this case the job filename should be used.
If a printer id is specified, the server filters the result list for compatible print jobs.
Only if X-FMP-Visible
is set to 1, the client is allowed to show a print job selection/deletion dialog. If
this header field is missing (or set to any other value), the client must not allow selecting or deleting
unprinted print jobs by the user.
GET https://pp2.ezeep.com/TPFM/?Cmd=GetJobList&Printer=7 HTTP/1.1
Authorization: Basic dGhpbnByaW50OmZtcA==
X-Lang-ID: en
X-FMP-User-Agent: ezp-pp-manufatorer-model/1.0
Supported parameters (passed as query parameters in URL):
Parameter | Type | Required | Description |
---|---|---|---|
Printer |
string | No | id of the printer to use (alphanumeric, the ezeep Blue Pull Printing endpoint uses UUIDs) |
MaxEntries |
int | No | maximum number of jobs returned |
ShowPutOnHoldJobs |
int | No | include jobs which are set to PutOnHold
|
If successful, returns Error code of 0, otherwise 1, 2, 3, 4.
Example Request:
curl -X GET https://pp2.ezeep.com/TPFM/?Cmd=GetJobList&Printer=7 \
--header "X-Lang-ID: en" \
--header "X-FMP-User-Agent: printer-model"
Sample Reponse:
HTTP/1.1 200 OK
Date: Wed, 12 Oct 2022 07:54:07 GMT
Content-Type: text/plain; charset=utf-8
Content-Length: 570
Connection: keep-alive
Server: ThinPrint Personal Printing Server
Strict-Transport-Security: max-age=31536000
X-FMP-Return: 0
X-FMP-Visible: 0
[Jobs]
2022-10-12_07.47.31_1fd4e6b9-44d1-4964-8f1e-e656978d3e79_9dce68fe-0814-4b74-a6c0-b2ae73fe6190_19cf8e9a-aa6b-4086-aad4-bbd9cef15810:11993:1665560851:1665560851:0:0:"on
e_char.docx":" "
2022-10-12_07.48.19_7984b5ef-0169-4bf1-b7f6-07e30100886c_9dce68fe-0814-4b74-a6c0-b2ae73fe6190_19cf8e9a-aa6b-4086-aad4-bbd9cef15810:4632133:1665560899:1665560899:0:0:"
Polarlicht_2.png":" "
2022-10-12_07.48.37_416bdc49-337e-4e54-9dad-3189578b0491_9dce68fe-0814-4b74-a6c0-b2ae73fe6190_19cf8e9a-aa6b-4086-aad4-bbd9cef15810:100117:1665560917:1665560917:0:0:"b
ittetesten.pdf":" "
Delete Print Job
This request deletes the specified print job of the specified user. The request requires a user
authentication.
GET https://pp2.ezeep.com/TPFM/?Cmd=DeleteJob&Job=12345.tpf HTTP/1.1
Authorization: Basic dGhpbnByaW50OmZtcA==
X-Lang-ID: en
X-FMP-User-Agent: ezp-pp-manufatorer-model/1.0
Supported parameters (passed as query parameters in URL):
Parameter | Type | Required | Description |
---|---|---|---|
Job |
string | Yes | name of the job file to delete |
If successful, returns Error code of 0, otherwise 1, 2, 3 or 5
Example Request:
curl -X GET https://pp2.ezeep.com/TPFM/?Cmd=DeleteJob&Job=12345.tpf \
--header "X-Lang-ID: en" \
--header "X-FMP-User-Agent: printer-model"
Example Response:
HTTP/1.1 200 OK
Content-Type: text/plain; charset=utf-8
X-FMP-Return: 0
Server: ThinPrint Personal Printing Server
Date: Sat, 05 Jan 2008 12:27:05 GMT
Print Job
This request prints the specified job of the specified user to the specified printer. The response is sent
by the ezeep Blue backend after successfully starting printing or an error occurred during print start.
If printing was started successfully the response header contains the HTTP header value X-FMP-ProcId
which
identifies the printing process and can be used for further calls to CancelPrintJob. If progress
information delivery is enabled, the response header will also contain the HTTP header
X-FMP-ProgressType
which identifies the type of progress information. Possible values are
‘Pages’ to identify a “number of pages printed” progress and ‘Percentage’ for a “percent of
document printed” progress. This logic is realized by simulating a chunked download. The request
requires a user authentication.
If an error occurs during printing, the progress delivery is cancelled by sending ‘0’ (to stop the
chunked download) followed by the (non-HTTP conform) trailer ‘X-FMP-Return’, ‘X-FMP-ErrText’, ‘X-FMP-OSError’
and ‘X-FMP-OSErrText’ which describe the error.
If the printing process finished successfully, the progress download is stopped by sending ‘0’ (to stop the chunked download) followed by the (non-HTTP conform) footer ‘X-FMP-Return’ which will be set to zero.
If progress delivery was disabled, the footer with the appropriate print result is send after printing
has finished.
Since some HTTPClient Framework (for instance .NET CF) may have problems to process trailer
rows, these trailers are repeated inside the response data.
The content is defined as series of chunks as defined in RFC-2616:
Chunked-Body = *chunk
last-chunk
trailer
CRLF
Every chunk is defined as:
chunk = chunk-size [ chunk-extension ] CRLF
chunk-data CRLF
The chunk-data for ezeep Blue Pull Print response is defined as:
chunk-data = token / token CRLF
(Please recognize: the CRLF here is part of the data and must be counted as data)
GET https://pp2.ezeep.com/TPFM/?Cmd=PrintJob&Job=12345.tpf&Printer=7373&Copies=2&Delete=1&Progress=1 HTTP/1.1
Authorization: Basic dGhpbnByaW50OmZtcA==
X-Lang-ID: en
X-FMP-User-Agent: ezp-pp-manufatorer-model/1.0
Supported parameters (passed as query parameters in URL):
Attribute | Type | Required | Description |
---|---|---|---|
Job |
string | Yes | Detailed description. |
Printer |
string | No | id of the printer to use (alphanumeric, the ezeep Blue Pull Printing endpoint uses UUIDs) |
Copies |
number | No | number of copies to print (1 is default) |
Delete |
0-1-num | No | flag whether to delete job after printing (1=enabled / 0=disabled / 1 is default) |
Progress |
0-1-num | No | progress information are required (1=enabled / 0=disabled / 1 is default) |
If successful, returns Error code of 0.
Example Request:
curl -X GET https://pp2.ezeep.com/TPFM/?Cmd=PrintJob&Job=12345.tpf&Printer=7373&Copies=2&Delete=1&Progress=1 \
--header "X-Lang-ID: en" \
--header "X-FMP-User-Agent: printer-model"
Example Response:
HTTP/1.1 200 OK
Content-Type: text/plain; charset=utf-8
Transfer-Encoding: chunked
X-FMP-Return: 0
X-FMP-ProgressType: Pages
X-FMP-ProcId: 738886
Server: ThinPrint Personal Printing Server
Date: Sat, 05 Jan 2008 12:27:05 GMT
6
1/10
6
2/10
6
3/10
6
4/10
...
7
10/10
11
X-FMP-Return: 0 <-- result repeated inside response
0
X-FMP-Return: 0 <-- trailer / HTTP chunked response
Cancel Print Job
Cancels the running printing process identified by the specified print processing id returned by PrintJob. If the print was started with ‘Delete=1’ flag, the job is NOT deleted. The request requires a user authentication.
GET https://pp2.ezeep.com/TPFM/?Cmd=CancelPrintJob&ProcId=738886 HTTP/1.1
Authorization: Basic dGhpbnByaW50OmZtcA==
X-Lang-ID: en
X-FMP-User-Agent: ezp-pp-manufatorer-model/1.0
Supported parameters (passed as query parameters in URL):
Attribute | Type | Required | Description |
---|---|---|---|
ProcId |
integer | Yes | id of the printing process (returned by PrintJob in X-FMP-ProcId ) |
If successful, returns Error code of 0, otherwise 1, 2, 3 or 9.
Example Request:
curl -X GET https://pp2.ezeep.com/TPFM/?Cmd=CancelPrintJob&ProcId=738886 \
--header "X-Lang-ID: en" \
--header "X-FMP-User-Agent: printer-model"
Example Response:
HTTP/1.1 200 OK
Content-Type: text/plain; charset=utf-8
X-FMP-Return: 0
Server: ThinPrint Personal Printing Server
Date: Sat, 05 Jan 2008 12:27:05 GMT
Set Job Properties
This request updates the specified properties of the specified pint job for the specified user. The request requires an user authentication.
GET https://pp2.ezeep.com/TPFM/?Cmd=SetJobProperties&Job=12345.tpf&PutOnHold=1&ModifiedDate=134156500 HTTP/1.1
Authorization: Basic dGhpbnByaW50OmZtcA==
X-Lang-ID: en
X-FMP-User-Agent: ezp-pp-manufatorer-model/1.0
Supported parameters (passed as query parameters in URL):
Attribute | Type | Required | Description |
---|---|---|---|
Job |
string | Yes | name of the job file to update |
PutOnHold |
integer | optional | enable/disable the PutOnHold state of the job |
ModifiedDate |
integer | optional | set new modified date of the job represented as number of seconds since January 1, 1970 GMT |
If successful, returns Error code of 0, otherwise 1, 2, 3, 5
Example Request:
curl -X GET https://pp2.ezeep.com/TPFM/?Cmd=SetJobProperties&Job=12345.tpf&PutOnHold=1&ModifiedDate=134156500 /
--header "X-Lang-ID: en" /
--header "X-FMP-User-Agent: printer-model"
Example Response:
HTTP/1.1 200 OK
Content-Type: text/plain; charset=utf-8
X-FMP-Return: 0
Server: ThinPrint Personal Printing Server
Date: Sat, 05 Jan 2008 12:27:05 GMT
Create Local Job
Begins to track a new job printed locally on the device, for example, to create copies of scanned documents. This request requires authentication.
Printer
must be set to a valid ezeep printer ID. Type
must be set to Copy
for now, other values may be accepted in the future. All other parameters are optional. The client should provide any available data points to the best of its ability.
If successful, the response contains an X-FMP-JobId
header. This identifier can be used by the client to send progress updates with Update Local Job.
Clients can choose between tracking local jobs with a single request, or adding one or more partial updates for the same job with changed parameters only. To indicate that the client expects to send additional updates in the future, Status
should be omitted or set to Pending
. Successfully printed jobs should be completed, possibly by an update command, with Status
set to Succeeded
. The backend will ignore further updates after Status
has been set to either Succeeded
or Failed
, or after no update has been sent within a timeout of 24 hours.
GET https://pp2.ezeep.com/TPFM/?Cmd=CreateLocalJob?Printer=f9fe7c55-7a04-4958-8496-265f5f6e9c7d&Type=Copy HTTP/1.1
Authorization: Basic dGhpbnByaW50OmZtcA==
X-Lang-ID: en
X-FMP-User-Agent: ezp-pp-manufatorer-model/1.0
Supported parameters (passed as query parameters in URL):
Attribute | Type | Required | Description |
---|---|---|---|
Printer |
string | Yes | ezeep printer ID |
Type |
string | Yes | set to Copy
|
Color |
0-1-num | No |
0 for monochrome, 1 for color |
Copies |
integer | No | number of copies |
Duplex |
0-1-num | No |
0 for simplex, 1 for duplex |
Filename |
string | No | file name with extension of the original document |
PageCoverage |
integer | No | printed area in percent, 0 to 100
|
PaperId |
integer | No | one of predefined Windows Paper Sizes |
PaperName |
string | No | human-readable paper name, for use with sizes outside of valid PaperId range (e.g., 13x19 ) |
PrintedColorPages |
integer | No | number of color pages to be printed selected from the original document, should be ≤ PrintedPages
|
PrintedPages |
integer | No | number of pages to be printed selected from the original document |
PrintedSheets |
integer | No | number of sheets to be printed selected from the original document |
Status |
string | No |
Pending (default), Succeeded , or Failed
|
TotalPrintedColorPages |
integer | No | total printed color pages, including copies, should be ≤ TotalPrintedPages
|
TotalPrintedPages |
integer | No | total printed pages, including copies |
TotalPrintedSheets |
integer | No | total printed sheets, including copies |
If successful, returns Error code of 0, otherwise 1, 2, 3, 4, or 12
Example Request:
curl -X GET https://pp2.ezeep.com/TPFM/?Cmd=CreateLocalJob \
&Printer=190f37e7-c093-4771-9bfa-c65fab3e9a7c&Type=Copy \
&Color=1&Copies=3&Duplex=1&PaperId=9&Status=Pending \
--header "X-Lang-ID: en" \
--header "X-FMP-User-Agent: printer-model"
Example Response:
HTTP/1.1 200 OK
Date: Wed, 12 Oct 2022 07:54:07 GMT
Connection: keep-alive
Server: ThinPrint Personal Printing Server
Strict-Transport-Security: max-age=31536000
X-FMP-Return: 0
X-FMP-JobId: 39a9d7ea-b201-4a5c-bbcb-fb822eafd084
Update Local Job
Adds partial updates to a local print job. JobId
must be set to the X-FMP-JobId
header value returned by a previous Create Local Job request. Optional parameters are the same as for newly created local jobs. The client only needs to send parameters that have changed. This request requires authentication.
GET https://pp2.ezeep.com/TPFM/?Cmd=UpdateLocalJob?JobId=ce48c00a-841d-4009-a1ed-b245f4ebaee1 HTTP/1.1
Authorization: Basic dGhpbnByaW50OmZtcA==
X-Lang-ID: en
X-FMP-User-Agent: ezp-pp-manufatorer-model/1.0
Supported parameters (passed as query parameters in URL):
Attribute | Type | Required | Description |
---|---|---|---|
JobId |
string | Yes |
X-FMP-JobId header from CreateLocalJob response |
Color |
0-1-num | No |
0 for monochrome, 1 for color |
Copies |
integer | No | number of copies |
Duplex |
0-1-num | No |
0 for simplex, 1 for duplex |
Filename |
string | No | file name with extension of the original document |
PageCoverage |
integer | No | printed area in percent, 0 to 100
|
PaperId |
integer | No | one of predefined Windows Paper Sizes |
PaperName |
string | No | human-readable paper name, for use with sizes outside of valid PaperId range (e.g., 13x19 ) |
PrintedColorPages |
integer | No | number of color pages to be printed selected from the original document, should be ≤ PrintedPages
|
PrintedPages |
integer | No | number of pages to be printed selected from the original document |
PrintedSheets |
integer | No | number of sheets to be printed selected from the original document |
Status |
string | No |
Pending (default), Succeeded , or Failed
|
TotalPrintedColorPages |
integer | No | total printed color pages, including copies, should be ≤ TotalPrintedPages
|
TotalPrintedPages |
integer | No | total printed pages, including copies |
TotalPrintedSheets |
integer | No | total printed sheets, including copies |
If successful, returns Error code of 0, otherwise 1, 2, 3, 12, or 13.
Example Request:
curl -X GET https://pp2.ezeep.com/TPFM/?Cmd=UpdateLocalJob \
&JobId=190f37e7-c093-4771-9bfa-c65fab3e9a7c \
&Color=1&Copies=3&Duplex=1&PaperId=9&Status=Succeeded \
&TotalPrintedPages=9&TotalPrintedSheets=5 \
--header "X-Lang-ID: en" \
--header "X-FMP-User-Agent: printer-model"
Example Response:
HTTP/1.1 200 OK
Date: Wed, 12 Oct 2022 07:54:07 GMT
Connection: keep-alive
Server: ThinPrint Personal Printing Server
Strict-Transport-Security: max-age=31536000
X-FMP-Return: 0
Prepare Upload
Prepares a document upload and returns instructions on how to upload. This request must be sent for each document to be uploaded. User authentication is required. DocumentName
must be set to a user-provided document name without extension. FileExtension
must be set according to the format of the document to be uploaded, for example, jpg
or pdf
.
For document formats that result in separate uploads per page, like JPEG, PageNumber
should be set to an incrementing integer (1, 2, 3, …). For the first page, it must only be included if it is certain that there will be a second page. Otherwise, it should be omitted and only be included starting with the second page (2, 3, ..). The backend uses this attribute to generate consistent document names.
Security warning: Response content, in particular query parameters of Upload.Uri
and values of Upload.HttpHeaders
, may contain authentication and must therefore not be logged or displayed without obfuscation, or transferred to other destinations.
See Upload below for how to perform the actual upload.
GET https://pp2.ezeep.com/TPFM/?Cmd=PrepareUpload&DocumentName=Document&FileExtension=pdf HTTP/1.1
Authorization: Basic dGhpbnByaW50OmZtcA==
X-Lang-ID: en
X-FMP-User-Agent: ezp-pp-manufacturer-model/1.0
Supported parameters (passed as query parameters in URL):
Attribute | Type | Required | Description |
---|---|---|---|
DocumentName |
string | Yes | user-provided name, without extension, up to 255 characters |
FileExtension |
string | Yes | file extension, without dot (e.g., jpg or pdf ) |
PageNumber |
string | No | page number (1 , 2 , 3 , etc.) to be added to resulting document name, when scanning multiple pages to single-page formats like JPEG; may be omitted for the first page |
If successful, returns Error code of 0, otherwise 1, 2, 3, 14, or 15.
Example request:
curl -X GET https://pp2.ezeep.com/TPFM/?Cmd=PrepareUpload&DocumentName=Document&FileExtension=pdf \
--header "X-Lang-ID: en" \
--header "X-FMP-User-Agent: ezp-pp-manufacturer-model/1.0"
Example response:
HTTP/1.1 200 OK
Content-Type: text/plain; charset=utf-8
X-FMP-Return: 0
Server: ThinPrint Personal Printing Server
Date: Sat, 05 Jan 2008 12:27:05 GMT
[Upload]
HttpMethod=PUT
Uri=https://example.com/path/to/3d641762-263f-4dc2-8306-6c19a81e9638.pdf?key1=value1&key2=value2
UploadId=5eb1f76b-a64c-465d-af52-127b0d945a2f
[Upload.HttpHeaders]
Header1=value1
Header2=value2
Upload
Uploads a document according to instructions obtained with a prior PrepareUpload
request.
HTTP method must be selected according to Upload.HttpMethod
. Clients must support POST
and PUT
. Request URI must be Upload.Uri
as provided, including any query parameters. Clients must not add any new path segments or query parameters.
Upload.HttpHeaders
is optional. If present, these key-value pairs must be added as request headers. Content-Type
header must be set according to the media type and correspond to the FileExtension
query parameter sent with PrepareUpload
, for example, image/jpeg
for jpg
or application/pdf
for pdf
.
The document’s binary data must be sent as message body without additional encoding. Clients may use chunked transfer encoding. Only a single upload request must be sent per document. Clients must not add any authentication.
Upload.Uri
query parameters or the values of Upload.HttpHeaders
may contain authentication and must therefore not be displayed, logged without obfuscation, or transferred to other destinations. Clients must rejects URIs with protocols other than https
.
The upload request may target a separate cloud service integrated with ezeep Blue. The service used may change without prior notice. Clients must not make any assumptions about the type of service and must only rely on behavior and capabilities explicitly documented here.
After successful uploads, apps must proceed send a Finalize upload request.
{{Upload.HttpMethod}} {{Upload.Uri}} HTTP/1.1
{{Upload.HttpHeaders}}
Content-Type: {{Content-Type}}
{{data}}
If successful, returns a 2xx
HTTP status code, otherwise an error HTTP status code. Clients must not expect the response to contain an X-FMP-Return
header.
Example request:
curl -X PUT https://example.com/path/to/51bc1dec-df14-4018-9bb7-ea6f77298003.pdf?key1=value1&key2=value2 \
-H "Content-Type: application/pdf" -H "Header1: value1" -H "Header2: value2" \
--data-binary @local/document.pdf
Example response:
HTTP/1.1 200 OK
Finalize Upload
This command must be sent after uploading. UploadId
must be set to Upload.UploadId
returned by a preceding call to PrepareUpload
. User authentication is required.
GET https://pp2.ezeep.com/TPFM/?Cmd=FinalizeUpload&UploadId=5eb1f76b-a64c-465d-af52-127b0d945a2f HTTP/1.1
Authorization: Basic dGhpbnByaW50OmZtcA==
X-Lang-ID: en
X-FMP-User-Agent: ezp-pp-manufacturer-model/1.0
Supported parameters (passed as query parameters in URL):
Attribute | Type | Required | Description |
---|---|---|---|
UploadId |
string | Yes |
Upload.UploadId from PrepareUpload response |
If successful, returns Error code 0, otherwise 1, 2, 3, 16, or 17.
Example request:
curl -X GET https://pp2.ezeep.com/TPFM/?Cmd=FinalizeUpload&UploadId=da0921d3-3191-45ab-8c77-ec29ba9108b2.pdf \
--header "X-Lang-ID: en" \
--header "X-FMP-User-Agent: printer-model"
Example response:
HTTP/1.1 200 OK
Content-Type: text/plain; charset=utf-8
X-FMP-Return: 0
Server: ThinPrint Personal Printing Server
Date: Sat, 05 Jan 2008 12:27:05 GMT
[Document]
DocumentId=8b7a937e-305c-4ca0-a421-fd8d4d711619
Error Codes
If an error occurred during a ezeep Blue Pull Print API request, the HTTP response header X-FMP-Return
will
be set to a value unequal zero. In this case the HTTP response header X-FMP-ErrText
specifies a localized error text
which is base64 encoded. This error text may be empty (e.g. there is no error text available for the
requested language).
Error Code | Error Description |
---|---|
1 | An operating system error occurred on the server. For further details see X-FMPOSError and X-FMP-OSErrText . |
2 | The specified command is not supported by PPS. |
3 | The specified user is not allowed to execute the specified command. |
4 | Invalid printer was specified. |
5 | The specified job file does not exists. |
6 | Invalid copy count value was specified. |
7 | Invalid delete flag value was specified. |
8 | Invalid progress flag value was specified. |
9 | The specified printing process id is invalid. |
10 | The print job was canceled (by CancelPrintJob command) |
12 | Invalid local job parameter was specified. For further details see X-FMP-ErrText . |
13 | Invalid job ID value was specified. |
14 | Invalid upload parameter was specified. For further details see X-FMP-ErrText. |
15 | The given document name already exists. Reserved for future use. |
16 | Invalid upload ID was specified. |
17 | The upload was not successful. |
If an operating system error occurred at the server while processing the request the HTTP response header
X-FMP-OSError
will be set to the operating system error code. Additionally the
HTTP response header X-FMP-OSErrText
specifies the localized operating system error text which is base64
encoded. This operating system error text may be empty (e.g. there is no error text available for the
requested language).
Remark: If the authorization fails or is missing (and needed) the server will return corresponding HTTP status:
HTTP/1.1 401
Unauthorized. This is not handled via X-FMP-Returns values.
Example Responses:
HTTP/1.1 200 OK
Content-Type: text/plain; charset=utf-8
X-FMP-Return: 0
Server: ThinPrint Personal Printing Server
Date: Sat, 05 Jan 2008 12:27:05 GMT
HTTP/1.1 200 OK
Content-Type: text/plain; charset=utf-8
X-FMP-Return: 1
X-FMP-ErrText: b3BlcmF0aW5nIHN5c3RlbSBlcnJvciBvY2N1cnJlZCA=
X-FMP-OSError: 5
X-FMP-OSErrText: QWNjZXNzIGRlbmllZA==
Server: ThinPrint Personal Printing Server
Date: Sat, 05 Jan 2008 12:27:05 GMT
HTTP/1.1 200 OK
Personal Printing Server
Content-Type: text/plain; charset=utf-8
X-FMP-Return: 4
X-FMP-ErrText: SW52YWxpZCBwcmludGVyIHdhcyBzcGVjaWZpZWQ=
Server: ThinPrint Personal Printing Server
Date: Sat, 05 Jan 2008 12:27:05 GMT
HTTP/1.1 401 Unauthorized
Connection: close
Date: Tue, 08 Jan 2008 09:14:09 GMT
Content-Type: text/plain; charset=utf-8
WWW-Authenticate: Basic realm="iisprint"
Server: ThinPrint Personal Printing Server
Personal Printing Server has rejected your unauthorized request.