Sandbox mode

Sandbox Identity Verification enables you to simulate the identity verification process in a non-production environment. Any document created using sandbox OAuth credentials or sandbox API key will operate in sandbox mode. This mode ensures that you can evaluate the feature's capabilities without incurring costs associated with live mode usage.

Name Matching for Identity Verification:

In the identity verification process, name matching is used to verify the signer's name against their government-issued ID. To ensure smooth testing in sandbox mode, use the signer name Jenny Rosen for all test scenarios. This requirement overrides the typical name matching process for sandbox testing purposes.

Name matching ensures that the signer’s identity is verified accurately. In the sandbox environment, a predefined name allows consistent and predictable testing results.

curl --location 'https://api.boldsign.com/v1/document/send' \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: {your sandbox API key}' \
--data-raw '{
    "title": "Document title",
    "message": "This is a document message",
    "signers": [
        {
            "name": "Jenny Rosen",
            "emailAddress": "david@cubeflakes.com",
            "identityVerificationSettings": {
                "type": "EveryAccess",
                "maximumRetryCount": 10,
                "requireLiveCapture": true,
                "requireMatchingSelfie": true,
                "nameMatcher": "Strict"
            },
            "formFields": [
                {
                    "id": "TextBox1",
                    "fieldType": "Textbox",
                    "pageNumber": 1,
                    "bounds": {
                        "x": 50,
                        "y": 50,
                        "width": 200,
                        "height": 30
                    }
                }
            ]
        }
    ],
    "files": [
        "data:application/pdf;base64,JVBERi0xLjcKJcfs..." // Replace with your actual base64-encoded PDF content
    ]
}'
var apiClient = new ApiClient("https://api.boldsign.com", "{your sandbox API key}");
var documentClient = new DocumentClient(apiClient);

var textField = new FormField(
    id: "TextBox1",
    isReadOnly: true,
    type: FieldType.TextBox,
    pageNumber: 1,
    bounds: new Rectangle(x: 50, y: 50, width: 200, height: 30));

var idVerificationSettings = new IdentityVerificationSettings(
    type: IdentityVerificationType.EveryAccess,
    maximumRetryCount: 10,
    requireLiveCapture: true,
    requireMatchingSelfie: true,
    nameMatcher: NameVariation.Strict);

var signer = new DocumentSigner(
    signerName: "Jenny Rosen",
    signerType: SignerType.Signer,
    identityVerificationSettings: idVerificationSettings,
    signerEmail: "david@cubeflakes.com",
    formFields: new List<FormField>() { textField },
    locale: Locales.EN);

var documentSigners = new List<DocumentSigner>()
{
    signer,
};

var sendForSign = new SendForSign()
{
    Message = "please sign this",
    Title = "Agreement",
    HideDocumentId = false,
    Signers = documentSigners,
    Files = new List<IDocumentFile>()
    {
        new DocumentFileBytes()
        {
            ContentType = "application/pdf",
            FileName = "sample.pdf",
            FileData = fileStreamArray,
        },
    },
};

var documentCreated = await documentClient.SendDocumentAsync(sendForSign);
import requests

url = 'https://api.boldsign.com/v1/document/send'
headers = {
    'Content-Type': 'application/json',
    'X-API-KEY': '{your sandbox API key}'
}
data = {
    "title": "Document title",
    "message": "This is a document message",
    "signers": [
        {
            "name": "Jenny Rosen",
            "emailAddress": "david@cubeflakes.com",
            "identityVerificationSettings": {
                "type": "EveryAccess",
                "maximumRetryCount": 10,
                "requireLiveCapture": True,
                "requireMatchingSelfie": True,
                "nameMatcher": "Strict"
            },
            "formFields": [
                {
                    "id": "TextBox1",
                    "fieldType": "Textbox",
                    "pageNumber": 1,
                    "bounds": {
                        "x": 50,
                        "y": 50,
                        "width": 200,
                        "height": 30
                    }
                }
            ]
        }
    ],
    "files": [
        "data:application/pdf;base64,JVBERi0xLjcKJcfs..."
    ]
}

response = requests.post(url, headers=headers, json=data)

print(response.status_code)
print(response.json())
const axios = require('axios');

const url = 'https://api.boldsign.com/v1/document/send';
const headers = {
    'Content-Type': 'application/json',
    'X-API-KEY': '{your sandbox API key}'
};
const data = {
    "title": "Document title",
    "message": "This is a document message",
    "signers": [
        {
            "name": "Jenny Rosen",
            "emailAddress": "david@cubeflakes.com",
            "identityVerificationSettings": {
                "type": "EveryAccess",
                "maximumRetryCount": 10,
                "requireLiveCapture": true,
                "requireMatchingSelfie": true,
                "nameMatcher": "Strict"
            },
            "formFields": [
                {
                    "id": "TextBox1",
                    "fieldType": "Textbox",
                    "pageNumber": 1,
                    "bounds": {
                        "x": 50,
                        "y": 50,
                        "width": 200,
                        "height": 30
                    }
                }
            ]
        }
    ],
    "files": [
        "data:application/pdf;base64,JVBERi0xLjcKJcfs..."
    ]
};

axios.post(url, data, { headers })
    .then(response => {
        console.log(response.status);
        console.log(response.data);
    })
    .catch(error => {
        console.error('Error:', error.response ? error.response.data : error.message);
    });
<?php
require 'vendor/autoload.php';

use GuzzleHttp\Client;

$client = new Client();

$url = 'https://api.boldsign.com/v1/document/send';
$headers = [
    'Content-Type' => 'application/json',
    'X-API-KEY' => '{your sandbox API key}'
];
$data = [
    'title' => 'Document title',
    'message' => 'This is a document message',
    'signers' => [
        [
            'name' => 'Jenny Rosen',
            'emailAddress' => 'david@cubeflakes.com',
            'identityVerificationSettings' => [
                'type' => 'EveryAccess',
                'maximumRetryCount' => 10,
                'requireLiveCapture' => true,
                'requireMatchingSelfie' => true,
                'nameMatcher' => 'Strict'
            ],
            'formFields' => [
                [
                    'id' => 'TextBox1',
                    'fieldType' => 'Textbox',
                    'pageNumber' => 1,
                    'bounds' => [
                        'x' => 50,
                        'y' => 50,
                        'width' => 200,
                        'height' => 30
                    ]
                ]
            ]
        ]
    ],
    'files' => [
        'data:application/pdf;base64,JVBERi0xLjcKJcfs...'
    ]
];

try {
    $response = $client->post($url, [
        'headers' => $headers,
        'json' => $data
    ]);

    echo 'Status code: ' . $response->getStatusCode() . PHP_EOL;
    echo 'Response body: ' . $response->getBody() . PHP_EOL;
} catch (Exception $e) {
    echo 'Error: ' . $e->getMessage() . PHP_EOL;
}