NAV
shell php

Introduction

Networking4all offers its partners a REST (Representational State Transfer) API (Application Programming Interface) for real-time management of relations, products and Certificates.

This documentation contains all the necessary information to integrate the services of Networking4all into the partner's website.

Environments

The Networking4all API has two different environments that can be reached via different base URLs. The development environment can be used to test and implement the API in your system. When everything is set up correctly, you can switch to our production environment.

Development URL

To access our development environment use the following base URL: https://test-rest.networking4all.com

Production URL

To access our production environment use the following base URL: https://rest.networking4all.com

Authentication

To authorize, use this code:

# With shell, pass the x-api-key header with each request
curl -X <method> "https://test-rest.networking4all.com/api/<api_endpoint_here>"
  -H "x-api-key: <apikey>"
<?php
    # With php, pass the x-api-key header with each request
    curl_setopt($curl, CURLOPT_URL, 'https://test-rest.networking4all.com/api/<api_endpoint_here>');
    curl_setopt($curl, CURLOPT_HTTPHEADER, [
        'x-api-key: <apikey>',
        'Content-Type: application/json',
    ]);
?>

Networking4all uses API keys to allow access to the REST API. You will need a different key for each environment which you can request via our portal.

The REST API expects for the API key to be included in all API requests to the server in a header that looks like the following:

x-api-key: <apikey>

Development key

Request development key.

Production key

Request production key.

Workflow - Order Certificate

1. Setup

In the setup section we'll retreive all the neccesary data to order an Certificate. If you're already in possession of the data that we retreive in one of the steps, please proceed to the next step.

1.1 Get Product Code
1.2 Check CSR
1.3 Get Approver Email
1.4 Get Handle(s)
1.5 Get Tracenumber

1.1 Get Product Code

1.1.1 Get Products

Use the Get Products function and use the parameters below to filter.

1.1.1.1 brand

If you want to filter on ssl brands, choose between:

1.1.1.2 ssl_type

If you want to filter on ssl validation types, choose between:

What is the difference between: Domain validation, Organization validation and Extended validation?

1.1.2 Response

1.1.2.1 response

Look for the right product and get the product_code.

1.2 Check CSR

1.2.1 Check CSR

Use the Check CSR function and use the parameters below.
If you need extra information about generating a CSR please check our helpdesk.

1.2.1.1 csr

Use the CSR token which you generated.

1.2.2 Response

1.2.2.1 response

If the response message is: “Command completed successfully” the CSR is valid.

1.3 Get Approver Email

In case you don't use email as approver method, skip this step and proceed to step "1.4 Get Handles".

1.3.1 Get Approver Email

Use the Get Approver List function and use the parameters below to filter.

1.3.1.1 product_code

Use the product code which was retrieved in the setup at step "1.1 Get Product Code".

1.3.1.2 domain

Fill in the domain for the Certificate. (e.g. “domain.com”)

1.3.2 Response

1.3.2.1 response

Check the given email addresses and choose one.

1.4 Get Handles

1.4.1 Handles for own order

If you're ordering for a customer/client, skip this step and proceed to step "1.4.2 Handles for customer/client order"

1.4.1.1 company_handle

Use your company handle.

1.4.1.2 admin_handle / tech_handle

Use the Get Relation Contacts function and pick the handles of the contacts that you want to use.

1.4.2 Handles for customer/client order

1.4.2.1 company_handle

Use the Get Relation Clients function and pick the handle of the company you want to use.

1.4.2.2 admin_handle / tech_handle

Use the Get Relation Contacts function and pick the handles of the contacts that you want to use.

1.4.3 Import handles

We recommend to import all results from Get Relation Clients and Get Relation Contacts into your database.

1.5 Get trace_number

If you're ordering a new Certificate, skip this step and proceed to step "2. Order"

1.5.1 Get trace_number

Use the Get Certificate List function and pick the trace_number of the Certificate you want to renew.

1.5.3 Import trace numbers

We recommend to import all results from Get Certificate List into your database.

2. Order

2.1 Order Certificate

Use the Order Certificate function and use the parameters below to filter.

2.1.1 company_handle / admin_handle / tech_handle

Use the handles which were retrieved in the setup at step "Get Handles".

2.1.2 kind
  2.1.2.1 trace_number

  Use the tracenumber of the certificate you want to renew

2.1.3 product_code

Use the product code which was retrieved in the setup at step "Get Product Code".

2.1.4 period

From September 2020 the period for Certificates can only be 1 year (more info). A period of 3 years is only valid for signing.
Fill in the amount of years you want your certificate to be valid, choose between: 1, 2, 3.

2.1.5 csr

Use the CSR which was checked in the setup at step "1.1.2 Get and check CSR".

2.1.6 approver_method
  2.1.6.1 approver_email

  Use the email addresses which was retrieved in the setup at step "1.1.3 Get Approver Email".

2.1.7 san

In case you want to add SAN name’s use the following format: “san.domain.com”.

  2.1.7.1 common_name

  The common name is required if you want to add SAN name’s right away. Use the following format: “domain.com”.

2.1.8 reference

If you want to add a P.O. number, fill it in at reference.

3. Get Certificate

3.1 Approve Certificate

Skip this step if your Certificate is already approved. Proceed to step "3.2 Get Certificate".

3.1.1 Approver Method : EMAIL

Skip this step if your approver method is not EMAIL.
Check the mailbox of email address which was used at step "2.1.6.1 approver_email".

3.1.2 Approver Method : FILE

Skip this step if your approver method is not FILE.
1. Use the Get DCV Token function and get the approverContent.
2. Follow these instructions.

3.1.3 Approver Method : DNS

Skip this step if your approver method is not DNS.
1. Use the Get DCV Token function and get the approverContent.
2. Log in to your DNS provider's site.
3. Create a new DNS TXT record:
TXT field
Paste your approverContent code
Host field
- Base Domain (e.g. "example.com") -> leave blank
- DNS Auth (e.g. "_dnsauth.example.com") -> enter "_dnsauth".

3.2 Get Certificate

Use the Get Certificate function to get your Certificate.

Relations

POST Create Relation

Request

curl -X POST "https://test-rest.networking4all.com/api/relations"
  -H "x-api-key: <apikey>"
  -H "Content-Type: application/json"
  -d '{
        "type": "company",
        "email": "example@networking4all.com",
        "phone": "0612345678",
        "company_name": "Example BV",
        "street": "Dorpstraat 1",
        "zipcode": "1111AA",
        "city": "Amsterdam",
        "province": "Noord-Holland",
        "country_iso": "NL"
     }'
<?php
    $curl = curl_init();

    curl_setopt($curl, CURLOPT_URL, 'https://test-rest.networking4all.com/api/relations');
    curl_setopt($curl, CURLOPT_POST, 1);

    curl_setopt($curl, CURLOPT_HTTPHEADER, [
        'x-api-key: <apikey>',
        'Content-Type: application/json',
    ]);

    $data_array =  [
        "type" => 'company',
        "email" => 'example@networking4all.com',
        "phone" => '0612345678',
        "company_name" => 'Example BV',
        "street" => 'Dorpstraat 1',
        "zipcode" => '1111AA',
        "city" => 'Amsterdam',
        "province" => 'Noord-Holland',
        "country_iso" => 'NL'
    ];

    curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data_array));

    //Set to 'true' to store result in $response
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, false);
    $response = curl_exec($curl);
?>

Response

200
{
    "message": "Command completed succesfully",
    "data": {
        "handle": "<handle>"
    }
}

422
{
    "message": "Command contains errors",
    "data": {
        "company_name": [
            "The company name field is required."
        ]
    }
}

This endpoint creates a relation

HTTP Request

POST https://test-rest.networking4all.com/api/relations

General Request Parameters

Parameter Required Default Description Type Options
type required none Type of relation String - company
- contact
email required none E-mail of relation String
phone required none Phone number of relation String
street required none Street + Number String
zipcode required none Zipcode/Postal code String
city required none City String
province required none Province/State String
country_iso required none ISO Country Code String
website optional none Website address String
iban optional none IBAN number String
bic optional none BIC code String

Additional Parameters For Type: company

Parameter Required Default Description Type Options
company_name required none Company name String
coc_number optional none Chamber of Commerce number String
vat_number optional none VAT number String

Additional Parameters For Type: contact

Parameter Required Default Description Type Options
handle optional none Handle of company to add contact to String
first_name required none First name of contact String
middle_name optional none Middle name / insertion String
last_name required none Last name of contact String

PUT Update Relation

Request

curl -X PUT "https://test-rest.networking4all.com/api/relations/{handle}"
  -H "x-api-key: <apikey>"
  -H "Content-Type: application/json"
  -d '{
         "company_name": "New Name BV",
         "zipcode": "1234AB",
     }'
<?php
    $curl = curl_init();

    curl_setopt($curl, CURLOPT_URL, 'https://test-rest.networking4all.com/api/relations/{handle}');
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT");

    curl_setopt($curl, CURLOPT_HTTPHEADER, [
        'x-api-key: <apikey>',
        'Content-Type: application/json',
    ]);

    $data_array =  [
        "company_name" => 'New Name BV',
        "zipcode" => '1234AB'
    ];

    curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data_array));

    //Set to 'true' to store result in $response
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, false);
    $response = curl_exec($curl);
?>

Response

200
{
    "message": "Command completed succesfully",
    "data": {
        "handle": "<handle>"
    }
}

422
{
    "message": "Command contains errors",
    "data": {
        "zipcode": [
            "The zipcode must be at least 2 characters."
        ]
    }
}

This endpoint updates a relation

HTTP Request

PUT https://test-rest.networking4all.com/api/relations/{handle}

General Request Parameters

Parameter Required Default Description Type Options
email optional none E-mail of relation String
phone optional none Phone number of relation String
street optional none Street + Number String
zipcode optional none Zipcode/Postal code String
city optional none City String
province optional none Province/State String
country_iso optional none ISO Country Code String
website optional none Website address String
iban optional none IBAN number String
bic optional none BIC code String

Extra Parameters For Type: company

Parameter Required Default Description Type Options
company_name optional none Company name String
coc_number optional none Chamber of Commerce number String
vat_number optional none VAT number String

Extra Parameters For Type: contact

Parameter Required Default Description Type Options
first_name optional none First name of contact String
middle_name optional none Middle name or insertion String
last_name optional none Last name of contact String

DEL Delete Relation

Request

curl -X DELETE "https://test-rest.networking4all.com/api/relations/{handle}"
  -H "x-api-key: <apikey>"
<?php
    $curl = curl_init();

    curl_setopt($curl, CURLOPT_URL, 'https://test-rest.networking4all.com/api/relations/{handle}');
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "DELETE");

    curl_setopt($curl, CURLOPT_HTTPHEADER, [
        'x-api-key: <apikey>',
        'Content-Type: application/json',
    ]);

    //Set to 'true' to store result in $response
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, false);
    $response = curl_exec($curl);
?>

Response

200
{
    "message": "Command completed succesfully",
    "data": {
        "handle": "<handle>"
    }
}

405
{
    "message": ""
}

This endpoint deletes a relation

HTTP Request

DELETE https://test-rest.networking4all.com/api/relations/{handle}

GET Get Relation

Request

curl -X GET "https://test-rest.networking4all.com/api/relations/{handle}"
  -H "x-api-key: <apikey>"
<?php
    $curl = curl_init();

    curl_setopt($curl, CURLOPT_URL, 'https://test-rest.networking4all.com/api/relations/{handle}');

    curl_setopt($curl, CURLOPT_HTTPHEADER, [
        'x-api-key: <apikey>',
        'Content-Type: application/json',
    ]);

    //Set to 'true' to store result in $response
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, false);
    $response = curl_exec($curl);
?>

Response

200
{
    "message": "Command completed succesfully",
    "data": {
        "handle": "<handle>",
        "type": "company",
        "company": {
            "name": "Example BV"
        },
        "client_number": null,
        "vat": "NL000000000B01",
        "reseller_handle": "<handle>",
        "address": [
            {
                "street": "Dorpstraat 1",
                "postal_code": "1111AA",
                "city": "Amsterdam",
                "province": "Noord-Holland",
                "country_code": "NL"
            }
        ],
        "phone_number": "0612345678",
        "email": "example@networking4all.com",
        "website": null,
    }
}

422
{
    "message": "Command contains errors",
    "data": {
        "handle": [
            "The handle is invalid."
        ]
    }
}

This endpoint gets a relation

HTTP Request

GET https://test-rest.networking4all.com/api/relations/{handle}

GET Get Relation Contacts

Request

curl -X GET "https://test-rest.networking4all.com/api/relations/{handle}/contacts"
  -H "x-api-key: <apikey>"
<?php
    $curl = curl_init();

    curl_setopt($curl, CURLOPT_URL, 'https://test-rest.networking4all.com/api/relations/{handle}/contacts');

    curl_setopt($curl, CURLOPT_HTTPHEADER, [
        'x-api-key: <apikey>',
        'Content-Type: application/json',
    ]);

    //Set to 'true' to store result in $response
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, false);
    $response = curl_exec($curl);
?>

Response

200
{
    "message": "Command completed succesfully",
    "data": [
        {
            "handle": "<handle>",
            "type": "contact",
            "contact": {
                "title": "",
                "initials": "",
                "first_name": "John",
                "last_name": "Doe"
            },
            "company_handle": "<handle>",
            "reseller_handle": "<handle>",
            "address": [
                {
                    "street": "Dorpstraat 1",
                    "postal_code": "1234AB",
                    "city": "Amsterdam",
                    "province": "Noord-Holland",
                    "country_code": "NL"
                }
            ],
            "phone_number": "0612345678",
            "email": "example@networking4all.com",
            "website": null,
        }
    ]
}

422
{
    "message": "Command contains errors",
    "data": {
        "handle": [
            "The given handle is not a company handle."
        ]
    }
}

This endpoint gets all contacts that belong to a company and can be used as admin/tech handles.

HTTP Request

GET https://test-rest.networking4all.com/api/relations/{handle}/contacts

GET Get Relation Clients

Request

curl -X GET "https://test-rest.networking4all.com/api/relations/clients"
  -H "x-api-key: <apikey>"
<?php
    $curl = curl_init();

    curl_setopt($curl, CURLOPT_URL, 'https://test-rest.networking4all.com/api/relations/clients');

    curl_setopt($curl, CURLOPT_HTTPHEADER, [
        'x-api-key: <apikey>',
        'Content-Type: application/json',
    ]);

    //Set to 'true' to store result in $response
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, false);
    $response = curl_exec($curl);
?>

Response

200
{
    "message": "Command completed succesfully",
    "data": [
        {
            "handle": "<handle>",
            "type": "company",
            "company": {
                "name": "New Name BV"
            },
            "client_number": 79460,
            "vat": "NL000000000B01",
            "address": [
                {
                    "street": "Dorpstraat 1",
                    "postal_code": "1234AB",
                    "city": "Amsterdam",
                    "province": "Noord-Holland",
                    "country_code": "NL"
                }
            ],
            "phone_number": "0612345678",
            "email": "example@networking4all.com",
            "website": "",
        }
    ]
}

If you're a reseller, this endpoint gets all your clients

HTTP Request

GET https://test-rest.networking4all.com/api/relations/clients

Products

GET Get Product

Request

curl -X GET "https://test-rest.networking4all.com/api/products/{product_code}"
  -H "x-api-key: <apikey>"
<?php
    $curl = curl_init();

    curl_setopt($curl, CURLOPT_URL, 'https://test-rest.networking4all.com/api/products/{product_code}');

    curl_setopt($curl, CURLOPT_HTTPHEADER, [
        'x-api-key: <apikey>',
        'Content-Type: application/json',
    ]);

    //Set to 'true' to store result in $response
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, false);
    $response = curl_exec($curl);
?>

Response

200
{
    "message": "Command completed succesfully",
    "data": {
        "product_code": "2006",
        "name": "Networking4all Basic SSL DV",
        "period": "12,24",
        "description": {
            "short": "SSL Certificate"
        },
        "details": {
            "webserver": 0,
            "dv": 1,
            "ov": 0,
            "ev": 0,
            "san": 0,
            "wildcard": 0,
            "intranet": 0,
            "mobile": 1,
            "competitive_upgrade": 0,
            "mail_validation": 1
        },
        "vat": 21,
        "fees": {
            "setup": 0,
            "fee": [
                {
                    "period": "12",
                    "retail": 30,
                    "actual": 1,
                    "type": "new",
                    "currency": "EUR"
                },
                {
                    "period": "24",
                    "retail": 57,
                    "actual": 1,
                    "type": "new",
                    "currency": "EUR"
                }
            ]
        }
    }
}

422
{
    "message": "Command contains errors",
    "data": {
        "product_code": [
            "The selected product code is invalid."
        ]
    }
}

This endpoint gets a single product

HTTP Request

GET https://test-rest.networking4all.com/api/products/{product_code}

GET Get Products

Request

curl -X GET "https://test-rest.networking4all.com/api/products"
  -H "x-api-key: <apikey>"
  -H "Content-Type: application/json"
  -d '{
         "brand": "IntermediateCertificate",
         "ssl_type": "DV"
     }'
<?php
    $curl = curl_init();

    curl_setopt($curl, CURLOPT_URL, 'https://test-rest.networking4all.com/api/products?brand=Networking4all&ssl_type=DV');

    curl_setopt($curl, CURLOPT_HTTPHEADER, [
        'x-api-key: <apikey>',
        'Content-Type: application/json',
    ]);

    //Set to 'true' to store result in $response
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, false);
    $response = curl_exec($curl);
?>

Response

200
{
    "message": "Command completed succesfully",
    "data": {
        "products": [
            {
                "name": "Trust Provider DomainSSL",
                "code": "1947",
                "brand": "IntermediateCertificate"
            },
            {
                "name": "Trust Provider DomainSSL Wildcard",
                "code": "1951",
                "brand": "IntermediateCertificate"
            }
        ]
    }
}

422
{
    "message": "Command contains errors",
    "data": {
        "brand": [
            "The selected brand is invalid."
        ]
    }
}

This endpoint gets a list of multiple products

HTTP Request

GET https://test-rest.networking4all.com/api/products

Request Parameters

Parameter Required Default Description Type Options
brand optional none Product brand String - Networking4all
- GeoTrust
- thawte
- Symantec
- GlobalSign
- AlphaSSL
- RapidSSL
- IntermediateCertificate
- Certum
- digicert
ssl_type optional none SSL type String - DV
- OV
- EV

Certificates

POST Check CSR

Request

curl -X POST "https://test-rest.networking4all.com/api/utilities/check-csr/"
  -H "x-api-key: <apikey>"
  -H "Content-Type: application/json"
  -d '{
         "csr": "<csr>"
     }'
<?php
    $curl = curl_init();

    curl_setopt($curl, CURLOPT_URL, 'https://test-rest.networking4all.com/api/utilities/check-csr/');
    curl_setopt($curl, CURLOPT_POST, 1);

    curl_setopt($curl, CURLOPT_HTTPHEADER, [
        'x-api-key: <apikey>',
        'Content-Type: application/json',
    ]);

    $data_array =  [
        "csr" => '<csr>',
    ];

    curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data_array));

    //Set to 'true' to store result in $response
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, false);
    $response = curl_exec($curl);
?>

Response

200
{
    "message": "Command completed succesfully",
    "data": {
        "cn": "example.com",
        "organisation": "Example BV",
        "organizationunit": null,
        "city": "Amsterdam",
        "province": "Noord-Holland",
        "country": "NL",
        "email": "admin@example.com",
        "keylength": 2048,
        "csr": "<csr>"
    }
}

422
{
    "message": "Command contains errors",
    "data": {
        "csr": [
            "The CSR is invalid.",
            "Invalid country code"
        ]
    }
}

This function decodes the CSR and returns errors for incorrect fields.

HTTP Request

POST https://test-rest.networking4all.com/api/utilities/check-csr/

Request Parameters

Parameter Required Default Description Type Options
csr required none Full CSR String

GET Get Approver List

Request

curl -X GET "https://test-rest.networking4all.com/api/certificates/approvers"
  -H "x-api-key: <apikey>"
  -H "Content-Type: application/json"
  -d '{
         "product_code": "<product_code>",
         "domain": "<domain>"
     }'
<?php
    $curl = curl_init();

    curl_setopt($curl, CURLOPT_URL, 'https://test-rest.networking4all.com/api/certificates/approvers?product_code=2800&domain=domain.com');

    curl_setopt($curl, CURLOPT_HTTPHEADER, [
        'x-api-key: <apikey>',
        'Content-Type: application/json',
    ]);

    //Set to 'true' to store result in $response
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, false);
    $response = curl_exec($curl);
?>

Response

200
{
    "message": "Command completed succesfully",
    "data": {
        "approvers": [
            "admin@example.com",
            "administrator@example.com",
            "webmaster@example.com",
            "hostmaster@example.com",
            "postmaster@example.com"
        ]
    }
}

422
{
    "message": "Command contains errors",
    "data": {
        "product_code": [
            "The selected product code is invalid."
        ]
    }
}

This function requests a list of the approver e-mail addresses required for ordering Domain Validated (DV) SSL certificates.

HTTP Request

GET https://test-rest.networking4all.com/api/certificates/approvers

Request Parameters

Parameter Required Default Description Type Options
product_code required none Product code String
domain required none Common name of domain String

POST Order Certificate

Request

curl -X POST "https://test-rest.networking4all.com/api/certificates/order/"
  -H "x-api-key: <apikey>"
  -H "Content-Type: application/json"
  -d '{
        "company_handle": "<handle>",
        "admin_handle": "<handle>",
        "tech_handle": "<handle>",
        "product_code": "<product_code>",
        "period": "1",
        "common_name" => "domain.com",
        "csr": "<csr>"
        "approver_email": "admin@example.com",
         "san": [
             "aaaa.domain.com",
             "bbbb.domain.com"
         ]
     }'
<?php
    $curl = curl_init();

    curl_setopt($curl, CURLOPT_URL, 'https://test-rest.networking4all.com/api/certificates/order/');
    curl_setopt($curl, CURLOPT_POST, 1);

    curl_setopt($curl, CURLOPT_HTTPHEADER, [
        'x-api-key: <apikey>',
        'Content-Type: application/json',
    ]);

    $data_array =  [
        "company_handle" => '<handle>',
        "admin_handle" => '<handle>',
        "tech_handle" => '<handle>',
        "product_code" => '<product_code>',
        "period" => '1',
        "common_name" => 'domain.com',
        "csr" => '<csr>',
        "approver_email" => 'admin@example.com',
        "san" => ['aaaa.domain.com', 'bbbb.domain.com']
    ];

    curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data_array));

    //Set to 'true' to store result in $response
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, false);
    $response = curl_exec($curl);
?>

Response

200
{
    "message": "Command completed succesfully",
    "data": {
        "order_number": "01234567890",
        "trace_number": "98765432109"
    }
}

422
{
    "message": "Command contains errors",
    "data": {
        "product_code": [
            "The selected product code is invalid."
        ],
        "csr": [
            "The CSR is invalid.",
            "Please note: we don't accept a CSR of which the CountryCode (nl) contains lowercase characters."
        ]
    }
}

This function allows you to order a certificate.

HTTP Request

POST https://test-rest.networking4all.com/api/certificates/order/

Request Parameters

From September 2020 the period for SSL Certificates can only be 1 year (more info). A period of 3 years is only valid for signing.

Parameter Required Default Description Type Options
company_handle required none Handle of company String
admin_handle required none Handle of admin contact String
tech_handle required none Handle of tech contact String
kind optional new Kind of order String - new
- renewal
trace_number required with: renewal none Trace number for renewal String
product_code required none Product code String
period required none Period in years String - 1
- 2
- 3
csr required none Full CSR String
approver_method optional EMAIL Method to approve String - FILE
- EMAIL
- DNS
approver_email optional none Email of approver String
common_name required none The common (domain) name String
san optional none Specify ALL SAN names Array
reference optional none P.O. number String

PATCH Change DCV Method

Request

curl -X PATCH "https://test-rest.networking4all.com/api/certificates/{trace_number}/approver/update"
  -H "x-api-key: <apikey>"
  -H "Content-Type: application/json"
  -d '{
        "approver_method": "DNS",
        "approver_email": "admin@example.com",
     }'
<?php
    $curl = curl_init();

    curl_setopt($curl, CURLOPT_URL, 'https://test-rest.networking4all.com/api/certificates/{trace_number}/approver/update');
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PATCH");

    curl_setopt($curl, CURLOPT_HTTPHEADER, [
        'x-api-key: <apikey>',
        'Content-Type: application/json',
    ]);

    $data_array =  [
        "approver_method" => 'DNS',
        "approver_email" => 'admin@example.com'
    ];

    curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data_array));

    //Set to 'true' to store result in $response
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, false);
    $response = curl_exec($curl);
?>

Response

200
{
    "message": "Command completed succesfully",
    "data": {
        "trace_number": "15613780220"
    }
}

422
{
    "message": "Command contains errors",
    "data": {
        "approver_email": [
            "The approver email must be a valid email address."
        ]
    }
}

This function allows you to change the DCV approver method.

HTTP Request

PATCH https://test-rest.networking4all.com/api/certificates/{trace_number}/approver/update

Request Parameters

Parameter Required Default Description Type Options
approver_method optional EMAIL Method to approve String - EMAIL
- DNS
- FILE
approver_email required none Email of approver String

GET Resend Approver Email

Request

curl -X GET "https://test-rest.networking4all.com/api/certificates/{trace_number}/approver/resend"
  -H "x-api-key: <apikey>"
  -H "Content-Type: application/json"
  -d '{
         "email": "admin@example.com"
     }'
<?php
    $curl = curl_init();

    curl_setopt($curl, CURLOPT_URL, 'https://test-rest.networking4all.com/api/certificates/{trace_number}/approver/resend?email=admin@example.com');

    curl_setopt($curl, CURLOPT_HTTPHEADER, [
        'x-api-key: <apikey>',
        'Content-Type: application/json',
    ]);

    //Set to 'true' to store result in $response
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, false);
    $response = curl_exec($curl);
?>

Response

200
{
    "message": "Command completed succesfully",
    "data": {
        "trace_number": "15928982871",
        "order_number": "01592898287"
    }
}

422
{
    "message": "Command contains errors",
    "data": {
        "email": [
            "The e-mail address must be a valid email address."
        ]
    }
}

This function allows you to resend or change the approver email. Changing the approver e-mail address can only be used for products that use e-mail validation. When this functionality is not available for a product, the specified approver e-mail address is ignored.

HTTP Request

GET https://test-rest.networking4all.com/api/certificates/{trace_number}/approver/resend

Request Parameters

Parameter Required Default Description Type Options
email optional none E-mail address String

GET Get DCV Token

Request

curl -X GET "https://test-rest.networking4all.com/api/certificates/{trace_number}/dcv-token"
  -H "x-api-key: <apikey>"
<?php
    $curl = curl_init();

    curl_setopt($curl, CURLOPT_URL, 'https://test-rest.networking4all.com/api/certificates/{trace_number}/dcv-token');

    curl_setopt($curl, CURLOPT_HTTPHEADER, [
        'x-api-key: <apikey>',
        'Content-Type: application/json',
    ]);

    //Set to 'true' to store result in $response
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, false);
    $response = curl_exec($curl);
?>

Response

200
{
    "message": "Command completed succesfully",
    "data": {
        "approver_content": "<approver_content>"
    }
}

422
{
    "message": "Command contains errors",
    "data": {
        "trace_number": [
            "The selected trace number is invalid."
        ]
    }
}

This endpoint gets your DCV Token

HTTP Request

GET https://test-rest.networking4all.com/api/certificates/{trace_number}/dcv-token

GET Get Certificate

Request

curl -X GET "https://test-rest.networking4all.com/api/certificates/{trace_number}"
  -H "x-api-key: <apikey>"
  -H "Content-Type: application/json"
<?php
    $curl = curl_init();

    curl_setopt($curl, CURLOPT_URL, 'https://test-rest.networking4all.com/api/certificates/{trace_number}');

    curl_setopt($curl, CURLOPT_HTTPHEADER, [
        'x-api-key: <apikey>',
        'Content-Type: application/json',
    ]);

    //Set to 'true' to store result in $response
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, false);
    $response = curl_exec($curl);
?>

Response

200
{
    "message": "Command completed succesfully",
    "data": [
        {
            "common_name": "example.com",
            "owner_id": "<handle>",
            "admin_id": "<handle>",
            "tech_id": "<handle>",
            "price_ex": "224.00",
            "vat": 47.04,
            "start_date": "2020-06-01",
            "end_date": "2021-06-01",
            "period": 12,
            "order_date": "2020-06-01",
            "trace_number": "01234567890",
            "order_number": "98765432109",
            "product_code": "2800",
            "name": "Networking4all Basic SSL DV SAN",
            "status": "Finished",
            "status_code": 2800,
            "certificates": {
                "end_entity": {
                    "id": 203708,
                    "certificate": "-----BEGIN CERTIFICATE-----\r\nMIIGUTCCBTmgAwIBAgIQB\/XzSSykD06GOkn7fgEGwjANBgkqhkiG9w0BAQsFADB2\r\nMQswCQYDVQQGEwJOTDEcMBoGA1UEChMTVHJ1c3QgUHJvdmlkZXIgQi5WLjEdMBsG\r\nA1UECxMURG9tYWluIFZhbGlkYXRlZCBTU0wxKjAoBgNVBAMTIVRydXN0IFByb3Zp\r\nZGVyIEIuVi4gVExTIFJTQSBDQSBHMTAeFw0xOTA2MjQwMDAwMDBaFw0yMDA2MjQx\r\nMjAwMDBaMCYxJDAiBgNVBAMTG3d3dy5kcm9wc2hpcHBpbmdjZW50cmFsZS5iZTCC\r\nASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ27U60FjVsg\/46cOkl9t4LZ\r\nDtS2zZBlIOIvsWRGstC\/bG5gpyBmm6RvSeAwpYagfyF8Ax3Favg4d4rC7\/Sf2wnj\r\nd+1T\/JD+iauANmTkKmdCmSpprmfbt7UQc1mPgKm\/6u1Qf\/L\/pASm1i4DQKc+7LwU\r\n1\/oLwie\/t0Yq\/SbBD+y66sowK8212wOeTU9TopLh\/vX+lYwkR9ZJb+QTzhUxYreQ\r\n0tG9EyZzkT\/fQrrBW5dXI93Zw33st8u2EmuVmYV9cby+TPPG8bHsP0RBTX9jwEb\/\r\nUrDAcAaY3cBdurjX59N6L4ZzgHUob\/6BqHoTVDau0K7c11qDFCSaUERJ9KTtAtkC\r\nAwEAAaOCAykwggMlMB8GA1UdIwQYMBaAFPVWIh\/Zv2tZJFKw4WrNwOFXZ+noMB0G\r\nA1UdDgQWBBTp6EfeVYTzcM\/BKqlkzabMdl\/IEjBfBgNVHREEWDBWght3d3cuZHJv\r\ncHNoaXBwaW5nY2VudHJhbGUuYmWCHG1haWwuZHJvcHNoaXBwaW5nY2VudHJhbGUu\r\nbmyCGSouZHJvcHNoaXBwaW5nY2VudHJhbGUuYmUwDgYDVR0PAQH\/BAQDAgWgMB0G\r\nA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjBUBgNVHR8ETTBLMEmgR6BFhkNo\r\ndHRwOi8vY2RwZC5kaWdpdGFsY2VydHZhbGlkYXRpb24uY29tL1RydXN0UHJvdmlk\r\nZXJCVlRMU1JTQUNBRzEuY3JsMEwGA1UdIARFMEMwNwYJYIZIAYb9bAECMCowKAYI\r\nKwYBBQUHAgEWHGh0dHBzOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCAYGZ4EMAQIB\r\nMIGaBggrBgEFBQcBAQSBjTCBijA0BggrBgEFBQcwAYYoaHR0cDovL3N0YXR1c2Qu\r\nZGlnaXRhbGNlcnR2YWxpZGF0aW9uLmNvbTBSBggrBgEFBQcwAoZGaHR0cDovL2Nh\r\nY2VydHMuZGlnaXRhbGNlcnR2YWxpZGF0aW9uLmNvbS9UcnVzdFByb3ZpZGVyQlZU\r\nTFNSU0FDQUcxLmNydDAJBgNVHRMEAjAAMIIBBQYKKwYBBAHWeQIEAgSB9gSB8wDx\r\nAHcApLkJkLQYWBSHuxOizGdwCjw1mAT5G9+443fNDsgN3BAAAAFriWhQuQAABAMA\r\nSDBGAiEA3uUUcUWjZx5WuFDBC7cGydU6pG8lclK2vPASAuj7iAICIQDCBeFuNy0w\r\nU8GwnV7EAF0I6zLh0Zd1ceM\/\/u4nwPVEzAB2AId1v+dZfPiMQ5lfvfNu\/1aNR1Y2\r\n\/0q1YMG06v9eoIMPAAABa4loUQYAAAQDAEcwRQIgBdz8\/8DpRB86M6xjGvA78dq4\r\nvAm9+ag8AHSjVxVc3q0CIQDuKYq+AAKTZmqAcleGoncYMrK1WF+6mD2hW0LynN7R\r\nizANBgkqhkiG9w0BAQsFAAOCAQEAcNQgWqyzELjdWTUstKGM3FOa2hdMhIEUJHom\r\ntMXpc5OhTz8YsuBZqnbEUKB5IWD8lscSeieu7yK2\/VELxAUrlwxmBLUTwCAB5ZCF\r\n59u0BoMwbSlEiOQKAJj4RJdsUKRBO+2b8O97qCMfKi3QYHXMTPcNRjXxkHKKtrlp\r\nH5EeTYtqxbyVgO1FivjM0kCSgRY+ZbOuqYUqGS05CzT3Sw3+PtyZOsgS70C5oi5f\r\nP1oLomfj6ZfnZaNTvKoa+FZ3PnWxxRT8qbrusHqWig32f+VsFpjCsxF9JPSY5Yit\r\nj01rpejrOOAQ19o5lW23JYW4eK0lo501vyyM+da3FaDthX803w==\r\n-----END CERTIFICATE-----",
                    "type": "X509Cert",
                    "fingerprint": "04a818f4bf2f39ff940400f1eeb01bcdba87fc2c"
                },
                "ca": [
                    {
                        "type": "INTERMEDIATE",
                        "name": "TrustProviderBVTLSRSACAG1.cer",
                        "certificate": "-----BEGIN CERTIFICATE-----\nMIIEsjCCA5qgAwIBAgIQDsQR7fAC9zA2xOXULz408jANBgkqhkiG9w0BAQsFADBh\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\nd3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH\nMjAeFw0xNzExMDIxMjI1MTBaFw0yNzExMDIxMjI1MTBaMHYxCzAJBgNVBAYTAk5M\nMRwwGgYDVQQKExNUcnVzdCBQcm92aWRlciBCLlYuMR0wGwYDVQQLExREb21haW4g\nVmFsaWRhdGVkIFNTTDEqMCgGA1UEAxMhVHJ1c3QgUHJvdmlkZXIgQi5WLiBUTFMg\nUlNBIENBIEcxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0CujVHP9\nuKBwWwNGWNUnrpcfTvudmYEXX3zI6r+voOQPvupdT8iwyYdDWVtqOaGPeUF2kxiN\nzeK1bxTHvbWr1VkhHGAF20H4z8G\/SGFU9j7OaILnPCaUasoYphro6JUMnt2DqVJh\nQMeZDy1h+3fX5Qs5oxuVuwgcWciM21sKlpA335QzIh6Ir5EpJsulAha\/0MTZyopC\nvQgBMGkNQelNlFp\/58H0jt4RfRZ6Ad37PdNsZvnhyfflrhpJiZqnkJpVilguFda2\nHvR9fghsVtEi\/7aeTypJb5EwS4ZlVbCI1yiT5ES3nMFcOZm3NZkF+1rWOxpK1weJ\n7+9inSl6+QcchQIDAQABo4IBTzCCAUswHQYDVR0OBBYEFPVWIh\/Zv2tZJFKw4WrN\nwOFXZ+noMB8GA1UdIwQYMBaAFE4iVCAYlebjbuYP+vq5Eu0GF485MA4GA1UdDwEB\n\/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH\/\nBAgwBgEB\/wIBADA0BggrBgEFBQcBAQQoMCYwJAYIKwYBBQUHMAGGGGh0dHA6Ly9v\nY3NwLmRpZ2ljZXJ0LmNvbTBCBgNVHR8EOzA5MDegNaAzhjFodHRwOi8vY3JsMy5k\naWdpY2VydC5jb20vRGlnaUNlcnRHbG9iYWxSb290RzIuY3JsMEwGA1UdIARFMEMw\nNwYJYIZIAYb9bAECMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LmRpZ2ljZXJ0\nLmNvbS9DUFMwCAYGZ4EMAQIBMA0GCSqGSIb3DQEBCwUAA4IBAQCk3Aib9H7nhVT6\nwikbW6IKwSrj149fmNgw9HpF2oH7DjY5XL8Lt2gtImTan91fxVkmLM6pYzpGuAE\/\n4MWUFArR9fqGzNTo1D\/gl5k5wCbLFsw7vTDDM3qwiAvBSb+0hlIyW5rDRp2vRjl5\nkpuD9rD9exHOkhErpP4ztWgeRaCrY4oYG5urj6NuQlMtHn6eV8gR4d29mmKrjCLV\n\/XMCIMtu5INrVzOoo0P1sB\/Wwteg3HgQXTtI2177ANO+180PGAeG7gpIwjt\/mhl1\n8iyF7aYLP9rUBg+UEJ0s55VrTPKUDYyuAKXyODwgmtuYiZMDrQPcwGfRO1GDghIT\n3dI21ici\n-----END CERTIFICATE-----\n"
                    }
                ]
            },
            "san_names": [
                "mail.example.com",
                "*.example.com"
            ],
            "renewal_of": "12345678910"
        }
    ]
}

422
{
    "message": "Command contains errors",
    "data": {
        "trace_number": [
            "The selected trace number is invalid."
        ]
    }
}

This function allows you to check the status of your order. If the order has status "Finished" (status code 2800), you can retrieve the certificate.

HTTP Request

GET https://test-rest.networking4all.com/api/certificates/{trace_number}

GET Get Certificate List

Request

curl -X GET "https://test-rest.networking4all.com/api/certificates"
  -H "x-api-key: <apikey>"
  -H "Content-Type: application/json"
  -d '{
         "from_date": "2020-06-01",
         "status": "cancelled",
         "handle": "<handle>"
     }'
<?php
    $curl = curl_init();

    curl_setopt($curl, CURLOPT_URL, 'https://test-rest.networking4all.com/api/certificates?from_date=2020-06-01&status=cancelled&handle=<handle>');

    curl_setopt($curl, CURLOPT_HTTPHEADER, [
        'x-api-key: <apikey>',
        'Content-Type: application/json',
    ]);

    //Set to 'true' to store result in $response
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, false);
    $response = curl_exec($curl);
?>

Response

200
{
    "message": "Command completed succesfully",
    "data": [
        {
            "common_name": "example.com",
            "owner_id": "<handle>",
            "admin_id": "<handle>",
            "tech_id": "<handle>",
            "price_ex": "9.70",
            "vat": 2.04,
            "start_date": "2020-06-01",
            "end_date": "2021-06-01",
            "period": 12,
            "order_date": "2020-06-01",
            "trace_number": "01234567890",
            "order_number": "98765432109",
            "product_code": "1910",
            "name": "RapidSSL",
            "status": "Cancelled",
            "status_code": 2950
        },
        {
            "common_name": "example.com",
            "owner_id": "<handle>",
            "admin_id": "<handle>",
            "tech_id": "<handle>",
            "price_ex": "9.70",
            "vat": 2.04,
            "start_date": "2020-06-01",
            "end_date": "2021-06-01",
            "period": 12,
            "order_date": "2020-06-01",
            "trace_number": "01234567890",
            "order_number": "98765432109",
            "product_code": "1910",
            "name": "RapidSSL",
            "status": "Cancelled",
            "status_code": 2950,
            "renewal_of": "12345678910"
        }
    ]
}
422
{
    "message": "Command contains errors",
    "data": {
        "status": [
            "The selected status should be one of requested, issued, pending_reissue, pending_san_change, expired, renewable, cancelled, error_while_ordering"
        ]
    }
}

This function allows you to check the status of one or multiple SSL certificate(s). If the order is Finished (status code 4800), you can retrieve the certificate via Get Certificate.

HTTP Request

GET https://test-rest.networking4all.com/api/certificates

Request Parameters

Parameter Required Default Description Type Options
product_type optional web Certificate type String - web
- signing
from_range optional none From item number Integer
items optional 100 Number of items, max:100 Integer
from_date optional none From order date Date (Y-m-d)
to_date optional none To order date Date (Y-m-d)
from_exp_date optional none From expiry date Date (Y-m-d)
to_exp_date optional none To expiry date Date (Y-m-d)
status optional none Status String - requested
- issued
- pending_reissue
- pending_san_change
- expired
- renewable
- cancelled
- error_while_ordering
sort_by_date optional desc Sort from new to old order date String - desc
- asc
handle optional none Handle to filter String

PATCH Reissue Certificate

Request

curl -X PATCH "https://test-rest.networking4all.com/api/certificates/{trace_number}/reissue"
  -H "x-api-key: <apikey>"
  -H "Content-Type: application/json"
  -d '{
        "csr": "<csr>",
        "approver_email": "admin@example.com",
     }'
<?php
    $curl = curl_init();

    curl_setopt($curl, CURLOPT_URL, 'https://test-rest.networking4all.com/api/certificates/{trace_number}/reissue');
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PATCH");

    curl_setopt($curl, CURLOPT_HTTPHEADER, [
        'x-api-key: <apikey>',
        'Content-Type: application/json',
    ]);

    $data_array =  [
        "csr" => '<csr>',
        "approver_email" => 'admin@example.com'
    ];

    curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data_array));

    //Set to 'true' to store result in $response
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, false);
    $response = curl_exec($curl);
?>

Response

200
{
    "message": "Command completed succesfully",
    "data": {
        "trace_number": "15613780220",
        "order_number": "01561378022"
    }
}

422
{
    "message": "Command contains errors",
    "data": {
        "trace_number": [
            "The selected trace number is invalid."
        ]
    }
}

This function allows you to reissue a Certificate.

HTTP Request

PATCH https://test-rest.networking4all.com/api/certificates/{trace_number}/reissue

Request Parameters

Parameter Required Default Description Type Options
csr required none Full CSR String
approver_email required none Email of approver String
approver_method optional EMAIL Method to approve String - EMAIL
- DNS
- FILE

PATCH Refresh Certificate

Request

curl -X PATCH "https://test-rest.networking4all.com/api/certificates/{trace_number}/refresh"
  -H "x-api-key: <apikey>"
  -H "Content-Type: application/json"
  -d '{
        "csr": "<csr>",
        "approver_email": "admin@example.com",
     }'
<?php
    $curl = curl_init();

    curl_setopt($curl, CURLOPT_URL, 'https://test-rest.networking4all.com/api/certificates/{trace_number}/refresh');
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PATCH");

    curl_setopt($curl, CURLOPT_HTTPHEADER, [
        'x-api-key: <apikey>',
        'Content-Type: application/json',
    ]);

    $data_array =  [
        "csr" => '<csr>',
        "approver_email" => 'admin@example.com'
    ];

    curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data_array));

    //Set to 'true' to store result in $response
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, false);
    $response = curl_exec($curl);
?>

Response

200
{
    "message": "Command completed succesfully",
    "data": {
        "trace_number": "15613780220",
        "order_number": "01561378022"
    }
}

422
{
    "message": "Command contains errors",
    "data": {
        "trace_number": [
            "The selected trace number is invalid."
        ]
    }
}

This function allows you to refresh a Certificate.

HTTP Request

PATCH https://test-rest.networking4all.com/api/certificates/{trace_number}/refresh

Request Parameters

Parameter Required Default Description Type Options
csr required none Full CSR String
approver_email required none Email of approver String
approver_method optional EMAIL Method to approve String - EMAIL
- DNS
- FILE

PATCH Change SAN

Request

curl -X PATCH "https://test-rest.networking4all.com/api/certificates/{trace_number}/san"
  -H "x-api-key: <apikey>"
  -H "Content-Type: application/json"
  -d '{
         "san": [
             "aaaa.domain.com",
             "bbbb.domain.com"
         ]
     }'

<?php
    $curl = curl_init();

    curl_setopt($curl, CURLOPT_URL, 'https://test-rest.networking4all.com/api/certificates/{trace_number}/san');
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PATCH");

    curl_setopt($curl, CURLOPT_HTTPHEADER, [
        'x-api-key: <apikey>',
        'Content-Type: application/json',
    ]);

    $data_array =  [
        "san" => ['aaaa.domain.com', 'bbbb.domain.com']
    ];

    curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data_array));

    //Set to 'true' to store result in $response
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, false);
    $response = curl_exec($curl);
?>

Response

200
{
    "message": "Command completed succesfully",
    "data": {
        "trace_number": "01234567890"
    }
}

422
{
    "message": "Command contains errors",
    "data": {
        "san": [
            "One or more SAN name's are invalid.",
            "You can not have duplicate SAN names."
        ]
    }
}

This function allows you to add SAN names to your SSL Certificate.

HTTP Request

PATCH https://test-rest.networking4all.com/api/certificates/{trace_number}/san

Request Parameters

Parameter Required Default Description Type Options
san optional none Specify ALL the SAN names to get/keep Array
approver_method optional EMAIL Method to approve String - FILE
- EMAIL
- DNS
approver_email optional none Email of approver String

Statuscodes

The Networking4all REST API uses the following statuscodes:

Statuscode Meaning
1000 Order created
1001 Deposit created
1100 Quote requested
1200 Quote approved
1300 Action required
1400 Being processed
1450 Partially finished
1500 Finished
1501 Deposit finished
1900 Quote cancelled
1950 Order cancelled
2000 Created
2100 Action required
2200 Being processed
2201 Resend approver mail
2202 Change approvers requested
2250 Direct order
2300 Validation process started
2400 Pre vetting error
2600 Supplier error
2800 Finished
2950 Cancelled
3000 Waiting for payment
3010 Direct debit requested
3020 Direct debit approved
3100 Paid
3200 Waiting for payment
3300 At bailiff
3400 Account closed
4000 Product created
4100 Action required
4200 Ready for processing
4300 Waiting for supplier
4400 Vetting error
4600 Supplier error
4800 Active
4801 Almost expired
4802 Expired
4803 SAN change requested
4805 Reissue requested
4806 Reissue pending
4807 Renewal requested
4950 Cancelled
4951 Revoke requested
4952 Revoked
4960 External certificate

Errors

The Networking4all REST API uses the following error codes:

Error Code Meaning
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
405 Method Not Allowed
422 Wrong Value Given
429 Too Many Requests
500 Internal Server Error
503 Service Unavailable

Changelog

Version 0.9.3

July 20, 2021 - Refresh function and "auto" refresh for renewals

The endpoint "Refresh Certificate" is now available, in addition to that there are minor changes in the "Order Certificate" endpoint of the Networking4all REST API.

Changelog entries are categorized in the following way:

New Features — New endpoints that are added to the REST API.
Changes — Changes to existing endpoints, requests or response parameters.
Deprecations — Existing endpoints, requests or response parameters that are being removed.

New Features
  1. The Refresh Certificate endpoint is now available on the Networking4All REST API, this endpoint allows you to refresh certificates which have active subscriptions.
Changes
  1. In case of renewal the endpoint Order Certificate now first checks if the certificate still has an active subscription and can be refreshed. If so, the Refresh Certificate endpoint will be used.
    Note: if the Refresh Certificate endpoint is called, the endpoint returns the parameters of the ORIGINAL certificate (trace_number, order_number). Please be aware of foreign key constraints.
Deprecations

No Deprecations

Version 0.9.2

March 22, 2021 - "Renewal of" tracenumber in responses

New return parameters for endpoints "Get Certificate" and "Get Certificate List" of the Networking4all REST API.

Changelog entries are categorized in the following way:

New Features — New endpoints that are added to the REST API.
Changes — Changes to existing endpoints, requests or response parameters.
Deprecations — Existing endpoints, requests or response parameters that are being removed.

New Features
  1. In case of renewal the endpoints Get Certificate and Get Certificate List now also return the tracenumber of the certificate that was renewed as "renewal_of" parameter.
Changes

No Changes

Deprecations

No Deprecations

Version 0.9.1

August 21, 2020 - New endpoint and minor modification in responses

The endpoint "Change DCV method" is now available, there are minor changes in the Get Products, Get Relation Contacts, Check CSR and Change SAN endpoints of the Networking4all REST API.

Changelog entries are categorized in the following way:

New Features — New endpoints that are added to the REST API.
Changes — Changes to existing endpoints, requests or response parameters.
Deprecations — Existing endpoints, requests or response parameters that are being removed.

New Features
  1. The Change DCV Method endpoint is now available on the Networking4All REST API, this endpoint allows you to change the DCV approver method for validating your domain.
Changes
  1. The Get Products response no longer returns the "product" array within the "products" object.
    The "product" array has been removed, instead the returned products are now listed inside the array "products".

  2. The Get Relation Contacts response no longer returns the "item" array within the "data" object.
    The "item" array has been removed, instead the returned contacts are now listed inside the array "data".

  3. The Check CSR endpoint is now a POST method instead of a GET method.

  4. The Change SAN endpoint has now parameters to choose an approver method or approver email.
Deprecations

No Deprecations

Version 0.9

July 24, 2020 - BETA Version released

The Networking4all REST API BETA is now live, we might update the endpoint requests and responses.

Changelog entries are categorized in the following way:

New Features — New endpoints that are added to the REST API.
Changes — Changes to existing endpoints, requests or response parameters.
Deprecations — Existing endpoints, requests or response parameters that are being removed.

New Features

No New Features

Changes

No Changes

Deprecations

No Deprecations