--- title: "Order PKIo Qualified eSeal" source_url: https://dev.digicert.com/certcentral-apis/services-api/orders/order-pkio-qualified-eseal.html api_method: POST api_endpoint: "/services/v2/order/certificate/pkio_qualified_organisation_services" api_url: "https://certcentral.digicert.eu/services/v2/order/certificate/pkio_qualified_organisation_services" --- **POST** `https://certcentral.digicert.eu/services/v2/order/certificate/pkio_qualified_organisation_services` Use this endpoint to order a PKIo Qualified Electronic Seal certificate. This certificate is issued to a Dutch organisation for e-signing, enabling them to sign contracts, legal documents, and official communications with a qualified electronic signature. Public Key Infrastructure for Organizations (PKIo) certificates are part of the PKIoverheid framework (a public key infrastructure managed by the Dutch government). PKIo certificates are primarily used in Netherlands and Belgium. ## Example requests and responses ## cURL ``` curl -X POST \ 'https://certcentral.digicert.eu/services/v2/order/certificate/pkio_qualified_organisation_services' \ -H 'Content-Type: application/json' \ -H 'X-DC-DEVKEY: {{api_key}}' \ -d '{ "certificate": { "signature_hash": "sha256", "profile_option": "nonrepudiation", }, "csa_agreed_to": true, "provisioning_method": "qscd", "ship_info": { "name": "John Doe", "addr1": "534 Jefferson Street", "addr2": "Floor 94", "city": "New Orleans", "state": "la", "zip": "58061", "country": "us", "method": "STANDARD" }, "organization": { "id": "2042709", "contacts": [ { "user_id": "2812497", "first_name": "John", "last_name": "Doe", "job_title": "Engineer", "telephone": "1801-903-4284", "email": "john.doe@johndoe.com", "contact_type": "verified_contact" } ] }, "order_validity": { "years": 1 }, "payment_method": "balance" } ``` **201 Created (one-step)** ``` { "id": 112233, "requests": [ { "id": 113, "status": "pending" } ] } ``` **201 Created (two-step)** ``` { "id": 112233, "requests": [ { "id": 113, "status": "submitted" } ] } ``` **201 Created (auto)** ``` { "id": 112233, "requests": [ { "id": 113, "status": "approved" } ], "certificate_id": 113 } ``` **201 Created (skip)** ``` { "id": 112233, "certificate_id": 113 } ``` ## Request parameters
Name Req/Opt Type Description
certificate required object Certificate details.
.. signature_hash required string Hash algorithm used for signing the certificate.
EU Qualified certificates support only SHA-256 hash algorithm.
.. profile_option required string If you are using custom certificate profiles, specify the profile name (for example, nonrepudiation).
PKIo certificates support only nonrepudiation profile option.
.. is_rsassa_pss optional boolean If true, DigiCert issues the end-entity certificate with an RSASSA-PSS signature. If false (default), DigiCert issues the end-entity certificate with an RSA signature.
Important: This parameter is only honored when the issuing ICA certificate has an RSA key. If the issuing ICA certificate has an ECC key, DigiCert issues the end-entity certificate with an ECC signature that has same key size as the issuing ICA certificate.
csa_agreed_to required boolean Specify if the Certificate Subscriber Agreement (CSA) has been agreed to. Set this parameter to true to indicate agreement and false for disagreement.
Default: true
provisioning_method required string Specify the key provisioning method. Key provisioning method refers to where the private key and the certificate will be stored.
Currently, only Qualified signature/seal creation device (QSCD) key provisioning method is supported. This method provides a qualified certificate that can create qualified electronic signatures or seals. If you select the qscd provisioning method in the request body, DigiCert ships the QSCD hardware token to you. You must include shipping details in the ship_info object to receive the QSCD. After receiving the device and the PIN, you must use the DigiCert Trust Assistant to initialize and install your certificate on the token. To do so, use the certificate's order details page on the CertCentral Europe platform user interface to download and install the DigiCert Trust Assistant. You can use the DigiCert Trust Assistant to unlock and install the certificate on your QSCD token.
ship_info optional object For orders with the provisioning_method of qscd, specify the shipping address for the hardware token.
.. name required string First and last name of the recipient of the order.
.. addr1 required string Shipping address for the token.
.. addr2 required string Continuation of street address.
.. city required string Shipping city.
.. state required string Shipping state.
.. zip required string Shipping postal code.
.. country required string Shipping country.
.. method required string Shipping priority for the token.
Allowed values: STANDARD or EXPEDITED (incurs additional cost).
organization required object Object with information about the organization to associate with the request. You can associate the request with an existing organization, or you can create a new organization when you submit the order request.
To associate the request with an existing organization, pass the ID of the organization as the value of organization.id in the body of your request. To create a new organization, include the details of the organization in the organization object. For more information about the structure and required parameters of the organization object, see the Create organization documentation.
Note: When you submit an order with organization details instead of providing an organization ID, we check the organizations that already exist in your account to avoid creating a duplicate.
  • If we find one matching organization, we automatically associate the order with that organization instead of creating a new one.
  • If we find two or more matching organizations, we automatically associate the order with the oldest matching organization in your account instead of creating a new one.

To override this behavior and force the request to create a new organization, set the organization.skip_duplicate_org_check parameter to true in the body of your request.
Important: When you want to associate an order with an existing organization, we recommend always using the ID of the organization instead of the organization's details in the body of your request. To get the ID values for organizations in your account, use the List organizations endpoint. Additionally, we recommend deactivating unused organizations to ensure they are never accidentally assigned to a new order request. To deactivate an organization, use the Deactivate organization endpoint.
.. id required integer The ID of an existing organization to associate with the order. To get the ID of organizations in your account, use the List organizations endpoint.
*Not required if you are creating a new organization with your request. For details on how to create a new organization, see [Create organization](https://dev.digicert.com/md/certcentral-apis/services-api/organizations/create-organization.md).
.. contacts required array List of contacts for the organization.
When creating a new organization:
  • Providing a verified_contact is required for EU electronic eSeal certificates. You can add multiple verified contacts, with a maximum limit of fifteen. For EU certificates, the verified contact is your organization's Authorized Representative. The authorized representative must be included in the company registry, must represent the organization, and has the authority to approve your EU Qualified eSeal order.
  • Providing an organization_contact is conditional. An organization_contact is required if the request is from a service user. If omitted, the organization is created and the authenticated user is used as the organization contact.
  • Providing a technical_contact is optional. If omitted, the organization is created with no technical contact.

When using an existing organization ID:
  • Providing an organization_contact and technical_contact is optional. If provided, the new organization and technical contact replace the existing contacts stored on the organization.
  • Providing a verified_contact is optional if the organization has already been submitted while ordering an equivalent certificate.
  • Providing a verified_contact is required if the organization has never been submitted while ordering an equivalent certificate.

Note: By default, DigiCert creates the order with the organization contact and technical contact (if one exists) assigned to the organization on the request. To create the order with a different organization or technical contact than those assigned to the organization, include the organization_contact or technical_contact object at the root of the request payload.
.. .. first_name optional string First name of the new contact.
Note: Required when omitting user_id. If user_id is not omitted, the specified user's information will be updated with the new value.
.. .. last_name optional string Last name of the new contact.
Note: Required when omitting user_id. If user_id is not omitted, the specified user's information will be updated with the new value.
.. .. email optional string Email address of the new contact.
Note: Required when omitting user_id. If user_id is not omitted, the specified user's information will be updated with the new value.
.. .. job_title optional string Job title of the new contact.
Note: Required when omitting user_id. If user_id is not omitted, the specified user's information will be updated with the new value.
.. .. telephone optional string Telephone number of the new contact.
Note: Required when omitting user_id. If user_id is not omitted, the specified user's information will be updated with the new value.
.. .. contact_type required string Contact type.
Allowed values: organization_contact, technical_contact, or verified_contact.
Note: This parameter is required when creating a new authorized representative or when using an existing verified contact as an authorized representative.
.. .. user_id required* integer ID of existing user or contact for the account.
*Can be omitted if adding a new contact.
order_validity optional object Defines the validity period of the certificate issued for this order. This object is honored only for accounts with MYP enabled and if the order validity exceeds one year. The certificate validity must not exceed the order validity or the maximum allowed certificate validity of 199 days, whichever is shorter. If the order validity is less than the value specified in certificate.cert_validity object, the certificate validity is limited to the order validity.
Due to industry-wide changes, the validity of Public TLS/SSL certificates will continue to shorten. Starting February 24, 2026, the maximum validity period for a Public TLS/SSL certificate will be 199 days. By 2029, the maximum validity period will be 46 days. For more information, see Moving to 199-day validity for public TLS certificates..
This object is not used for requests from accounts that do not have Multi-year Plans enabled.
.. years optional int Number of days the order is valid. Can be replaced with cert_validity.custom_expiration_date.
Max: 199
If the order validity is less than 199 days, this value is ignored and the certificate validity is capped at the order validity.
.. days optional int Number of days the certificate is valid after it is issued. Overrides cert_validity.years.
Max: 397
.. .. custom_expiration_date optional string Custom expiration date for the order. Overrides cert_validity.days .
Format: YYYY-MM-DD (for example, "2026-12-26")
Range: Must be within 199 days of the date you request the order.
payment_method required string Payment method for the order. Allowed values:
  • balance (default): Pay with account balance. Returns an error if the option to bill to account balance is disabled for the account, or if the account balance has insufficient funds. Learn how to debit purchases against your CertCentral account balance.
  • profile: Pay with the account’s default credit card. Returns an error if no default credit card is configured for the account. Learn how to set up a default credit card.
  • card: Pay with a new credit card. Requests that use card as the payment method must include a credit_card and billing_address object. Returns an error if the option to pay with a credit card is disabled for the account.
credit_card required (if payment_method is card) object Object with information about the credit card charged for the order. Required if payment_method is card.
.. number required string Credit card number.
.. expiration_month required string Credit card expiration month. Format as a two-digit number between 01 (Jan) and 12 (Dec).
.. expiration_year required string Credit card expiration year. Format as a four-digit number. For example: 2026
.. cvv required string Card verification value (CVV). Format as a three- or four-digit number. For example: 333 or 4444
.. cardholder_name required string Cardholder’s first and last name.
.. save_credit_card optional null Specify whether to save the credit card details. true for saving the details, false for not saving the details, and null for not indicating the preference.
Allowed Values: true, false, or null.
.. set_as_default required string Set the card as the default payment option or method. To set this card as your default payment method, use 1. To keep your default payment method, use 0.
Allowed Values: 1 or 0.
billing_address conditional object Object with information about the billing address. Required if payment_method is card.
.. address required string Billing street address.
.. address2 optional string Continuation of street address.
.. city required string Billing city.
.. state conditional string Billing state or province. Optional for some countries.
.. country required string Billing country.
.. zip conditional string Billing zip or postal code. Optional for some countries.
## Response parameters
Name Type Description
id int Order ID.
organization object Container for new organization details. Only returned if a new organization was created with the order.
.. id int Organization ID for the new organization.
requests array Contains information about the request.
.. id int Request ID.
.. status string Request status.
Possible values:pending, submitted, approved, rejected
certificate_id int Certificate ID. Returned if request status is approved.