Introduction

Our API Documentation offers organizations and entities a clear path to integrating with our CA services. It covers endpoints, request/response formats, authentication, and lifecycle management. With our API, organizations can issue, manage, and validate digital certificates, ensuring secure communication and fostering trust in online interactions.

This documentation aims to provide all the information you need to work with our API.

Authenticating requests

To authenticate requests, include an Authorization header with the value "Bearer {YOUR_ACCESS_TOKEN}".

All authenticated endpoints are marked with a requires authentication badge in the documentation below.

You can retrieve your token by visiting your dashboard and clicking Create Token in the API Keys section.

App Intro

Test Home of the API

GET
https://dev-tonoteca.gettonote.com
/api/v1
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_ACCESS_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://dev-tonoteca.gettonote.com/api/v1" \
    --header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
Headers
                                                            cache-control
                                                            : no-cache, private
                                                                                                                    content-type
                                                            : application/json
                                                         
{
    "message": "Bad hostname provided.",
    "exception": "Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException",
    "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php",
    "line": 493,
    "trace": [
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php",
            "line": 463,
            "function": "prepareException",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/nunomaduro/collision/src/Adapters/Laravel/ExceptionHandler.php",
            "line": 54,
            "function": "render",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
            "line": 51,
            "function": "render",
            "class": "NunoMaduro\\Collision\\Adapters\\Laravel\\ExceptionHandler",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 188,
            "function": "handleException",
            "class": "Illuminate\\Routing\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php",
            "line": 39,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\\Http\\Middleware\\TrustProxies",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 119,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 175,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 144,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 300,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 288,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 91,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 44,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 236,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 163,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 95,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 125,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 72,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 50,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Commands/GenerateDocumentation.php",
            "line": 53,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Container/Util.php",
            "line": 41,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 35,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 662,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 211,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/symfony/console/Command/Command.php",
            "line": 326,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 180,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/symfony/console/Application.php",
            "line": 1096,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/symfony/console/Application.php",
            "line": 324,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/symfony/console/Application.php",
            "line": 175,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php",
            "line": 201,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/app/staging/artisan",
            "line": 35,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}

Digital ID

POST
https://dev-tonoteca.gettonote.com
/api/v1/digital-id/search
requires authentication

Search for a signatory by phone number or email and return the Digital ID key of the signatory. Digital ID of user is only returned if signatory was created by you.

Headers

Authorization
Example:
Bearer {YOUR_ACCESS_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://dev-tonoteca.gettonote.com/api/v1/digital-id/search" \
    --header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"john.doe@example.com\",
    \"phone\": \"+2348023456789\"
}"
Example response:

Biometric (face) Verification

POST
https://dev-tonoteca.gettonote.com
/api/v1/digital-id/biometric-verification
requires authentication

Verify a signatory's identity via ID number (based on type) and facial recognition

Headers

Authorization
Example:
Bearer {YOUR_ACCESS_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://dev-tonoteca.gettonote.com/api/v1/digital-id/biometric-verification" \
    --header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"type\": \"passport\",
    \"id_number\": \"A09011994\",
    \"photo_string\": \"data:image\\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=\"
}"
Example response:
{
    "success": true,
    "message": "Biometric verification successful",
    "verification_id": 102
}
{
    "message": "Unauthenticated."
}
{
    "success": false,
    "message": "Biometric verification failed"
}

Register a Signatory

POST
https://dev-tonoteca.gettonote.com
/api/v1/digital-id/register
requires authentication

Create an account for a signatory and return the Digital ID key of the signatory

Headers

Authorization
Example:
Bearer {YOUR_ACCESS_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://dev-tonoteca.gettonote.com/api/v1/digital-id/register" \
    --header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"verification_id\": 1,
    \"name\": \"John Doe\",
    \"organisation\": \"Acme Inc\",
    \"organisational_unit\": \"Sales and Marketing\",
    \"city\": \"Ikeja\",
    \"state\": \"Lagos\",
    \"country\": \"NG\",
    \"consent\": false,
    \"callback_url\": \"https:\\/\\/example.com\\/callback\",
    \"meta\": {
        \"user_id\": 1,
        \"role\": \"admin\",
        \"subscription_plan\": \"basic\"
    },
    \"key_storage_type\": \"myself\",
    \"passphrase\": \"V0rt3x$unsh1n3#L1ght\",
    \"passphrase_hint\": \"Combines elements of nature with numeric and special characters.\"
}"
Example response:
{
    "message": "Registration completed. Download your private key",
    "identity": "1e487525-7c87-4798-8df4-46e670c61075",
    "key_storage_type": "myself",
    "private_key_url": "http://ca.test/api/v1/digital-id/private-key/eyJpdiI..."
}
{
    "message": "Registration completed",
    "identity": "1e487525-7c87-4798-8df4-46e670c61075",
    "key_storage_type": "assisted",
    "private_key_url": null
}
{"success" => false, "message": "Consent is required"}
{
    "message": "Unauthenticated."
}

Email OTP


Send OTP via Email

POST
https://dev-tonoteca.gettonote.com
/api/v1/digital-id/otp/email
requires authentication

Send an OTP to the prospective signatory via email

Headers

Authorization
Example:
Bearer {YOUR_ACCESS_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://dev-tonoteca.gettonote.com/api/v1/digital-id/otp/email" \
    --header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"verification_id\": 1,
    \"email\": \"john.doe@example.com\"
}"
Example response:
{
    "success": true,
    "message": "OTP sent successfully",
    "verification_id": 102
}
{
    "message": "Unauthenticated."
}

Verify OTP from Email

POST
https://dev-tonoteca.gettonote.com
/api/v1/digital-id/otp/email/verify
requires authentication

Verify the OTP from the prospective signatory's email

Headers

Authorization
Example:
Bearer {YOUR_ACCESS_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://dev-tonoteca.gettonote.com/api/v1/digital-id/otp/email/verify" \
    --header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"verification_id\": 1,
    \"token\": \"123456\"
}"
Example response:
{
    "success": true,
    "message": "OTP verified successfully"
}
{
    "message": "Unauthenticated."
}
{
    "success": false,
    "message": "Could not verify OTP"
}

Phone OTP


Send an OTP via Phone

Deprecated
POST
https://dev-tonoteca.gettonote.com
/api/v1/digital-id/otp
requires authentication

Send an OTP to phone either by phone call or sms of the prospective signatory.

Headers

Authorization
Example:
Bearer {YOUR_ACCESS_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://dev-tonoteca.gettonote.com/api/v1/digital-id/otp" \
    --header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"verification_id\": 1,
    \"type\": \"call\",
    \"phone\": \"+2348023456789\"
}"
Example response:
{
    "success": true,
    "message": "OTP sent successfully"
}
{
    "message": "Unauthenticated."
}
{
    "success": false,
    "message": "Could not send OTP"
}

Verify OTP from Phone

Deprecated
POST
https://dev-tonoteca.gettonote.com
/api/v1/digital-id/otp/verify
requires authentication

Verify OTP token sent to phone of the prospective signatory.

Headers

Authorization
Example:
Bearer {YOUR_ACCESS_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://dev-tonoteca.gettonote.com/api/v1/digital-id/otp/verify" \
    --header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"verification_id\": 1,
    \"token\": \"123456\"
}"
Example response:
{
    "success": true,
    "message": "OTP verified successfully"
}
{
    "message": "Unauthenticated."
}
{
    "success": false,
    "message": "Could not verify OTP"
}

Access Recovery


Biometric ID Type

GET
https://dev-tonoteca.gettonote.com
/api/v1/digital-id/access-recovery/verification
requires authentication

Get the ID type the signatory used for biometric verification during registration

Headers

Authorization
Example:
Bearer {YOUR_ACCESS_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request GET \
    --get "https://dev-tonoteca.gettonote.com/api/v1/digital-id/access-recovery/verification" \
    --header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"identity\": \"1e487525-7c87-4798-8df4-46e670c61075\"
}"
Example response:
{
    "identity": "1e487525-7c87-4798-8df4-46e670c61075",
    "message": "Registration completed."
}
{
    "message": "Unauthenticated."
}

Biometric Verification

POST
https://dev-tonoteca.gettonote.com
/api/v1/digital-id/access-recovery/verification/verify
requires authentication

Verify a signatory's identity via ID number (based on type) and facial recognition

Headers

Authorization
Example:
Bearer {YOUR_ACCESS_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://dev-tonoteca.gettonote.com/api/v1/digital-id/access-recovery/verification/verify" \
    --header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"identity\": \"1e487525-7c87-4798-8df4-46e670c61075\",
    \"id_number\": \"A09011994\",
    \"photo_string\": \"data:image\\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=\"
}"
Example response:
{
    "success": true,
    "message": "Biometric verification successful"
}
{
    "message": "Unauthenticated."
}
{
    "success": false,
    "message": "Biometric verification failed"
}

Verify OTP from Email

POST
https://dev-tonoteca.gettonote.com
/api/v1/digital-id/access-recovery/otp/email/verify
requires authentication

Verify the OTP from the prospective signatory's email

Headers

Authorization
Example:
Bearer {YOUR_ACCESS_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://dev-tonoteca.gettonote.com/api/v1/digital-id/access-recovery/otp/email/verify" \
    --header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"identity\": \"1e487525-7c87-4798-8df4-46e670c61075\",
    \"token\": \"123456\"
}"
Example response:
{
    "success": true,
    "message": "OTP verified successfully"
}
{
    "message": "Unauthenticated."
}
{
    "success": false,
    "message": "Could not verify OTP"
}

Signatory's Profile Details

GET
https://dev-tonoteca.gettonote.com
/api/v1/digital-id/access-recovery/profile
requires authentication

Get a signatory's profile details

Headers

Authorization
Example:
Bearer {YOUR_ACCESS_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request GET \
    --get "https://dev-tonoteca.gettonote.com/api/v1/digital-id/access-recovery/profile" \
    --header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"identity\": \"1e487525-7c87-4798-8df4-46e670c61075\"
}"
Example response:
{
    "data": {
        "name": "Mary Wiza",
        "organisation": "Zulauf-Morissette",
        "organisational_unit": "Municipal Clerk",
        "city": "Isobelburgh",
        "state": "Nevada",
        "country": "NG",
        "country_name": "Nigeria"
    }
}
{
    "message": "Unauthenticated."
}

Update Signatory's profile

PUT
https://dev-tonoteca.gettonote.com
/api/v1/digital-id/access-recovery/profile
requires authentication

Update a signatory's profile and generate new key pairs

Headers

Authorization
Example:
Bearer {YOUR_ACCESS_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request PUT \
    "https://dev-tonoteca.gettonote.com/api/v1/digital-id/access-recovery/profile" \
    --header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"identity\": \"1e487525-7c87-4798-8df4-46e670c61075\",
    \"name\": \"John Doe\",
    \"organisation\": \"Acme Inc\",
    \"organisational_unit\": \"Sales and Marketing\",
    \"city\": \"Ikeja\",
    \"state\": \"Lagos\",
    \"country\": \"NG\",
    \"consent\": false,
    \"callback_url\": \"https:\\/\\/example.com\\/callback\",
    \"meta\": {
        \"user_id\": 1,
        \"role\": \"admin\",
        \"subscription_plan\": \"basic\"
    },
    \"key_storage_type\": \"myself\",
    \"passphrase\": \"V0rt3x$unsh1n3#L1ght\",
    \"passphrase_hint\": \"Combines elements of nature with numeric and special characters.\"
}"
Example response:
{
    "message": "Profile updated. Download your private key",
    "key_storage_type": "myself",
    "private_key_url": "http://ca.test/api/v1/digital-id/private-key/eyJpdiI..."
}
{
    "message": "Profile updated and new private & public keys created",
    "key_storage_type": "assisted",
    "private_key_url": null
}
{
    "message": "Unauthenticated."
}

Helpers

Get Country List

GET
https://dev-tonoteca.gettonote.com
/api/v1/helpers/countries

Return an associative array (or dictionary, map, key-value pair etc) of country names with their respective ISO Alpha-2 code as the keys and names as the values

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://dev-tonoteca.gettonote.com/api/v1/helpers/countries" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "message": "Unauthenticated."
}
Headers
                                                            cache-control
                                                            : no-cache, private
                                                                                                                    content-type
                                                            : application/json
                                                         
{
    "message": "Bad hostname provided.",
    "exception": "Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException",
    "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php",
    "line": 493,
    "trace": [
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php",
            "line": 463,
            "function": "prepareException",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/nunomaduro/collision/src/Adapters/Laravel/ExceptionHandler.php",
            "line": 54,
            "function": "render",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
            "line": 51,
            "function": "render",
            "class": "NunoMaduro\\Collision\\Adapters\\Laravel\\ExceptionHandler",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 188,
            "function": "handleException",
            "class": "Illuminate\\Routing\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php",
            "line": 39,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\\Http\\Middleware\\TrustProxies",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 119,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 175,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 144,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 300,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 288,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 91,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 44,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 236,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 163,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 95,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 125,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 72,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 50,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Commands/GenerateDocumentation.php",
            "line": 53,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Container/Util.php",
            "line": 41,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 35,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 662,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 211,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/symfony/console/Command/Command.php",
            "line": 326,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 180,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/symfony/console/Application.php",
            "line": 1096,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/symfony/console/Application.php",
            "line": 324,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/symfony/console/Application.php",
            "line": 175,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php",
            "line": 201,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/app/staging/artisan",
            "line": 35,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}

Document Signing Type by Label

GET
https://dev-tonoteca.gettonote.com
/api/v1/helpers/document-signing/types/label

Return the document sign types with their respective labels

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://dev-tonoteca.gettonote.com/api/v1/helpers/document-signing/types/label" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "message": "Unauthenticated."
}
Headers
                                                            cache-control
                                                            : no-cache, private
                                                                                                                    content-type
                                                            : application/json
                                                         
{
    "message": "Bad hostname provided.",
    "exception": "Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException",
    "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php",
    "line": 493,
    "trace": [
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php",
            "line": 463,
            "function": "prepareException",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/nunomaduro/collision/src/Adapters/Laravel/ExceptionHandler.php",
            "line": 54,
            "function": "render",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
            "line": 51,
            "function": "render",
            "class": "NunoMaduro\\Collision\\Adapters\\Laravel\\ExceptionHandler",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 188,
            "function": "handleException",
            "class": "Illuminate\\Routing\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php",
            "line": 39,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\\Http\\Middleware\\TrustProxies",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 119,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 175,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 144,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 300,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 288,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 91,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 44,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 236,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 163,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 95,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 125,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 72,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 50,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Commands/GenerateDocumentation.php",
            "line": 53,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Container/Util.php",
            "line": 41,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 35,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 662,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 211,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/symfony/console/Command/Command.php",
            "line": 326,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 180,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/symfony/console/Application.php",
            "line": 1096,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/symfony/console/Application.php",
            "line": 324,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/symfony/console/Application.php",
            "line": 175,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php",
            "line": 201,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/app/staging/artisan",
            "line": 35,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}

Document Signing Type by Description

GET
https://dev-tonoteca.gettonote.com
/api/v1/helpers/document-signing/types/description

Return the document sign types with their respective descriptions

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://dev-tonoteca.gettonote.com/api/v1/helpers/document-signing/types/description" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "message": "Unauthenticated."
}
Headers
                                                            cache-control
                                                            : no-cache, private
                                                                                                                    content-type
                                                            : application/json
                                                         
{
    "message": "Bad hostname provided.",
    "exception": "Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException",
    "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php",
    "line": 493,
    "trace": [
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php",
            "line": 463,
            "function": "prepareException",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/nunomaduro/collision/src/Adapters/Laravel/ExceptionHandler.php",
            "line": 54,
            "function": "render",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
            "line": 51,
            "function": "render",
            "class": "NunoMaduro\\Collision\\Adapters\\Laravel\\ExceptionHandler",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 188,
            "function": "handleException",
            "class": "Illuminate\\Routing\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php",
            "line": 39,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\\Http\\Middleware\\TrustProxies",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 119,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 175,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 144,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 300,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 288,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 91,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 44,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 236,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 163,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 95,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 125,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 72,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 50,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Commands/GenerateDocumentation.php",
            "line": 53,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Container/Util.php",
            "line": 41,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 35,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 662,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 211,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/symfony/console/Command/Command.php",
            "line": 326,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 180,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/symfony/console/Application.php",
            "line": 1096,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/symfony/console/Application.php",
            "line": 324,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/symfony/console/Application.php",
            "line": 175,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php",
            "line": 201,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/app/staging/artisan",
            "line": 35,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}

List of Nigerian IDs

GET
https://dev-tonoteca.gettonote.com
/api/v1/helpers/id-types/nigeria

Return a list of Nigerian Identity types as a key value/label pair

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://dev-tonoteca.gettonote.com/api/v1/helpers/id-types/nigeria" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "message": "Unauthenticated."
}
Headers
                                                            cache-control
                                                            : no-cache, private
                                                                                                                    content-type
                                                            : application/json
                                                         
{
    "message": "Bad hostname provided.",
    "exception": "Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException",
    "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php",
    "line": 493,
    "trace": [
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php",
            "line": 463,
            "function": "prepareException",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/nunomaduro/collision/src/Adapters/Laravel/ExceptionHandler.php",
            "line": 54,
            "function": "render",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
            "line": 51,
            "function": "render",
            "class": "NunoMaduro\\Collision\\Adapters\\Laravel\\ExceptionHandler",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 188,
            "function": "handleException",
            "class": "Illuminate\\Routing\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php",
            "line": 39,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\\Http\\Middleware\\TrustProxies",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 119,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 175,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 144,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 300,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 288,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 91,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 44,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 236,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 163,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 95,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 125,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 72,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 50,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Commands/GenerateDocumentation.php",
            "line": 53,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Container/Util.php",
            "line": 41,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 35,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 662,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 211,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/symfony/console/Command/Command.php",
            "line": 326,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 180,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/symfony/console/Application.php",
            "line": 1096,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/symfony/console/Application.php",
            "line": 324,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/symfony/console/Application.php",
            "line": 175,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php",
            "line": 201,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/app/staging/artisan",
            "line": 35,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}

Key Storage Types

GET
https://dev-tonoteca.gettonote.com
/api/v1/helpers/key-storage/types

The available options for storing signatories' [private] keys

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://dev-tonoteca.gettonote.com/api/v1/helpers/key-storage/types" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "message": "Unauthenticated."
}
Headers
                                                            cache-control
                                                            : no-cache, private
                                                                                                                    content-type
                                                            : application/json
                                                         
{
    "message": "Bad hostname provided.",
    "exception": "Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException",
    "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php",
    "line": 493,
    "trace": [
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php",
            "line": 463,
            "function": "prepareException",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/nunomaduro/collision/src/Adapters/Laravel/ExceptionHandler.php",
            "line": 54,
            "function": "render",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
            "line": 51,
            "function": "render",
            "class": "NunoMaduro\\Collision\\Adapters\\Laravel\\ExceptionHandler",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 188,
            "function": "handleException",
            "class": "Illuminate\\Routing\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php",
            "line": 39,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\\Http\\Middleware\\TrustProxies",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 119,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 175,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 144,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 300,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 288,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 91,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 44,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 236,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 163,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 95,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 125,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 72,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 50,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Commands/GenerateDocumentation.php",
            "line": 53,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Container/Util.php",
            "line": 41,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 35,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 662,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 211,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/symfony/console/Command/Command.php",
            "line": 326,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 180,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/symfony/console/Application.php",
            "line": 1096,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/symfony/console/Application.php",
            "line": 324,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/symfony/console/Application.php",
            "line": 175,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php",
            "line": 201,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/app/staging/artisan",
            "line": 35,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}

OTP Types

GET
https://dev-tonoteca.gettonote.com
/api/v1/helpers/otp-types

List the OTP types available

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://dev-tonoteca.gettonote.com/api/v1/helpers/otp-types" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "message": "Unauthenticated."
}
Headers
                                                            cache-control
                                                            : no-cache, private
                                                                                                                    content-type
                                                            : application/json
                                                         
{
    "message": "Bad hostname provided.",
    "exception": "Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException",
    "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php",
    "line": 493,
    "trace": [
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php",
            "line": 463,
            "function": "prepareException",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/nunomaduro/collision/src/Adapters/Laravel/ExceptionHandler.php",
            "line": 54,
            "function": "render",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
            "line": 51,
            "function": "render",
            "class": "NunoMaduro\\Collision\\Adapters\\Laravel\\ExceptionHandler",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 188,
            "function": "handleException",
            "class": "Illuminate\\Routing\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php",
            "line": 39,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\\Http\\Middleware\\TrustProxies",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 119,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 175,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 144,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 300,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 288,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 91,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 44,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 236,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 163,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 95,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 125,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 72,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 50,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/knuckleswtf/scribe/src/Commands/GenerateDocumentation.php",
            "line": 53,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Container/Util.php",
            "line": 41,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 35,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 662,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 211,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/symfony/console/Command/Command.php",
            "line": 326,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 180,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/symfony/console/Application.php",
            "line": 1096,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/symfony/console/Application.php",
            "line": 324,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/symfony/console/Application.php",
            "line": 175,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/app/staging/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php",
            "line": 201,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/app/staging/artisan",
            "line": 35,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}

Signing

Signatory's Key Storage Type

GET
https://dev-tonoteca.gettonote.com
/api/v1/signing/key-storage-type
requires authentication

Get the storage type chosen by a signatory

Headers

Authorization
Example:
Bearer {YOUR_ACCESS_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request GET \
    --get "https://dev-tonoteca.gettonote.com/api/v1/signing/key-storage-type" \
    --header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"identity\": \"1e487525-7c87-4798-8df4-46e670c61075\"
}"
Example response:
{
    "success": true,
    "key_storage_ type": "myself"
}
{
    "message": "Unauthenticated."
}

Documents


Signatory's Phone Number

GET
https://dev-tonoteca.gettonote.com
/api/v1/signing/documents/phone-number
requires authentication

A masked phone number of the signatory

Headers

Authorization
Example:
Bearer {YOUR_ACCESS_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request GET \
    --get "https://dev-tonoteca.gettonote.com/api/v1/signing/documents/phone-number" \
    --header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"identity\": \"1e487525-7c87-4798-8df4-46e670c61075\"
}"
Example response:
{
    "success": true,
    "phone_number": "+2348*******89"
}
{
    "message": "Unauthenticated."
}
{
    "success": false,
    "message": "Signatory not found"
}

Send OTP to Signatory

Deprecated
POST
https://dev-tonoteca.gettonote.com
/api/v1/signing/documents/otp
requires authentication

Send OTP SMS or call to the signatory's phone number

Headers

Authorization
Example:
Bearer {YOUR_ACCESS_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://dev-tonoteca.gettonote.com/api/v1/signing/documents/otp" \
    --header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"identity\": \"1e487525-7c87-4798-8df4-46e670c61075\",
    \"type\": \"call\"
}"
Example response:
{
    "success": true,
    "message": "OTP sent successfully"
}
{
    "message": "Unauthenticated."
}
{
    "success": false,
    "message": "Could not send OTP"
}

Verify OTP

Deprecated
POST
https://dev-tonoteca.gettonote.com
/api/v1/signing/documents/otp/verify
requires authentication

Verify OTP token sent to phone of the signatory.

Headers

Authorization
Example:
Bearer {YOUR_ACCESS_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://dev-tonoteca.gettonote.com/api/v1/signing/documents/otp/verify" \
    --header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"identity\": \"1e487525-7c87-4798-8df4-46e670c61075\",
    \"token\": \"123456\"
}"
Example response:
{
    "success": true,
    "message": "OTP verified successfully"
}
{
    "message": "Unauthenticated."
}
{
    "message": "Unauthenticated."
}
{
    "success": false,
    "message": "Could not verify OTP"
}

Certificate Creation: Self

POST
https://dev-tonoteca.gettonote.com
/api/v1/signing/documents/certificate/create/myself
requires authentication

Create a certificate for signing a document by a signatory who chose to download their private key.

Headers

Authorization
Example:
Bearer {YOUR_ACCESS_TOKEN}
Content-Type
Example:
multipart/form-data
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://dev-tonoteca.gettonote.com/api/v1/signing/documents/certificate/create/myself" \
    --header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "identity=1e487525-7c87-4798-8df4-46e670c61075"\
    --form "document_id=e228766c-1b06-4e96-b299-2e610b592def"\
    --form "certificate_passphrase=VigilantElephant253!"\
    --form "private_key=@/tmp/phpXyoirX" 
Example response:
{
    "success": true,
    "message": "Signature recorded"
}
{
    "success": false,
    "message": "Signatory's private key is hosted with us"
}
{
    "message": "Unauthenticated."
}

Certificate Creation: Assisted

POST
https://dev-tonoteca.gettonote.com
/api/v1/signing/documents/certificate/create/assisted
requires authentication

Create a certificate for signing a document by a signatory who has his private key saved with us.

Headers

Authorization
Example:
Bearer {YOUR_ACCESS_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://dev-tonoteca.gettonote.com/api/v1/signing/documents/certificate/create/assisted" \
    --header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"identity\": \"1e487525-7c87-4798-8df4-46e670c61075\",
    \"document_id\": \"e228766c-1b06-4e96-b299-2e610b592def\",
    \"certificate_passphrase\": \"VigilantElephant253!\",
    \"passphrase\": \"V0rt3x$unsh1n3#L1ght\"
}"
Example response:
{
    "success": true,
    "message": "Signature recorded"
}
{
    "success": false,
    "message": "Please upload private key"
}
{
    "success": false,
    "message": "Passphrase not correct",
    "passphrase_hint": "Your birthplace"
}
{
    "message": "Unauthenticated."
}

Delete Signatory

DELETE
https://dev-tonoteca.gettonote.com
/api/v1/signing/documents/certificate/delete/signatory
requires authentication

Remove all the details of a signatory from a document signing record. This deletes the certificate generated and all other records.

Headers

Authorization
Example:
Bearer {YOUR_ACCESS_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request DELETE \
    "https://dev-tonoteca.gettonote.com/api/v1/signing/documents/certificate/delete/signatory" \
    --header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"identity\": \"1e487525-7c87-4798-8df4-46e670c61075\",
    \"document_id\": \"e228766c-1b06-4e96-b299-2e610b592def\"
}"
Example response:
{
    "success": true,
    "message": "Signatory deleted from document"
}
{
    "message": "Unauthenticated."
}
{
    "success": false,
    "message": "Signatory record not found for given document"
}

Delete All Signatories

DELETE
https://dev-tonoteca.gettonote.com
/api/v1/signing/documents/certificate/delete/signatories
requires authentication

Delete all the signatories for a document. This deletes the certificates generated and all other records.

Headers

Authorization
Example:
Bearer {YOUR_ACCESS_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request DELETE \
    "https://dev-tonoteca.gettonote.com/api/v1/signing/documents/certificate/delete/signatories" \
    --header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"document_id\": \"e228766c-1b06-4e96-b299-2e610b592def\"
}"
Example response:
{
    "success": true,
    "message": "All signatories deleted from document"
}
{
    "message": "Unauthenticated."
}
{
    "success": false,
    "message": "Signatories record not found for given document"
}

Document Signing Certificate

POST
https://dev-tonoteca.gettonote.com
/api/v1/signing/documents/certificate/generate
requires authentication

Create a certificate for signing documents based on organisation credentials.

Headers

Authorization
Example:
Bearer {YOUR_ACCESS_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://dev-tonoteca.gettonote.com/api/v1/signing/documents/certificate/generate" \
    --header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"signatories\": \"897d0a4e-dffb-49dd-bf69-416b92bb8103,2738af7f-d393-4b55-8b79-adc07abfa547,f70afc88-7548-4da7-8d92-b4ce7efb922e\"
}"
Example response:
{
    "certificate": "*** Certificate string ***",
    "signatories": {
        "897d0a4e-dffb-49dd-bf69-416b92bb8103": "*** Certificate string ***",
        "2738af7f-d393-4b55-8b79-adc07abfa547": "*** Certificate string ***",
        "f70afc88-7548-4da7-8d92-b4ce7efb922e": "*** Certificate string ***"
    }
}
{
    "message": "Unauthenticated."
}
{
    "success": false,
    "message": "Organisation profile not found"
}
{
    "success": false,
    "message": "Private key not found"
}

Sign a PDF Document

POST
https://dev-tonoteca.gettonote.com
/api/v1/signing/documents/certificate/sign
requires authentication

Sign a document using a certificate.

Headers

Authorization
Example:
Bearer {YOUR_ACCESS_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://dev-tonoteca.gettonote.com/api/v1/signing/documents/certificate/sign" \
    --header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"document\": \"https:\\/\\/example.com\\/file.pdf\",
    \"signing_type\": 1,
    \"name\": \"John Doe\",
    \"location\": \"Lagos, Nigeria\",
    \"reason\": \"Testing CertAuth\",
    \"contact_info\": \"Area 11, 28 Port Harcourt Crescent, Off Gimbiya St, Garki, Abuja\",
    \"document_id\": \"e228766c-1b06-4e96-b299-2e610b592def\",
    \"certificate_passphrase\": \"VigilantElephant253!\"
}"
Example response:
{
    "success": true,
    "signed_pdf": "*** Base 64 string ***"
}
{
    "success": false,
    "message": "Could not decrypt certificate"
}
{
    "message": "Unauthenticated."
}
{
    "success": false,
    "message": "Organisation profile not found"
}
{
    "success": false,
    "message": "No signatories details found"
}