Remote Signing is a solution for remote digital signature, digital signature of the signer stored on the provider’s Cloud system;
Signing speed is fast, meeting a large number of users;
Authentication of multi-factor and biometric security;
Support multi-platform running (Windows, MAC, Smartphone);
The solution has been implemented for many customers and services such as: Electronic social insurance, Electronic invoices, E-government, Hospitals … highly appreciated by customers;
Support for signing of multiple file formats: Word, Excel, Pdf, XML …;
Easy to integrate and deploy.
Example Header
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhNnZoQW8zRkc3dDEiLCJuYW1lIjoiSm9obiBEb2UiLCJpYXQiOjE0NzA1OTg5NzIsImV4cCI6MTQ3MDY4NTM3Mn0.ltA9zZmJKszBJuuV7pTWtY7LzLXrRUfebJDhy_jGMeM
/clients/login
Login
Content-Type: application/json
{
"username": "username",
"password": "password",
"rpCode": "TEST"
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"username": {
"type": "string",
"description": "Relying party username"
},
"password": {
"type": "string",
"description": "Relying party password"
},
"rpCode": {
"type": "string",
"description": "Relying party code"
}
},
"required": [
"username",
"password",
"rpCode"
]
}
200
Content-Type: application/json
{
"token": "SlNPTiB3ZWIgdG9rZW4="
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"token": {
"type": "string",
"description": "JSON web token"
}
},
"required": [
"token"
]
}
401
Content-Type: application/json
{
"error": {
"statusCode": "401",
"name": "UnauthorizedError",
"message": "Invalid username or password"
}
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"statusCode": {
"type": "string",
"description": "Error code"
},
"name": {
"type": "string",
"description": "Error name"
},
"message": {
"type": "string",
"description": "Error description"
}
}
}
}
}
/certificates/register
Register new certificate
Content-Type: application/json
{
"agreementDetails": {
"applicationForm": "UmVtb3RlIFNpZ25pbmcgU2VydmljZSBhcHBsaWNhdGlvbiBmb3Jt",
"authorizeLetter": "QXV0aG9yaXplIExldHRlciBieSBHb3Zlcm5tZW50L0NvcnBvcmF0ZQ==",
"budgetID": "1234567890",
"businessLicense": "QnVzaW5lc3NMaWNlbnNl",
"citizenID": "1234567890",
"country": "VN",
"email": "your@email.ext",
"location": "Cau giay, Ha Noi",
"organization": "EFY Viet Nam",
"organizationUnit": "'Development'",
"passportID": "'C1223456'",
"personalID": "'1234567890'",
"personalName": "Nguyen Van A",
"photoActivityDeclaration": "U2Nhbm5lZCBwaG90byBvZiDigJhJbml0aWFsIEFjdGl2aXR5L0FsdGVyYXRpb24gRGVjbGF0aW9u4oCZIHRoYXQgYXBwbGllZCBmb3IgY29ycG9yYXRlIGNlcnRpZmljYXRl",
"photoAuthorizeDelegate": "cGhvdG9BdXRob3JpemVE",
"photoIDCard": "U2Nhbm5lZCBwaG90byBvZiBJRCBDYXJkIHRoYXQgYXBwbGllZCBmb3IgcGVyc29uYWwgY2VydGlmaWNhdGU=",
"requestForm": "UmVtb3RlIFNpZ25pbmcgU2VydmljZSByZXF1ZXN0IGZvcm0gZm9yIHJlY292ZXJ5LCByZXZvY2F0aW9uIOKApg==",
"stateOrProvince": "Cau Giay, Ha Noi",
"taxID": "'0123456789'",
"telephoneNumber": "'0983456789'",
"title": "Director"
},
"email": "your@email.ext",
"mobileNo": "0123456789",
"sharedMode": 1,
"certificateProfile": "T2OSB21Y",
"ownerEmail": "owner@gmail....",
"ownerMobileNo": "123456789",
"ownerUUID": "343242384hdfajsdlfjsdlf",
"acceptedApps": [
"IHD",
"EBHXH"
],
"passCodeNotificationMethod": "EMAIL"
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"agreementDetails": {
"type": "object",
"properties": {
"applicationForm": {
"type": "string",
"description": "Remote Signing Service application form as Base64 String"
},
"authorizeLetter": {
"type": "string",
"description": "Authorize Letter by Government/Corporate as Base64 String"
},
"budgetID": {
"type": "string",
"description": "**maxLength: 32** Budget ID"
},
"businessLicense": {
"type": "string",
"description": "BusinessLicense Base64 String"
},
"citizenID": {
"type": "string"
},
"country": {
"type": "string",
"description": "**maxLength: 2** Country (Just two letter). E.g: VN"
},
"email": {
"type": "string",
"description": "Personal email"
},
"location": {
"type": "string",
"description": "location"
},
"organization": {
"type": "string",
"description": "Company name"
},
"organizationUnit": {
"type": "string",
"description": "Department name"
},
"passportID": {
"type": "string",
"description": "**maxLength: 32** Personal Passport ID"
},
"personalID": {
"type": "string",
"description": "Personal ID"
},
"personalName": {
"type": "string",
"description": "Name of customer"
},
"photoActivityDeclaration": {
"type": "string",
"description": "Scanned photo of ‘Initial Activity/Alteration Declation’ that applied for corporate certificate as Base64 string"
},
"photoAuthorizeDelegate": {
"type": "string",
"description": "photoAuthorizeD as Base64 string"
},
"photoIDCard": {
"type": "string",
"description": "Scanned photo of ID Card that applied for personal certificate as Base64 string"
},
"requestForm": {
"type": "string",
"description": "Remote Signing Service request form for recovery, revocation …"
},
"stateOrProvince": {
"type": "string",
"description": "City or Province"
},
"taxID": {
"type": "string",
"description": "**maxLength: 32** Tax ID"
},
"telephoneNumber": {
"type": "string",
"description": "Personal phone number"
},
"title": {
"type": "string",
"description": "Title of employee"
}
},
"description": "Customer information. This one will be used as certificate information"
},
"email": {
"type": "string",
"description": "**maxLength: 128** Email of client/customer and used for Email Authorize Code authentication. In case of the Relying Party keep the customer information confidentially, it should be absence"
},
"mobileNo": {
"type": "string",
"description": "**maxLength: 16** Mobile Number of client/customer. Known as contact address and used for SMS Authorize Code authentication.. In case of the Relying Party keep the customer information confidentially, it should be absence"
},
"sharedMode": {
"type": "number",
"enum": [
1,
2,
3
],
"default": 1,
"description": "Which sharing mode applied to this agreement in the Remote Signing service."
},
"certificateProfile": {
"type": "string",
"enum": [
"T2OSB21Y",
"T2OSB22Y",
"T2OSB23Y",
"T2PSB21Y",
"T2PSB22Y",
"T2PSB23Y",
"T2SFB21Y",
"T2SFB22Y",
"T2SFB23Y"
],
"description": "The profile of certificate will be used to enroll. Once this parameter is absence, the default certificate profile is used based on RelyingParty properties"
},
"ownerEmail": {
"type": "string",
"description": "email of owner"
},
"ownerMobileNo": {
"type": "string",
"description": "mobile of owner"
},
"ownerUUID": {
"type": "string",
"description": "uuid of owner"
},
"acceptedApps": {
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
}
],
"description": "accepted applications"
},
"passCodeNotificationMethod": {
"type": "string",
"enum": [
"EMAIL",
"SMS"
],
"default": "1",
"description": "PIN code recieve method"
}
},
"required": [
"agreementDetails",
"email",
"mobileNo",
"certificateProfile",
"ownerEmail",
"ownerMobileNo",
"ownerUUID"
]
}
200
Content-Type: application/json
{
"responseCode": 1007,
"responseMessage": "REQUEST ACCEPTED",
"billCode": "EFY_CA",
"timestamp": "2020-02-28T13:28:42+07:00",
"status": true,
"csr": "Q1NSIHdpbGwgYmUgcmVzcG9uZWQgaWYgdGhlIGNzclJlcXVpcmVkIHNldCBUUlVFIGluIHRoZSByZXF1ZXN0Lg==",
"ownerUUID": "343242384hdfajsdlfjsdlf",
"agreementUUID": "13ae13a443e2"
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"responseCode": {
"type": "number",
"description": "Code describes the result. Normally. Remote Signing will response REQUEST ACCEPTED"
},
"responseMessage": {
"type": "string",
"description": "Message describes the result in detail"
},
"billCode": {
"type": "string",
"description": "200221112613-3540-601895 (string, required) - Receipt for each transaction"
},
"timestamp": {
"type": "string",
"description": "Current timestamp"
},
"status": {
"type": "boolean",
"description": "Status of Result (true: Success, false: Error)"
},
"csr": {
"type": "string",
"description": "CSR will be responed if the csrRequired set TRUE in the request."
},
"ownerUUID": {
"type": "string",
"description": "uuid of owner"
},
"agreementUUID": {
"type": "string",
"description": "Identify the client/customer/agreement number"
}
},
"required": [
"responseCode",
"ownerUUID",
"agreementUUID"
]
}
/certificates/change
Change certificate infomation
Content-Type: application/json
{
"agreementDetails": {
"applicationForm": "UmVtb3RlIFNpZ25pbmcgU2VydmljZSBhcHBsaWNhdGlvbiBmb3Jt",
"authorizeLetter": "QXV0aG9yaXplIExldHRlciBieSBHb3Zlcm5tZW50L0NvcnBvcmF0ZQ==",
"budgetID": "1234567890",
"businessLicense": "QnVzaW5lc3NMaWNlbnNl",
"citizenID": "1234567890",
"country": "VN",
"email": "your@email.ext",
"location": "Cau giay, Ha Noi",
"organization": "EFY Viet Nam",
"organizationUnit": "'Development'",
"passportID": "'C1223456'",
"personalID": "'1234567890'",
"personalName": "Nguyen Van A",
"photoActivityDeclaration": "U2Nhbm5lZCBwaG90byBvZiDigJhJbml0aWFsIEFjdGl2aXR5L0FsdGVyYXRpb24gRGVjbGF0aW9u4oCZIHRoYXQgYXBwbGllZCBmb3IgY29ycG9yYXRlIGNlcnRpZmljYXRl",
"photoAuthorizeDelegate": "cGhvdG9BdXRob3JpemVE",
"photoIDCard": "U2Nhbm5lZCBwaG90byBvZiBJRCBDYXJkIHRoYXQgYXBwbGllZCBmb3IgcGVyc29uYWwgY2VydGlmaWNhdGU=",
"requestForm": "UmVtb3RlIFNpZ25pbmcgU2VydmljZSByZXF1ZXN0IGZvcm0gZm9yIHJlY292ZXJ5LCByZXZvY2F0aW9uIOKApg==",
"stateOrProvince": "Cau Giay, Ha Noi",
"taxID": "'0123456789'",
"telephoneNumber": "'0983456789'",
"title": "Director"
},
"agreementUUID": "13ae13a443e2"
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"agreementDetails": {
"type": "object",
"properties": {
"applicationForm": {
"type": "string",
"description": "Remote Signing Service application form as Base64 String"
},
"authorizeLetter": {
"type": "string",
"description": "Authorize Letter by Government/Corporate as Base64 String"
},
"budgetID": {
"type": "string",
"description": "**maxLength: 32** Budget ID"
},
"businessLicense": {
"type": "string",
"description": "BusinessLicense Base64 String"
},
"citizenID": {
"type": "string"
},
"country": {
"type": "string",
"description": "**maxLength: 2** Country (Just two letter). E.g: VN"
},
"email": {
"type": "string",
"description": "Personal email"
},
"location": {
"type": "string",
"description": "location"
},
"organization": {
"type": "string",
"description": "Company name"
},
"organizationUnit": {
"type": "string",
"description": "Department name"
},
"passportID": {
"type": "string",
"description": "**maxLength: 32** Personal Passport ID"
},
"personalID": {
"type": "string",
"description": "Personal ID"
},
"personalName": {
"type": "string",
"description": "Name of customer"
},
"photoActivityDeclaration": {
"type": "string",
"description": "Scanned photo of ‘Initial Activity/Alteration Declation’ that applied for corporate certificate as Base64 string"
},
"photoAuthorizeDelegate": {
"type": "string",
"description": "photoAuthorizeD as Base64 string"
},
"photoIDCard": {
"type": "string",
"description": "Scanned photo of ID Card that applied for personal certificate as Base64 string"
},
"requestForm": {
"type": "string",
"description": "Remote Signing Service request form for recovery, revocation …"
},
"stateOrProvince": {
"type": "string",
"description": "City or Province"
},
"taxID": {
"type": "string",
"description": "**maxLength: 32** Tax ID"
},
"telephoneNumber": {
"type": "string",
"description": "Personal phone number"
},
"title": {
"type": "string",
"description": "Title of employee"
}
},
"description": "Customer information. This one will be used as certificate information"
},
"agreementUUID": {
"type": "string",
"description": "Identify the client/customer/agreement number"
}
},
"required": [
"agreementDetails",
"agreementUUID"
]
}
200
Content-Type: application/json
{
"responseCode": 1007,
"responseMessage": "REQUEST ACCEPTED",
"billCode": "EFY_CA",
"timestamp": "2020-02-28T13:28:42+07:00",
"status": true,
"csr": "Q1NSIHdpbGwgYmUgcmVzcG9uZWQgaWYgdGhlIGNzclJlcXVpcmVkIHNldCBUUlVFIGluIHRoZSByZXF1ZXN0Lg==",
"ownerUUID": "343242384hdfajsdlfjsdlf",
"agreementUUID": "13ae13a443e2"
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"responseCode": {
"type": "number",
"description": "Code describes the result. Normally. Remote Signing will response REQUEST ACCEPTED"
},
"responseMessage": {
"type": "string",
"description": "Message describes the result in detail"
},
"billCode": {
"type": "string",
"description": "200221112613-3540-601895 (string, required) - Receipt for each transaction"
},
"timestamp": {
"type": "string",
"description": "Current timestamp"
},
"status": {
"type": "boolean",
"description": "Status of Result (true: Success, false: Error)"
},
"csr": {
"type": "string",
"description": "CSR will be responed if the csrRequired set TRUE in the request."
},
"ownerUUID": {
"type": "string",
"description": "uuid of owner"
},
"agreementUUID": {
"type": "string",
"description": "Identify the client/customer/agreement number"
}
},
"required": [
"responseCode",
"ownerUUID",
"agreementUUID"
]
}
/certificates/change-pin
Change Account Passcode
Content-Type: application/json
{
"agreementUUID": "13ae13a443e2",
"currentPasscode": "Hello, world!",
"newPasscode": "Hello, world!"
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"agreementUUID": {
"type": "string",
"description": "Identify the client/customer/agreement number"
},
"currentPasscode": {
"type": "string",
"description": "Current passcode"
},
"newPasscode": {
"type": "string",
"description": "New Passcode"
}
},
"required": [
"agreementUUID",
"currentPasscode",
"newPasscode"
]
}
200
Content-Type: application/json
{
"responseCode": 1007,
"responseMessage": "REQUEST ACCEPTED",
"billCode": "EFY_CA",
"timestamp": "2020-02-28T13:28:42+07:00",
"status": true,
"remainingCounter": 1
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"responseCode": {
"type": "number",
"description": "Code describes the result. Normally. Remote Signing will response REQUEST ACCEPTED"
},
"responseMessage": {
"type": "string",
"description": "Message describes the result in detail"
},
"billCode": {
"type": "string",
"description": "200221112613-3540-601895 (string, required) - Receipt for each transaction"
},
"timestamp": {
"type": "string",
"description": "Current timestamp"
},
"status": {
"type": "boolean",
"description": "Status of Result (true: Success, false: Error)"
},
"remainingCounter": {
"type": "number",
"description": "Once changed Passcode successfully, this parameter will be the Max-Counter that already configured in the General Policy of Remote Signing serviceOnce changed Passcode failed, this parameter will be decreased ONE value, if this parameter reached ZERO, our agreement in Remote Signing will be blocked in the duration that already configured. Once this duration ended, our agreement will be unblocked automatically and we continued to use with current Passcode"
}
},
"required": [
"responseCode"
]
}
/certificates/get-detail
Get Certificate Detail
Content-Type: application/json
{
"agreementUUID": "13ae13a443e2"
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"agreementUUID": {
"type": "string",
"description": "Identify the client/customer/agreement number"
}
},
"required": [
"agreementUUID"
]
}
200
Content-Type: application/json
{
"responseCode": 1007,
"responseMessage": "REQUEST ACCEPTED",
"billCode": "EFY_CA",
"timestamp": "2020-02-28T13:28:42+07:00",
"status": true,
"certificateDN": "E.g: CN=Nguyen Van A, O=B Company,C=VN",
"certificateSerialNumber": "54010A5560E78C1DAC82237E280A775F",
"certificateThumbprint": "B72E67D9DE53332B632A7863F7BF5AA77AD0D08C",
"validFrom": "2020-02-26T16:03:05+07:00",
"validTo": "2021-02-25T16:03:05+07:00",
"issuerDN": "CN=Mobile-ID Trusted Network, O=MOBILE-ID,C=VN",
"certificate": "`MIIFCDCCA/CgAwIBAgIQVAEKVWDnjB2sgiN+KAp3XzANBgkqhkiG9w0BAQsFADBwMQswCQYDVQQGEwJWTjEOMAwGA1UECAwFSGFub2kxLzAtBgNVBAoMJlZpZXRuYW0gRUZZIEluZm9ybWF0aWNzIFRlY2hub2xvZ3kgSlNDMQ8wDQYDVQQLDAZFRlktQ0ExDzANBgNVBAMMBkVGWS1DQTAeFw0yMDAyMjYwOTAzMDVaFw0yMTAyMjUwOTAzMDVaMIG9MQswCQYDVQQGEwJWTjESMBAGA1UECAwJSMOgIE7hu5lpMRIwEAYDVQQHDAlIw6AgTuG7mWkxITAfBgNVBAoMGFRy4buLbmggUXVhbmcgVMOibihURVNUKTEhMB8GA1UEAwwYVHLhu4tuaCBRdWFuZyBUw6JuKFRFU1QpMR4wHAYKCZImiZPyLGQBAQwOTVNUOjAxMDI1MTkwNDExIDAeBgkqhkiG9w0BCQEWEXRhbnRxMUBtc2IuY29tLnZuMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsJR5TAL1k8bOe/XWqQOt+Tcb6bD+ewshla8Wtb0ra+HtsK95A53v+HpqaWq56JGCj2hf/JKPjY1AgKk0hhMWBJ5zEaY2T9NilTY9Xhg5JOVCKYhSCCWnBbCDvpX1v2AJhXsdGIGfODvN3IXWTHuibXbx83ySg/kuU85OYKtkkN+hetZ1VP5YhJ+pYTsDsN7AO1cAWFcwUJ6LVioBGFExYor9yIy4wAnVrtdLRcDB+k5I5M4F50tnV6WonRKJr2Kgr8donxrpacUOLSx/82hnjC0Ao06V/4gK5mTULTKaKVd6/81ojZaSC/LqomvMTiNh/VmGRRHC5XyH3h80wnNB+wIDAQABo4IBTjCCAUowDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBSVZcCLWVCoN6j/HF2jLqiErg+oHzBjBggrBgEFBQcBAQRXMFUwMQYIKwYBBQUHMAKGJWh0dHA6Ly92YS5lZnljYS52bi9jZXJ0cy9lZnljYTI1Ni5jcnQwIAYIKwYBBQUHMAGGFGh0dHA6Ly9vY3NwLmVmeWNhLnZuMBwGA1UdEQQVMBOBEXRhbnRxMUBtc2IuY29tLnZuMBgGA1UdIAQRMA8wDQYLKwYBBAGB7QMBCgEwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMC4GA1UdHwQnMCUwI6AhoB+GHWh0dHA6Ly92YS5lZnljYS52bi9wdWIvQ1JMMjU2MB0GA1UdDgQWBBRPPntMvfBNLV4vbgbKNtSELRAacDAOBgNVHQ8BAf8EBAMCBeAwDQYJKoZIhvcNAQELBQADggEBAKRAweGZff+FUKFujeFTQrm8oJ/SvekG+gBKPLpHfjJz4Pw5EDfjiRV3hh86iUYDziRlVOFuMShwDCssJK3ru+rfpvlQHEPsK4LQ8lj6SEbUEfoMRq7fU1CPx8JjHPcFDVV7zb0H8+5HAUM1Llr84Sqocve+AGHMZKf4GafDAT4GLxR7vENB1gWBnfI6ZFQKUWPNcomPvEEbV0Buxcvu3SRTQFsYt4HCf3XU6xMeLzb1g7MsgE0ZjtFBwv7AoJCo2BIk4NJVJ5i0QIqxFkYeXczo8cIDDRr7bMqiccQeNGsaQMEvz+n1gnk+BgwkmRjASEHgtIJhWeNhZo6QMZjtbjw=",
"sharedMode": 1,
"authModeSupported": [
""
]
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"responseCode": {
"type": "number",
"description": "Code describes the result. Normally. Remote Signing will response REQUEST ACCEPTED"
},
"responseMessage": {
"type": "string",
"description": "Message describes the result in detail"
},
"billCode": {
"type": "string",
"description": "200221112613-3540-601895 (string, required) - Receipt for each transaction"
},
"timestamp": {
"type": "string",
"description": "Current timestamp"
},
"status": {
"type": "boolean",
"description": "Status of Result (true: Success, false: Error)"
},
"certificateDN": {
"type": "string",
"description": "`Certificate Distinguished Name (DN). E.g: CN=Nguyen Van A, O=B Company,C=VN`"
},
"certificateSerialNumber": {
"type": "string",
"description": "`Certificate serial number E.g: 5405ABCDEF`"
},
"certificateThumbprint": {
"type": "string",
"description": "Certificate thumprint (certificate hash)"
},
"validFrom": {
"type": "string",
"description": "The date of certificate begin to be valid"
},
"validTo": {
"type": "string",
"description": "The date of certificate begin to be expired"
},
"issuerDN": {
"type": "string",
"description": "`Issuer Certifcate Distinguished Name (DN) E.g: CN=Mobile-ID Trusted Network, O=MOBILE-ID,C=VN`"
},
"certificate": {
"type": "string",
"description": "` (string, optional) - certificate"
},
"sharedMode": {
"type": "number",
"enum": [
1,
2,
3
],
"default": 1,
"description": "Which sharing mode applied to this agreement in the Remote Signing service."
},
"authModeSupported": {
"type": "array",
"items": {
"type": "string",
"enum": [
"EXPLICIT/PIN",
"EXPLICIT/OTP-SMS",
"EXPLICIT/OTP-EMAIL"
]
},
"description": "Specifies one of the authorization modes"
}
},
"required": [
"responseCode"
]
}
/certificates/forget-pin
Forget Pin Certificate
Content-Type: application/json
{
"agreementUUID": "13ae13a443e2",
"notificationMessage": "Your new Passcode: {Passcode}. New Passcode is valid within 30 days",
"notificationSubject": "EFY - Authorization Code"
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"agreementUUID": {
"type": "string",
"description": "Identify the client/customer/agreement number"
},
"notificationMessage": {
"type": "string",
"description": "Message contains randomly new Passcode will be sent to customer’s Email. New Passcode is generated on Remote Signing and embedded into template. E.g: Your new Passcode: {Passcode}. New Passcode is valid within 30 days."
},
"notificationSubject": {
"type": "string",
"description": "This one is used as Email subject for forget Passcode notification. It should be used in case of RelyingParty used their owned SMTP server for notify customer"
}
},
"required": [
"agreementUUID"
]
}
200
Content-Type: application/json
{
"responseCode": 1007,
"responseMessage": "REQUEST ACCEPTED",
"billCode": "EFY_CA",
"timestamp": "2020-02-28T13:28:42+07:00",
"status": true
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"responseCode": {
"type": "number",
"description": "Code describes the result. Normally. Remote Signing will response REQUEST ACCEPTED"
},
"responseMessage": {
"type": "string",
"description": "Message describes the result in detail"
},
"billCode": {
"type": "string",
"description": "200221112613-3540-601895 (string, required) - Receipt for each transaction"
},
"timestamp": {
"type": "string",
"description": "Current timestamp"
},
"status": {
"type": "boolean",
"description": "Status of Result (true: Success, false: Error)"
}
},
"required": [
"responseCode"
]
}
/certificates/renew
Renew Certificate
Content-Type: application/json
{
"agreementUUID": "13ae13a443e2",
"certificateProfile": "T2OSB21Y"
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"agreementUUID": {
"type": "string",
"description": "Identify the client/customer/agreement number"
},
"certificateProfile": {
"type": "string",
"enum": [
"T2OSB21Y",
"T2OSB22Y",
"T2OSB23Y",
"T2PSB21Y",
"T2PSB22Y",
"T2PSB23Y",
"T2SFB21Y",
"T2SFB22Y",
"T2SFB23Y"
],
"description": "The profile of certificate will be used to enroll. Once this parameter is absence, the default certificate profile is used based on RelyingParty properties"
}
},
"required": [
"agreementUUID",
"certificateProfile"
]
}
200
Content-Type: application/json
{
"responseCode": 1007,
"responseMessage": "REQUEST ACCEPTED",
"billCode": "EFY_CA",
"timestamp": "2020-02-28T13:28:42+07:00",
"status": true
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"responseCode": {
"type": "number",
"description": "Code describes the result. Normally. Remote Signing will response REQUEST ACCEPTED"
},
"responseMessage": {
"type": "string",
"description": "Message describes the result in detail"
},
"billCode": {
"type": "string",
"description": "200221112613-3540-601895 (string, required) - Receipt for each transaction"
},
"timestamp": {
"type": "string",
"description": "Current timestamp"
},
"status": {
"type": "boolean",
"description": "Status of Result (true: Success, false: Error)"
}
},
"required": [
"responseCode"
]
}
/certificates/revoke
Revoke Certificate
Content-Type: application/json
{
"agreementUUID": "13ae13a443e2"
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"agreementUUID": {
"type": "string",
"description": "Identify the client/customer/agreement number"
}
},
"required": [
"agreementUUID"
]
}
200
Content-Type: application/json
{
"responseCode": 1007,
"responseMessage": "REQUEST ACCEPTED",
"billCode": "EFY_CA",
"timestamp": "2020-02-28T13:28:42+07:00",
"status": true
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"responseCode": {
"type": "number",
"description": "Code describes the result. Normally. Remote Signing will response REQUEST ACCEPTED"
},
"responseMessage": {
"type": "string",
"description": "Message describes the result in detail"
},
"billCode": {
"type": "string",
"description": "200221112613-3540-601895 (string, required) - Receipt for each transaction"
},
"timestamp": {
"type": "string",
"description": "Current timestamp"
},
"status": {
"type": "boolean",
"description": "Status of Result (true: Success, false: Error)"
}
},
"required": [
"responseCode"
]
}
/certificates/enable
Enable Certificate
Content-Type: application/json
{
"agreementUUID": "13ae13a443e2"
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"agreementUUID": {
"type": "string",
"description": "Identify the client/customer/agreement number"
}
},
"required": [
"agreementUUID"
]
}
200
Content-Type: application/json
{
"responseCode": 1007,
"responseMessage": "REQUEST ACCEPTED",
"billCode": "EFY_CA",
"timestamp": "2020-02-28T13:28:42+07:00",
"status": true
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"responseCode": {
"type": "number",
"description": "Code describes the result. Normally. Remote Signing will response REQUEST ACCEPTED"
},
"responseMessage": {
"type": "string",
"description": "Message describes the result in detail"
},
"billCode": {
"type": "string",
"description": "200221112613-3540-601895 (string, required) - Receipt for each transaction"
},
"timestamp": {
"type": "string",
"description": "Current timestamp"
},
"status": {
"type": "boolean",
"description": "Status of Result (true: Success, false: Error)"
}
},
"required": [
"responseCode"
]
}
/certificates/disable
Disable Certificate
Content-Type: application/json
{
"agreementUUID": "13ae13a443e2"
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"agreementUUID": {
"type": "string",
"description": "Identify the client/customer/agreement number"
}
},
"required": [
"agreementUUID"
]
}
200
Content-Type: application/json
{
"responseCode": 1007,
"responseMessage": "REQUEST ACCEPTED",
"billCode": "EFY_CA",
"timestamp": "2020-02-28T13:28:42+07:00",
"status": true
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"responseCode": {
"type": "number",
"description": "Code describes the result. Normally. Remote Signing will response REQUEST ACCEPTED"
},
"responseMessage": {
"type": "string",
"description": "Message describes the result in detail"
},
"billCode": {
"type": "string",
"description": "200221112613-3540-601895 (string, required) - Receipt for each transaction"
},
"timestamp": {
"type": "string",
"description": "Current timestamp"
},
"status": {
"type": "boolean",
"description": "Status of Result (true: Success, false: Error)"
}
},
"required": [
"responseCode"
]
}
/signing/file
Sign File
Content-Type: application/json
{
"agreementUUID": "13ae13a443e2",
"authMode": "Hello, world!",
"authorizeCode": "12345678",
"mimeType": "application/pdf",
"signingFileData": "RmlsZSB0aGF0IHdpbGwgYmUgc2lnbmVk",
"signCloudMetaData": {
"'singletonSigning'": {
"entry": [
{
"key": "SIGNATUREIMAGE",
"value": "0,0,300,60"
}
]
},
"'counterSigning'": {
"entry": [
{
"key": "SIGNATUREIMAGE",
"value": "0,0,300,60"
}
]
}
},
"notificationSubject": "Authorization",
"notificationTemplate": "Your authorize code: {AuthorizeCode}. Authorize Code is valid within 5 minutes",
"signingApp": "IHD"
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"agreementUUID": {
"type": "string",
"description": "Identify the client/customer/agreement number"
},
"authMode": {
"type": "string",
"enum": [
"EXPLICIT/PIN",
"EXPLICIT/OTP-SMS",
"EXPLICIT/OTP-EMAIL"
],
"default": "EXPLICIT/PIN",
"description": "Specifies one of the authorization modes."
},
"authorizeCode": {
"type": "string",
"description": "Authorize Code provided by customer. In this case of passcode (EXPLICIT/PIN) is used, authorize code is passcode"
},
"mimeType": {
"type": "string",
"description": "In case of PDF signer, mimeType is ‘application/pdf’"
},
"signingFileData": {
"type": "string",
"description": "File that will be signed as Base64 string"
},
"signCloudMetaData": {
"type": "object",
"properties": {
"'singletonSigning'": {
"type": "object",
"properties": {
"entry": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "key"
},
"value": {
"type": "string",
"description": "value"
}
}
}
}
},
"description": "Signing meta data for customer signature"
},
"'counterSigning'": {
"type": "object",
"properties": {
"entry": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "key"
},
"value": {
"type": "string",
"description": "value"
}
}
}
}
},
"description": "Meta data for counter signing"
}
},
"description": "SignCloudMetaData contains additional signer properties which are used for PDF signature display: Coordinate, Background image, Signer location, Signer reason, Text color. In case of XML sigining, it will indicate which type should be applied XMLDSig, XML-XaDES, signature zone Once this parameter is not used, Remote Signing should use the default value that already configured in the system. In case of counter signing process, SignCloudMetaData included 2 MetaDatas for customer and Relying Party signer properties"
},
"notificationSubject": {
"type": "string",
"description": "This parameter is used as Email subject for signing authorization. If OTP Email is used, this parameter is mandatory It should be used in case of the Remote Signing will use owned SMTP to send OTP Email to customer. ."
},
"notificationTemplate": {
"type": "string",
"description": "Message contains Authorize Code will be sent to customer’s Phone/Email. Authorize Code is generated on Remote Signing and embedded into template. E.g: Your authorize code: {AuthorizeCode}. Authorize Code is valid within 5 minutes"
},
"signingApp": {
"type": "string",
"description": "signing application"
}
},
"required": [
"agreementUUID",
"authMode",
"mimeType",
"signingFileData"
]
}
Case 1: Sign PDF File
Content-Type: application/json
{
"agreementUUID": "13ae13a443e2",
"authMode": "EXPLICIT/PIN",
"authorizeCode": "12345678",
"mimeType": "application/pdf",
"signingFileData": "JVBERi0xLjMNCiXi48/TDQoNCjEgMCBvYmoNCjw8DQovVHlwZSAvQ2F0YWxvZw0KL091dGxpbmVzIDIgMCBSDQovUGFnZXMgMyAwIFINCj4+DQplbmRvYmoNCg0KMiAwIG9iag0KPDwNCi9UeXBlIC9PdXRsaW5lcw0KL0NvdW50IDANCj4+DQplbmRvYmoNCg0KMyAwIG9iag0KPDwNCi9UeXBlIC9QYWdlcw0KL0NvdW50IDINCi9LaWRzIFsgNCAwIFIgNiAwIFIgXSANCj4+DQplbmRvYmoNCg0KNCAwIG9iag0KPDwNCi9UeXBlIC9QYWdlDQovUGFyZW50IDMgMCBSDQovUmVzb3VyY2VzIDw8DQovRm9udCA8PA0KL0YxIDkgMCBSIA0KPj4NCi9Qcm9jU2V0IDggMCBSDQo+Pg0KL01lZGlhQm94IFswIDAgNjEyLjAwMDAgNzkyLjAwMDBdDQovQ29udGVudHMgNSAwIFINCj4+DQplbmRvYmoNCg0KNSAwIG9iag0KPDwgL0xlbmd0aCAxMDc0ID4+DQpzdHJlYW0NCjIgSg0KQlQNCjAgMCAwIHJnDQovRjEgMDAyNyBUZg0KNTcuMzc1MCA3MjIuMjgwMCBUZA0KKCBBIFNpbXBsZSBQREYgRmlsZSApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY4OC42MDgwIFRkDQooIFRoaXMgaXMgYSBzbWFsbCBkZW1vbnN0cmF0aW9uIC5wZGYgZmlsZSAtICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNjY0LjcwNDAgVGQNCigganVzdCBmb3IgdXNlIGluIHRoZSBWaXJ0dWFsIE1lY2hhbmljcyB0dXRvcmlhbHMuIE1vcmUgdGV4dC4gQW5kIG1vcmUgKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA2NTIuNzUyMCBUZA0KKCB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDYyOC44NDgwIFRkDQooIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNjE2Ljg5NjAgVGQNCiggdGV4dC4gQW5kIG1vcmUgdGV4dC4gQm9yaW5nLCB6enp6ei4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNjA0Ljk0NDAgVGQNCiggbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDU5Mi45OTIwIFRkDQooIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNTY5LjA4ODAgVGQNCiggQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA1NTcuMTM2MCBUZA0KKCB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBFdmVuIG1vcmUuIENvbnRpbnVlZCBvbiBwYWdlIDIgLi4uKSBUag0KRVQNCmVuZHN0cmVhbQ0KZW5kb2JqDQoNCjYgMCBvYmoNCjw8DQovVHlwZSAvUGFnZQ0KL1BhcmVudCAzIDAgUg0KL1Jlc291cmNlcyA8PA0KL0ZvbnQgPDwNCi9GMSA5IDAgUiANCj4+DQovUHJvY1NldCA4IDAgUg0KPj4NCi9NZWRpYUJveCBbMCAwIDYxMi4wMDAwIDc5Mi4wMDAwXQ0KL0NvbnRlbnRzIDcgMCBSDQo+Pg0KZW5kb2JqDQoNCjcgMCBvYmoNCjw8IC9MZW5ndGggNjc2ID4+DQpzdHJlYW0NCjIgSg0KQlQNCjAgMCAwIHJnDQovRjEgMDAyNyBUZg0KNTcuMzc1MCA3MjIuMjgwMCBUZA0KKCBTaW1wbGUgUERGIEZpbGUgMiApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY4OC42MDgwIFRkDQooIC4uLmNvbnRpbnVlZCBmcm9tIHBhZ2UgMS4gWWV0IG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA2NzYuNjU2MCBUZA0KKCBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY2NC43MDQwIFRkDQooIHRleHQuIE9oLCBob3cgYm9yaW5nIHR5cGluZyB0aGlzIHN0dWZmLiBCdXQgbm90IGFzIGJvcmluZyBhcyB3YXRjaGluZyApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY1Mi43NTIwIFRkDQooIHBhaW50IGRyeS4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA2NDAuODAwMCBUZA0KKCBCb3JpbmcuICBNb3JlLCBhIGxpdHRsZSBtb3JlIHRleHQuIFRoZSBlbmQsIGFuZCBqdXN0IGFzIHdlbGwuICkgVGoNCkVUDQplbmRzdHJlYW0NCmVuZG9iag0KDQo4IDAgb2JqDQpbL1BERiAvVGV4dF0NCmVuZG9iag0KDQo5IDAgb2JqDQo8PA0KL1R5cGUgL0ZvbnQNCi9TdWJ0eXBlIC9UeXBlMQ0KL05hbWUgL0YxDQovQmFzZUZvbnQgL0hlbHZldGljYQ0KL0VuY29kaW5nIC9XaW5BbnNpRW5jb2RpbmcNCj4+DQplbmRvYmoNCg0KMTAgMCBvYmoNCjw8DQovQ3JlYXRvciAoUmF2ZSBcKGh0dHA6Ly93d3cubmV2cm9uYS5jb20vcmF2ZVwpKQ0KL1Byb2R1Y2VyIChOZXZyb25hIERlc2lnbnMpDQovQ3JlYXRpb25EYXRlIChEOjIwMDYwMzAxMDcyODI2KQ0KPj4NCmVuZG9iag0KDQp4cmVmDQowIDExDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMTkgMDAwMDAgbg0KMDAwMDAwMDA5MyAwMDAwMCBuDQowMDAwMDAwMTQ3IDAwMDAwIG4NCjAwMDAwMDAyMjIgMDAwMDAgbg0KMDAwMDAwMDM5MCAwMDAwMCBuDQowMDAwMDAxNTIyIDAwMDAwIG4NCjAwMDAwMDE2OTAgMDAwMDAgbg0KMDAwMDAwMjQyMyAwMDAwMCBuDQowMDAwMDAyNDU2IDAwMDAwIG4NCjAwMDAwMDI1NzQgMDAwMDAgbg0KDQp0cmFpbGVyDQo8PA0KL1NpemUgMTENCi9Sb290IDEgMCBSDQovSW5mbyAxMCAwIFINCj4+DQoNCnN0YXJ0eHJlZg0KMjcxNA0KJSVFT0YNCg==",
"signCloudMetaData": {
"singletonSigning": {
"entry": [
{
"key": "VISIBLESIGNATURE",
"value": "true"
},
{
"key": "COORDINATE",
"value": "0,0,300,60"
},
{
"key": "TEXTDIRECTION",
"value": "RIGHTTOLEFT"
},
{
"key": "VISUALSTATUS",
"value": "false"
},
{
"key": "IMAGEANDTEXT",
"value": "true"
},
{
"key": "TEXTCOLOR",
"value": "blue"
},
{
"key": "PAGENO",
"value": "1"
},
{
"key": "SIGNATUREIMAGE",
"value": "iVBORw0KGgoAAAANSUhEUgAAAEIAAABBCAYAAABlwHJGAAAACXBIWXMAAAsTAAALEwEAmpwYAAA7cGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDowRTJEMDRBRjk5M0VFNjExQTIwMkFCRjUwNERDMUIxQTwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD5hZG9iZTpkb2NpZDpwaG90b3Nob3A6YmRlODA2OTctNzE0Yy0xMWU4LWI2NDctYzE5YWIzZTM1ZGMzPC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjNkMTg3YTc0LTgxNDQtYzU0MS1hMzE5LTU4OWUzNmI3MTU4MzwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRlcml2ZWRGcm9tIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgPHN0UmVmOmluc3RhbmNlSUQ+eG1wLmlpZDpGMUVEQjU2Q0ZGNkFFODExOEI0Nzg0NDhGMDdFNEVBRDwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDowRTJEMDRBRjk5M0VFNjExQTIwMkFCRjUwNERDMUIxQTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgPC94bXBNTTpEZXJpdmVkRnJvbT4KICAgICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjU2ODY5Nzg1LTYzMWEtOGU0ZC04ODBkLTM0YzM4ZTI2NmVhZjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxOC0wNi0xNlQxNzowNToyMyswNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjNkMTg3YTc0LTgxNDQtYzU0MS1hMzE5LTU4OWUzNmI3MTU4Mzwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxOC0wNi0xNlQxNzowNToyMyswNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxOC0wNi0xMVQxMzoxMzoyMSswNzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE4LTA2LTE2VDE3OjA1OjIzKzA3OjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxOC0wNi0xNlQxNzowNToyMyswNzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDxleGlmOkNvbG9yU3BhY2U+NjU1MzU8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjY2PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjY1PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5V4kAUAAAAIGNIUk0AAHolAACAgwAA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"
}
]
}
},
"signingApp": "IHD"
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"agreementUUID": {
"type": "string",
"description": "Identify the client/customer/agreement number"
},
"authMode": {
"type": "string",
"description": "Authorization mode"
},
"authorizeCode": {
"type": "string",
"description": "Authorize Code provided by customer. In this case of passcode (EXPLICIT/PIN) is used, authorize code is passcode"
},
"mimeType": {
"type": "string",
"description": "In case of PDF signer, mimeType is ‘application/pdf’"
},
"signingFileData": {
"type": "string",
"description": "File that will be signed as Base64 string."
},
"signCloudMetaData": {
"type": "object",
"properties": {
"singletonSigning": {
"type": "object",
"properties": {
"entry": {
"type": "array",
"items": [
{
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
},
{
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
},
{
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
},
{
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
},
{
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
},
{
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
},
{
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
},
{
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
]
}
}
}
},
"description": "SignCloudMetaData contains additional signer properties which are used for PDF signature display: Coordinate, Background image, Signer location, Signer reason, Text color. In case of XML sigining, it will indicate which type should be applied XMLDSig, XML-XaDES, signature zone Once this parameter is not used, Remote Signing should use the default value that already configured in the system. In case of counter signing process, SignCloudMetaData included 2 MetaDatas for customer and Relying Party signer properties"
},
"signingApp": {
"type": "string",
"description": "signing application"
}
},
"required": [
"agreementUUID",
"authMode",
"mimeType",
"signingFileData"
]
}
Case 2: Sign XML File
Content-Type: application/json
{
"agreementUUID": "13ae13a443e2",
"authMode": "EXPLICIT/PIN",
"authorizeCode": "12345678",
"mimeType": "application/xml",
"signingFileData": "77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPGludjppbnZvaWNlIHhtbG5zOmludj0iaHR0cDovL2xhcGhvYWRvbi5nZHQuZ292LnZuLzIwMTQvMDkvaW52b2ljZXhtbC92MSIgDQogIHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgPGludjppbnZvaWNlRGF0YSBpZD0iZGF0YSI+DQogICAgPGludjppbnZvaWNlVHlwZT4wMkdUVFQ8L2ludjppbnZvaWNlVHlwZT4NCiAgICA8aW52OnRlbXBsYXRlQ29kZT4wMkdUVFQwLzAwMTwvaW52OnRlbXBsYXRlQ29kZT4NCiAgICA8aW52Omludm9pY2VTZXJpZXM+QUIvMjBFPC9pbnY6aW52b2ljZVNlcmllcz4NCiAgICA8aW52Omludm9pY2VOdW1iZXI+MDAwMDAwMTwvaW52Omludm9pY2VOdW1iZXI+DQogICAgPGludjppbnZvaWNlSXNzdWVkRGF0ZT4yMDIwLTAxLTA4VDAwOjAwOjAwPC9pbnY6aW52b2ljZUlzc3VlZERhdGU+DQogICAgPGludjpzaWduZWREYXRlPg0KICAgIDwvaW52OnNpZ25lZERhdGU+DQogICAgPGludjpjdXJyZW5jeUNvZGU+Vk5EPC9pbnY6Y3VycmVuY3lDb2RlPg0KICAgIDxpbnY6YWRqdXN0bWVudFR5cGU+MTwvaW52OmFkanVzdG1lbnRUeXBlPg0KICAgIDxpbnY6cGF5bWVudHM+DQogICAgICA8aW52OnBheW1lbnQ+DQogICAgICAgIDxpbnY6cGF5bWVudE1ldGhvZE5hbWU+VE0vQ0s8L2ludjpwYXltZW50TWV0aG9kTmFtZT4NCiAgICAgIDwvaW52OnBheW1lbnQ+DQogICAgPC9pbnY6cGF5bWVudHM+DQogICAgPGludjpkZWxpdmVyeSAvPg0KICAgIDxpbnY6c2VsbGVyTGVnYWxOYW1lPkPDtG5nIFR5IEPhu5UgUGjhuqduIEPDtG5nIE5naOG7hyBUaW4gSOG7jWMgRUZZIFZp4buHdCBOYW08L2ludjpzZWxsZXJMZWdhbE5hbWU+DQogICAgPGludjpzZWxsZXJUYXhDb2RlPjAxMDI1MTkwNDE8L2ludjpzZWxsZXJUYXhDb2RlPg0KICAgIDxpbnY6c2VsbGVyQWRkcmVzc0xpbmU+VMOyYSBOaMOgIFNhbk5hbSBGb29kLCA3OCBEdXkgVMOibiwgQ+G6p3UgR2nhuqV5LCBIw6AgTuG7mWk8L2ludjpzZWxsZXJBZGRyZXNzTGluZT4NCiAgICA8aW52OnNlbGxlckZheE51bWJlcj4NCiAgICA8L2ludjpzZWxsZXJGYXhOdW1iZXI+DQogICAgPGludjpzZWxsZXJFbWFpbD4NCiAgICA8L2ludjpzZWxsZXJFbWFpbD4NCiAgICA8aW52OmRlbGl2ZXJ5T3JkZXJOdW1iZXI+DQogICAgPC9pbnY6ZGVsaXZlcnlPcmRlck51bWJlcj4NCiAgICA8aW52OmRlbGl2ZXJ5T3JkZXJCeT4NCiAgICA8L2ludjpkZWxpdmVyeU9yZGVyQnk+DQogICAgPGludjpkZWxpdmVyeU9yZGVyRGF0ZT4NCiAgICA8L2ludjpkZWxpdmVyeU9yZGVyRGF0ZT4NCiAgICA8aW52OmRlbGl2ZXJ5Qnk+DQogICAgPC9pbnY6ZGVsaXZlcnlCeT4NCiAgICA8aW52OmZyb21XYXJlaG91c2VOYW1lPg0KICAgIDwvaW52OmZyb21XYXJlaG91c2VOYW1lPg0KICAgIDxpbnY6dHJhbnNwb3J0YXRpb25NZXRob2Q+DQogICAgPC9pbnY6dHJhbnNwb3J0YXRpb25NZXRob2Q+DQogICAgPGludjp0b1dhcmVob3VzZU5hbWU+DQogICAgPC9pbnY6dG9XYXJlaG91c2VOYW1lPg0KICAgIDxpbnY6Y29udGFpbmVyTnVtYmVyPg0KICAgIDwvaW52OmNvbnRhaW5lck51bWJlcj4NCiAgICA8aW52OmRlbGl2ZXJ5T3JkZXJDb250ZW50Pg0KICAgIDwvaW52OmRlbGl2ZXJ5T3JkZXJDb250ZW50Pg0KICAgIDxpbnY6ZXhjaGFuZ2VSYXRlPjEgPC9pbnY6ZXhjaGFuZ2VSYXRlPg0KICAgIDxpbnY6aXRlbXM+DQogICAgICA8aW52Oml0ZW0+DQogICAgICAgIDxpbnY6bGluZU51bWJlcj4xPC9pbnY6bGluZU51bWJlcj4NCiAgICAgICAgPGludjppdGVtTmFtZT5JbnZvaWNlPC9pbnY6aXRlbU5hbWU+DQogICAgICAgIDxpbnY6cXVhbnRpdHk+MCA8L2ludjpxdWFudGl0eT4NCiAgICAgICAgPGludjppdGVtVG90YWxBbW91bnRXaXRob3V0VmF0PjExMTExMTExIDwvaW52Oml0ZW1Ub3RhbEFtb3VudFdpdGhvdXRWYXQ+DQogICAgICAgIDxpbnY6dmF0UGVyY2VudGFnZT4tMTwvaW52OnZhdFBlcmNlbnRhZ2U+DQogICAgICAgIDxpbnY6dmF0QW1vdW50PjAgPC9pbnY6dmF0QW1vdW50Pg0KICAgICAgICA8aW52OnVuaXRQcmljZT4wIDwvaW52OnVuaXRQcmljZT4NCiAgICAgICAgPGludjpwcm9tb3Rpb24+MDwvaW52OnByb21vdGlvbj4NCiAgICAgIDwvaW52Oml0ZW0+DQogICAgPC9pbnY6aXRlbXM+DQogICAgPGludjppbnZvaWNlVGF4QnJlYWtkb3ducz4NCiAgICAgIDxpbnY6aW52b2ljZVRheEJyZWFrZG93bj4NCiAgICAgICAgPGludjp2YXRQZXJjZW50YWdlPi0xPC9pbnY6dmF0UGVyY2VudGFnZT4NCiAgICAgIDwvaW52Omludm9pY2VUYXhCcmVha2Rvd24+DQogICAgPC9pbnY6aW52b2ljZVRheEJyZWFrZG93bnM+DQogICAgPGludjp0b3RhbEFtb3VudFdpdGhvdXRWQVQ+MTExMTExMTEgPC9pbnY6dG90YWxBbW91bnRXaXRob3V0VkFUPg0KICAgIDxpbnY6dG90YWxWQVRBbW91bnQ+MCA8L2ludjp0b3RhbFZBVEFtb3VudD4NCiAgICA8aW52OnRvdGFsQW1vdW50V2l0aFZBVD4xMTExMTExMSA8L2ludjp0b3RhbEFtb3VudFdpdGhWQVQ+DQogICAgPGludjp0b3RhbEFtb3VudFdpdGhWQVRJbldvcmRzPk3GsOG7nWkgbeG7mXQgdHJp4buHdSBt4buZdCB0csSDbSBtxrDhu51pIG3hu5l0IG5naMOsbiBt4buZdCB0csSDbSBtxrDhu51pIG3hu5l0IMSR4buTbmcgY2jhurVuLjwvaW52OnRvdGFsQW1vdW50V2l0aFZBVEluV29yZHM+DQogICAgPGludjpkaXNjb3VudEFtb3VudD4wIDwvaW52OmRpc2NvdW50QW1vdW50Pg0KICAgIDxpbnY6dXNlckRlZmluZXM+PC9pbnY6dXNlckRlZmluZXM+DQogIDwvaW52Omludm9pY2VEYXRhPg0KICA8aW52OmNvbnRyb2xEYXRhPg0KICAgIDxpbnY6c3lzdGVtQ29kZT5JSEQtVjM8L2ludjpzeXN0ZW1Db2RlPg0KICA8L2ludjpjb250cm9sRGF0YT4NCiAgPEluZm9LeT4NCiAgICA8TkdBWUtZLz4NCiAgPC9JbmZvS3k+DQo8L2ludjppbnZvaWNlPg0K",
"signCloudMetaData": {
"singletonSigning": {
"entry": [
{
"key": "ALGORITHM",
"value": "SHA-1"
},
{
"key": "SIGNATUREFORMAT",
"value": "DSIG"
},
{
"key": "SIGNATUREID",
"value": "seller"
},
{
"key": "ATTRIBUTENAME",
"value": "id"
},
{
"key": "NODETOBESIGNED",
"value": "data"
},
{
"key": "SIGNATURELOCATION",
"value": "inv:invoice"
}
]
}
},
"signingApp": "IHD"
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"agreementUUID": {
"type": "string",
"description": "Identify the client/customer/agreement number"
},
"authMode": {
"type": "string",
"description": "Authorization mode"
},
"authorizeCode": {
"type": "string",
"description": "Authorize Code provided by customer. In this case of passcode (EXPLICIT/PIN) is used, authorize code is passcode"
},
"mimeType": {
"type": "string",
"description": "In case of XML signer, mimeType is ‘application/xml"
},
"signingFileData": {
"type": "string",
"description": "File that will be signed as Base64 string."
},
"signCloudMetaData": {
"type": "object",
"properties": {
"singletonSigning": {
"type": "object",
"properties": {
"entry": {
"type": "array",
"items": [
{
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
},
{
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
},
{
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
},
{
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
},
{
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
},
{
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
]
}
}
}
},
"description": "SignCloudMetaData contains additional signer properties which are used for PDF signature display: Coordinate, Background image, Signer location, Signer reason, Text color. In case of XML sigining, it will indicate which type should be applied XMLDSig, XML-XaDES, signature zone Once this parameter is not used, Remote Signing should use the default value that already configured in the system. In case of counter signing process, SignCloudMetaData included 2 MetaDatas for customer and Relying Party signer properties"
},
"signingApp": {
"type": "string",
"description": "signing application"
}
},
"required": [
"agreementUUID",
"authMode",
"mimeType",
"signingFileData"
]
}
Case 3: Sign PDF File With OTP-EMAIL Authorization
Content-Type: application/json
{
"agreementUUID": "13ae13a443e2",
"authMode": "EXPLICIT/OTP-EMAIL",
"mimeType": "application/pdf",
"signingFileData": "JVBERi0xLjMNCiXi48/TDQoNCjEgMCBvYmoNCjw8DQovVHlwZSAvQ2F0YWxvZw0KL091dGxpbmVzIDIgMCBSDQovUGFnZXMgMyAwIFINCj4+DQplbmRvYmoNCg0KMiAwIG9iag0KPDwNCi9UeXBlIC9PdXRsaW5lcw0KL0NvdW50IDANCj4+DQplbmRvYmoNCg0KMyAwIG9iag0KPDwNCi9UeXBlIC9QYWdlcw0KL0NvdW50IDINCi9LaWRzIFsgNCAwIFIgNiAwIFIgXSANCj4+DQplbmRvYmoNCg0KNCAwIG9iag0KPDwNCi9UeXBlIC9QYWdlDQovUGFyZW50IDMgMCBSDQovUmVzb3VyY2VzIDw8DQovRm9udCA8PA0KL0YxIDkgMCBSIA0KPj4NCi9Qcm9jU2V0IDggMCBSDQo+Pg0KL01lZGlhQm94IFswIDAgNjEyLjAwMDAgNzkyLjAwMDBdDQovQ29udGVudHMgNSAwIFINCj4+DQplbmRvYmoNCg0KNSAwIG9iag0KPDwgL0xlbmd0aCAxMDc0ID4+DQpzdHJlYW0NCjIgSg0KQlQNCjAgMCAwIHJnDQovRjEgMDAyNyBUZg0KNTcuMzc1MCA3MjIuMjgwMCBUZA0KKCBBIFNpbXBsZSBQREYgRmlsZSApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY4OC42MDgwIFRkDQooIFRoaXMgaXMgYSBzbWFsbCBkZW1vbnN0cmF0aW9uIC5wZGYgZmlsZSAtICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNjY0LjcwNDAgVGQNCigganVzdCBmb3IgdXNlIGluIHRoZSBWaXJ0dWFsIE1lY2hhbmljcyB0dXRvcmlhbHMuIE1vcmUgdGV4dC4gQW5kIG1vcmUgKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA2NTIuNzUyMCBUZA0KKCB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDYyOC44NDgwIFRkDQooIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNjE2Ljg5NjAgVGQNCiggdGV4dC4gQW5kIG1vcmUgdGV4dC4gQm9yaW5nLCB6enp6ei4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNjA0Ljk0NDAgVGQNCiggbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDU5Mi45OTIwIFRkDQooIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNTY5LjA4ODAgVGQNCiggQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA1NTcuMTM2MCBUZA0KKCB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBFdmVuIG1vcmUuIENvbnRpbnVlZCBvbiBwYWdlIDIgLi4uKSBUag0KRVQNCmVuZHN0cmVhbQ0KZW5kb2JqDQoNCjYgMCBvYmoNCjw8DQovVHlwZSAvUGFnZQ0KL1BhcmVudCAzIDAgUg0KL1Jlc291cmNlcyA8PA0KL0ZvbnQgPDwNCi9GMSA5IDAgUiANCj4+DQovUHJvY1NldCA4IDAgUg0KPj4NCi9NZWRpYUJveCBbMCAwIDYxMi4wMDAwIDc5Mi4wMDAwXQ0KL0NvbnRlbnRzIDcgMCBSDQo+Pg0KZW5kb2JqDQoNCjcgMCBvYmoNCjw8IC9MZW5ndGggNjc2ID4+DQpzdHJlYW0NCjIgSg0KQlQNCjAgMCAwIHJnDQovRjEgMDAyNyBUZg0KNTcuMzc1MCA3MjIuMjgwMCBUZA0KKCBTaW1wbGUgUERGIEZpbGUgMiApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY4OC42MDgwIFRkDQooIC4uLmNvbnRpbnVlZCBmcm9tIHBhZ2UgMS4gWWV0IG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA2NzYuNjU2MCBUZA0KKCBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY2NC43MDQwIFRkDQooIHRleHQuIE9oLCBob3cgYm9yaW5nIHR5cGluZyB0aGlzIHN0dWZmLiBCdXQgbm90IGFzIGJvcmluZyBhcyB3YXRjaGluZyApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY1Mi43NTIwIFRkDQooIHBhaW50IGRyeS4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA2NDAuODAwMCBUZA0KKCBCb3JpbmcuICBNb3JlLCBhIGxpdHRsZSBtb3JlIHRleHQuIFRoZSBlbmQsIGFuZCBqdXN0IGFzIHdlbGwuICkgVGoNCkVUDQplbmRzdHJlYW0NCmVuZG9iag0KDQo4IDAgb2JqDQpbL1BERiAvVGV4dF0NCmVuZG9iag0KDQo5IDAgb2JqDQo8PA0KL1R5cGUgL0ZvbnQNCi9TdWJ0eXBlIC9UeXBlMQ0KL05hbWUgL0YxDQovQmFzZUZvbnQgL0hlbHZldGljYQ0KL0VuY29kaW5nIC9XaW5BbnNpRW5jb2RpbmcNCj4+DQplbmRvYmoNCg0KMTAgMCBvYmoNCjw8DQovQ3JlYXRvciAoUmF2ZSBcKGh0dHA6Ly93d3cubmV2cm9uYS5jb20vcmF2ZVwpKQ0KL1Byb2R1Y2VyIChOZXZyb25hIERlc2lnbnMpDQovQ3JlYXRpb25EYXRlIChEOjIwMDYwMzAxMDcyODI2KQ0KPj4NCmVuZG9iag0KDQp4cmVmDQowIDExDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMTkgMDAwMDAgbg0KMDAwMDAwMDA5MyAwMDAwMCBuDQowMDAwMDAwMTQ3IDAwMDAwIG4NCjAwMDAwMDAyMjIgMDAwMDAgbg0KMDAwMDAwMDM5MCAwMDAwMCBuDQowMDAwMDAxNTIyIDAwMDAwIG4NCjAwMDAwMDE2OTAgMDAwMDAgbg0KMDAwMDAwMjQyMyAwMDAwMCBuDQowMDAwMDAyNDU2IDAwMDAwIG4NCjAwMDAwMDI1NzQgMDAwMDAgbg0KDQp0cmFpbGVyDQo8PA0KL1NpemUgMTENCi9Sb290IDEgMCBSDQovSW5mbyAxMCAwIFINCj4+DQoNCnN0YXJ0eHJlZg0KMjcxNA0KJSVFT0YNCg==",
"signCloudMetaData": {
"singletonSigning": {
"entry": [
{
"key": "VISIBLESIGNATURE",
"value": "true"
},
{
"key": "COORDINATE",
"value": "0,0,300,60"
},
{
"key": "TEXTDIRECTION",
"value": "RIGHTTOLEFT"
},
{
"key": "VISUALSTATUS",
"value": "false"
},
{
"key": "IMAGEANDTEXT",
"value": "true"
},
{
"key": "TEXTCOLOR",
"value": "blue"
},
{
"key": "PAGENO",
"value": "1"
},
{
"key": "SIGNATUREIMAGE",
"value": "iVBORw0KGgoAAAANSUhEUgAAAEIAAABBCAYAAABlwHJGAAAACXBIWXMAAAsTAAALEwEAmpwYAAA7cGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDowRTJEMDRBRjk5M0VFNjExQTIwMkFCRjUwNERDMUIxQTwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD5hZG9iZTpkb2NpZDpwaG90b3Nob3A6YmRlODA2OTctNzE0Yy0xMWU4LWI2NDctYzE5YWIzZTM1ZGMzPC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjNkMTg3YTc0LTgxNDQtYzU0MS1hMzE5LTU4OWUzNmI3MTU4MzwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRlcml2ZWRGcm9tIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgPHN0UmVmOmluc3RhbmNlSUQ+eG1wLmlpZDpGMUVEQjU2Q0ZGNkFFODExOEI0Nzg0NDhGMDdFNEVBRDwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDowRTJEMDRBRjk5M0VFNjExQTIwMkFCRjUwNERDMUIxQTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgPC94bXBNTTpEZXJpdmVkRnJvbT4KICAgICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjU2ODY5Nzg1LTYzMWEtOGU0ZC04ODBkLTM0YzM4ZTI2NmVhZjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxOC0wNi0xNlQxNzowNToyMyswNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjNkMTg3YTc0LTgxNDQtYzU0MS1hMzE5LTU4OWUzNmI3MTU4Mzwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxOC0wNi0xNlQxNzowNToyMyswNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxOC0wNi0xMVQxMzoxMzoyMSswNzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE4LTA2LTE2VDE3OjA1OjIzKzA3OjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxOC0wNi0xNlQxNzowNToyMyswNzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDxleGlmOkNvbG9yU3BhY2U+NjU1MzU8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjY2PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjY1PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5V4kAUAAAAIGNIUk0AAHolAACAgwAA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"
}
]
}
},
"notificationSubject": "Authorization",
"notificationTemplate": "Your authorize code: {AuthorizeCode}. Authorize Code is valid within 5 minutes",
"signingApp": "IHD"
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"agreementUUID": {
"type": "string",
"description": "Identify the client/customer/agreement number"
},
"authMode": {
"type": "string",
"description": "Authorization mode"
},
"mimeType": {
"type": "string",
"description": "In case of PDF signer, mimeType is ‘application/pdf’"
},
"signingFileData": {
"type": "string",
"description": "File that will be signed as Base64 string."
},
"signCloudMetaData": {
"type": "object",
"properties": {
"singletonSigning": {
"type": "object",
"properties": {
"entry": {
"type": "array",
"items": [
{
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
},
{
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
},
{
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
},
{
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
},
{
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
},
{
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
},
{
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
},
{
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
]
}
}
}
},
"description": "SignCloudMetaData contains additional signer properties which are used for PDF signature display: Coordinate, Background image, Signer location, Signer reason, Text color. In case of XML sigining, it will indicate which type should be applied XMLDSig, XML-XaDES, signature zone Once this parameter is not used, Remote Signing should use the default value that already configured in the system. In case of counter signing process, SignCloudMetaData included 2 MetaDatas for customer and Relying Party signer properties"
},
"notificationSubject": {
"type": "string",
"description": "This parameter is used as Email subject for signing authorization. If OTP Email is used, this parameter is mandatory It should be used in case of the Remote Signing will use owned SMTP to send OTP Email to customer. ."
},
"notificationTemplate": {
"type": "string",
"description": "Message contains Authorize Code will be sent to customer’s Phone/Email. Authorize Code is generated on Remote Signing and embedded into template. E.g: Your authorize code: {AuthorizeCode}. Authorize Code is valid within 5 minutes"
},
"signingApp": {
"type": "string",
"description": "signing application"
}
},
"required": [
"agreementUUID",
"authMode",
"mimeType",
"signingFileData"
]
}
Case 4: Sign invoice XML file with TT78 format
{
"agreementUUID": "13ae13a443e2",
"authMode": "EXPLICIT/PIN",
"authorizeCode": "12345678",
"mimeType": "application/xml",
"signingFileData": "PEhEb24+PERMSERvbiBJZD0iSW52b2ljZURhdGEiPjxUVENodW5nPjxQQmFuPjIuMC4wPC9QQmFuPjxUSERvbj5Iw7NhIMSRxqFuIGdpw6EgdHLhu4sgZ2lhIHTEg25nPC9USERvbj48S0hNU0hEb24+MTwvS0hNU0hEb24+PEtISERvbj5DMjFUREc8L0tISERvbj48U0hEb24+MTwvU0hEb24+PE5MYXA+MjAyMS0xMS0xMTwvTkxhcD48RFZUVGU+Vk5EPC9EVlRUZT48SFRUVG9hbj5UTS9DSzwvSFRUVG9hbj48TVNUVENHUD4wMTAyNTE5MDQxPC9NU1RUQ0dQPjwvVFRDaHVuZz48TkRIRG9uPjxOQmFuPjxUZW4+Q8OUTkcgVFkgVE5ISCBUUlVZ4buATiBUSMOUTkcgVMOZTkcgVknhu4ZUPC9UZW4+PE1TVD4wMjAxMDYwNTIwPC9NU1Q+PERDaGk+VOG6p25nIDksIHTDsmEgbmjDoCBTYW5uYW08L0RDaGk+PFNEVGhvYWk+KDA0KSA3NDY4NzM2NTQ1PC9TRFRob2FpPjwvTkJhbj48Tk11YT48VGVuPkPDlE5HIFRZIFROSEggQ8agIEtIw40gQ0jDjU5IIFjDgUMgSDJUIEjDgCBO4buYSTwvVGVuPjxNU1Q+MDEwODQ1Njg3MDwvTVNUPjxEQ2hpPktodSBjaOG7oyBt4bubaSwgdOG7lSA1LCBuZ8O1IDE1OSwgxJHGsOG7nW5nIFTDonkgU8ahbiwgVGjhu4sgdHLhuqVuIFBow7luZywgSHV54buHbiDEkGFuIFBoxrDhu6NuZywgSMOgIE7hu5lpPC9EQ2hpPjxNS0hhbmc+Y3R0bmhoY2tjeGgydDwvTUtIYW5nPjxTRFRob2FpLz48SFZUTk1IYW5nPkPDlE5HIFRZIFROSEggQ8agIEtIw40gQ0jDjU5IIFjDgUMgSDJUIEjDgCBO4buYSTwvSFZUTk1IYW5nPjxUTkhhbmc+MTExMDAwMTc4Mzk5IC0gVOG6oWkgTmfDom4gaMOgbmcgVE1DUCBDw7RuZyB0aMawxqFuZyBWaeG7h3QgTmFtIOKAkyBjaGkgbmjDoW5oIELhuq9jIFPDoGkgR8OybjwvVE5IYW5nPjwvTk11YT48RFNISERWdT48SEhEVnU+PFRDaGF0PjE8L1RDaGF0PjxTVFQ+MTwvU1RUPjxNSEhEVnU+SEgwMDAyNTwvTUhIRFZ1PjxUSEhEVnU+RMSDbSBiw7RuZyB2dcO0bmcgLSBTcXVhcmUgaGFtPC9USEhEVnU+PFNMdW9uZz4xPC9TTHVvbmc+PERHaWE+MTI1MDAwPC9ER2lhPjxUaFRpZW4+MTI1MDAwPC9UaFRpZW4+PFRTdWF0PjEwJTwvVFN1YXQ+PC9ISERWdT48L0RTSEhEVnU+PFRUb2FuPjxUSFRUTFRTdWF0PjxMVFN1YXQ+PFRTdWF0PjEwJTwvVFN1YXQ+PFRoVGllbj4xMjUwMDA8L1RoVGllbj48VFRodWU+MTI1MDA8L1RUaHVlPjwvTFRTdWF0PjwvVEhUVExUU3VhdD48VGdUQ1RodWU+MTI1MDAwPC9UZ1RDVGh1ZT48VGdUVGh1ZT4xMjUwMDwvVGdUVGh1ZT48VGdUVFRCU28+MTM3NTAwPC9UZ1RUVEJTbz48VGdUVFRCQ2h1Pk3hu5l0IHRyxINtIGJhIG3GsMahaSBi4bqjeSBuZ2jDrG4gbsSDbSB0csSDbSDEkeG7k25nIGNo4bq1bi48L1RnVFRUQkNodT48L1RUb2FuPjwvTkRIRG9uPjwvRExIRG9uPjxEU0NLUz48TkJhbi8+PE5NdWEvPjwvRFNDS1M+PC9IRG9uPg",
"signCloudMetaData": {
"singletonSigning": {
"entry": [
{
"key": "SIGNATUREFORMAT",
"value": "TAX-211120"
},
{
"key": "SIGNINGTIMEXMLSN",
"value": "https://hoadondientu.gdt.gov.vn"
},
{
"key": "SIGNATURELOCATION",
"value": "DSCKS/NBan"
},
{
"key": "NODETOBESIGNED",
"value": "InvoiceData"
},
{
"key": "SIGNATUREID",
"value": "seller"
}
]
}
},
"signingApp": "IHD"
}
{
"type": "object",
"properties": {
"agreementUUID": {
"type": "string",
"description": "Identify the client/customer/agreement number"
},
"authMode": {
"type": "string",
"description": "Authorization mode"
},
"authorizeCode": {
"type": "string",
"description": "Authorize Code provided by customer. In this case of passcode (EXPLICIT/PIN) is used, authorize code is passcode"
},
"mimeType": {
"type": "string",
"description": "In case of XML signer, mimeType is ‘application/xml"
},
"signingFileData": {
"type": "string",
"description": "File that will be signed as Base64 string."
},
"signCloudMetaData": {
"type": "object",
"properties": {
"singletonSigning": {
"type": "object",
"properties": {
"entry": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
}
}
}
},
"description": "SignCloudMetaData contains additional signer properties which are used for PDF signature display: Coordinate, Background image, Signer location, Signer reason, Text color. In case of XML sigining, it will indicate which type should be applied XMLDSig, XML-XaDES, signature zone Once this parameter is not used, Remote Signing should use the default value that already configured in the system. In case of counter signing process, SignCloudMetaData included 2 MetaDatas for customer and Relying Party signer properties"
},
"signingApp": {
"type": "string",
"description": "signing application"
}
},
"required": [
"agreementUUID",
"authMode",
"mimeType",
"signingFileData"
],
"$schema": "http://json-schema.org/draft-04/schema#"
}
Case 5: Sign register XML file with TT78 format
{
"agreementUUID": "13ae13a443e2",
"authMode": "EXPLICIT/PIN",
"authorizeCode": "12345678",
"mimeType": "application/xml",
"signingFileData": "PFRLaGFpPjxETFRLaGFpIElkPSJEZWNsYXJhdGlvbkRhdGEiPjxUVENodW5nPjxQQmFuPjIuMC4wPC9QQmFuPjxNU28+MDEvxJBLVMSQLUjEkMSQVDwvTVNvPjxUZW4+VOG7nSBraGFpIMSRxINuZyBrw70vdGhheSDEkeG7lWkgdGjDtG5nIHRpbiBz4butIGThu6VuZyBow7NhIMSRxqFuIMSRaeG7h24gdOG7rTwvVGVuPjxMREtVTmhpZW0+MTwvTERLVU5oaWVtPjxUTk5UPkzhu4cgVGVzdCBUVDc4IDE8L1ROTlQ+PE1TVD45OTk5OTk5NzAyPC9NU1Q+PENRVFFMeT5D4bulYyBUaHXhur8gVHAuIEjhu5MgQ2jDrSBNaW5oPC9DUVRRTHk+PE1DUVRRTHk+NzAxMDA8L01DUVRRTHk+PE5MSGU+TWFpIE5n4buNYyBM4buHIDE8L05MSGU+PERDTEhlPlRo4bunIMSQ4bupYywgVHAuIEjhu5MgQ2jDrSBNaW5oIDE8L0RDTEhlPjxEQ1REVHU+bWFpbmdvY2xlLndvcmtAZ21haWwuY29tPC9EQ1REVHU+PERUTEhlPjA5NjgwNDc4MDM8L0RUTEhlPjxERGFuaD5I4buTIENow60gTWluaDwvRERhbmg+PE5MYXA+MjAyMS0xMS0xOTwvTkxhcD48L1RUQ2h1bmc+PE5EVEtoYWk+PEhUSERvbj48Q01hPjE8L0NNYT48S0NNYT4wPC9LQ01hPjwvSFRIRG9uPjxIVEdETEhERFQ+PE5OVERCS0toYW4+MDwvTk5UREJLS2hhbj48Tk5US1RETlVCTkQ+MDwvTk5US1RETlVCTkQ+PENETFRURENRVD4wPC9DRExUVERDUVQ+PENETFFUQ1ROPjA8L0NETFFUQ1ROPjwvSFRHRExIRERUPjxQVGh1Yz48Q0REdT4xPC9DRER1PjxDQlRIb3A+MDwvQ0JUSG9wPjwvUFRodWM+PExIRFNEdW5nPjxIREdUR1Q+MTwvSERHVEdUPjxIREJIYW5nPjE8L0hEQkhhbmc+PEhEQlRTQ29uZz4wPC9IREJUU0Nvbmc+PEhEQkhEVFFHaWE+MDwvSERCSERUUUdpYT48SERLaGFjPjE8L0hES2hhYz48Q1R1PjE8L0NUdT48L0xIRFNEdW5nPjxEU0NUU1NEdW5nPjxDVFM+PFNUVD4xPC9TVFQ+PFRUQ2h1Yz5DPVZOLCBPPUPDlE5HIFRZIEPhu5QgUEjhuqZOIEPDlE5HIE5HSOG7hiBUSU4gSOG7jEMgRUZZIFZJ4buGVCBOQU0sIENOPUVGWUNBX1RFU1Q8L1RUQ2h1Yz48U2VyaT41NDAxMEEwREJBMTQ5NzFFQTQ5ODFGODEyRTQwOERFNzwvU2VyaT48VE5nYXk+MjAyMS0xMC0yM1QwOToyMzowMDwvVE5nYXk+PEROZ2F5PjIwMjItMTAtMjNUMDk6MjM6MDA8L0ROZ2F5PjxIVGh1Yz4zPC9IVGh1Yz48L0NUUz48Q1RTPjxTVFQ+MjwvU1RUPjxUVENodWM+Qz1WTiwgTz1Dw5RORyBUWSBD4buUIFBI4bqmTiBDw5RORyBOR0jhu4YgVElOIEjhu4xDIEVGWSBWSeG7hlQgTkFNLCBDTj1FRllDQV9URVNUPC9UVENodWM+PFNlcmk+NTQwMTBBMEE5MzAxQ0FDQTUxQjgzMjM1NDhCNDY4OTk8L1Nlcmk+PFROZ2F5PjIwMjEtMTAtMjNUMDk6MjQ6MDA8L1ROZ2F5PjxETmdheT4yMDIyLTEwLTIzVDA5OjI0OjAwPC9ETmdheT48SFRodWM+MTwvSFRodWM+PC9DVFM+PC9EU0NUU1NEdW5nPjxEU0RLVU5oaWVtPjxTVFQ+MTwvU1RUPjxUTEhEb24+SMOzYSDEkcahbiBiw6FuIGjDoG5nPC9UTEhEb24+PEtITVNIRG9uPjI8L0tITVNIRG9uPjxLSEhEb24+SzIxVEFCPC9LSEhEb24+PE1TVD45OTk5OTk5NzcwPC9NU1Q+PFRUQ2h1Yz5Dw7RuZyB0eSBM4buHIHRlc3Q8L1RUQ2h1Yz48TURpY2g+TOG6rXAgaMOzYSDEkcahbjwvTURpY2g+PFROZ2F5PjIwMjEtMTEtMTJUMDA6MDA6MDA8L1ROZ2F5PjxETmdheT4yMDIxLTExLTMwVDAwOjAwOjAwPC9ETmdheT48UFRodWM+VE0vQ0s8L1BUaHVjPjwvRFNES1VOaGllbT48L05EVEtoYWk+PC9ETFRLaGFpPjxEU0NLUz48Tk5ULz48L0RTQ0tTPjwvVEtoYWk+",
"signCloudMetaData": {
"singletonSigning": {
"entry": [
{
"key": "SIGNATUREFORMAT",
"value": "TAX-211120"
},
{
"key": "SIGNINGTIMEXMLSN",
"value": "https://hoadondientu.gdt.gov.vn"
},
{
"key": "SIGNATURELOCATION",
"value": "DSCKS/NNT"
},
{
"key": "NODETOBESIGNED",
"value": "DeclarationData"
},
{
"key": "SIGNATUREID",
"value": "proid"
}
]
}
},
"signingApp": "IHD"
}
{
"type": "object",
"properties": {
"agreementUUID": {
"type": "string",
"description": "Identify the client/customer/agreement number"
},
"authMode": {
"type": "string",
"description": "Authorization mode"
},
"authorizeCode": {
"type": "string",
"description": "Authorize Code provided by customer. In this case of passcode (EXPLICIT/PIN) is used, authorize code is passcode"
},
"mimeType": {
"type": "string",
"description": "In case of XML signer, mimeType is ‘application/xml"
},
"signingFileData": {
"type": "string",
"description": "File that will be signed as Base64 string."
},
"signCloudMetaData": {
"type": "object",
"properties": {
"singletonSigning": {
"type": "object",
"properties": {
"entry": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
}
}
}
},
"description": "SignCloudMetaData contains additional signer properties which are used for PDF signature display: Coordinate, Background image, Signer location, Signer reason, Text color. In case of XML sigining, it will indicate which type should be applied XMLDSig, XML-XaDES, signature zone Once this parameter is not used, Remote Signing should use the default value that already configured in the system. In case of counter signing process, SignCloudMetaData included 2 MetaDatas for customer and Relying Party signer properties"
},
"signingApp": {
"type": "string",
"description": "signing application"
}
},
"required": [
"agreementUUID",
"authMode",
"mimeType",
"signingFileData"
],
"$schema": "http://json-schema.org/draft-04/schema#"
}
200
Content-Type: application/json
{
"responseCode": 1007,
"responseMessage": "REQUEST ACCEPTED",
"billCode": "EFY_CA",
"timestamp": "2020-02-28T13:28:42+07:00",
"status": true,
"notificationTemplate": "Your authorize code: {AuthorizeCode}. Authorize Code is valid within 5 minutes",
"notificationSubject": "Authorization",
"signedFileData": "RmlsZSBiaW5hcnkgdGhhdCBiZSBzaWduZWQ=",
"mimeType": "application/pdf",
"multipleSignedFileData": [
{
"signedFileData": "RmlsZSBiaW5hcnkgdGhhdCBiZSBzaWduZWQ=",
"mimeType": "application/pdf",
"signedFileName": "invoice_123456.pdf",
"dmsMetaData": ""
}
],
"certificateDN": "E.g: CN=Nguyen Van A, O=B Company,C=VN",
"certificateSerialNumber": "54010A5560E78C1DAC82237E280A775F",
"certificateThumbprint": "B72E67D9DE53332B632A7863F7BF5AA77AD0D08C",
"validFrom": "2020-02-26T16:03:05+07:00",
"validTo": "2021-02-25T16:03:05+07:00",
"issuerDN": "CN=Mobile-ID Trusted Network, O=MOBILE-ID,C=VN",
"sharedMode": 1
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"responseCode": {
"type": "number",
"description": "Code describes the result. Normally. Remote Signing will response REQUEST ACCEPTED"
},
"responseMessage": {
"type": "string",
"description": "Message describes the result in detail"
},
"billCode": {
"type": "string",
"description": "200221112613-3540-601895 (string, required) - Receipt for each transaction"
},
"timestamp": {
"type": "string",
"description": "Current timestamp"
},
"status": {
"type": "boolean",
"description": "Status of Result (true: Success, false: Error)"
},
"notificationTemplate": {
"type": "string",
"description": "Message contains Authorize Code will be sent to customer’s Phone/Email. Authorize Code is generated on Remote Signing and embedded into template. E.g: Your authorize code: {AuthorizeCode}. Authorize Code is valid within 5 minutes"
},
"notificationSubject": {
"type": "string",
"description": "This parameter is used as Email subject for signing authorization. If OTP Email is used, this parameter is mandatory It should be used in case of the Remote Signing will use owned SMTP to send OTP Email to customer. ."
},
"authorizeCredential": {
"type": "string",
"description": "In case of Authorize Code isn’t sent by Remote Signing, Email of client/customer also is responded back to Finance/Insurance company and they use that information to send Authorize Code to their end-user"
},
"signedFileData": {
"type": "string",
"description": "File binary that be signed as Base64 string"
},
"mimeType": {
"type": "string",
"description": "In case of PDF signer, mimeType is ‘application/pdf’"
},
"signedFileUUID": {
"type": "string",
"description": "Signed file UUID that identified by our Remote Signing service"
},
"multipleSignedFileData": {
"type": "array",
"items": {
"type": "object",
"properties": {
"signedFileData": {
"type": "string",
"description": "File binary that be signed as Base64 string"
},
"mimeType": {
"type": "string",
"description": "In case of PDF signer, mimeType is ‘application/pdf’"
},
"signedFileUUID": {
"type": "string",
"description": "Signed file UUID that identified by our Remote Signing service"
},
"signedFileName": {
"type": "string",
"description": "The signed document name"
},
"dmsMetaData": {
"type": "string",
"description": "The DMS information used for signed document download"
}
},
"required": [
"mimeType"
]
},
"description": "In case of signing multiple files, the multiple signed files will be responded in this object"
},
"xmlSignature": {
"type": "string",
"description": "XML Signature (XMLDSig or XML-XadDES)"
},
"certificateDN": {
"type": "string",
"description": "`Certificate Distinguished Name (DN). E.g: CN=Nguyen Van A, O=B Company,C=VN`"
},
"certificateSerialNumber": {
"type": "string",
"description": "`Certificate serial number E.g: 5405ABCDEF`"
},
"certificateThumbprint": {
"type": "string",
"description": "Certificate thumprint (certificate hash)"
},
"validFrom": {
"type": "string",
"description": "The date of certificate begin to be valid"
},
"validTo": {
"type": "string",
"description": "The date of certificate begin to be expired"
},
"issuerDN": {
"type": "string",
"description": "`Issuer Certifcate Distinguished Name (DN) E.g: CN=Mobile-ID Trusted Network, O=MOBILE-ID,C=VN`"
},
"sharedMode": {
"type": "number",
"enum": [
1,
2,
3
],
"default": 1,
"description": "Which sharing mode applied to this agreement in the Remote Signing service."
}
},
"required": [
"responseCode",
"mimeType"
]
}
/signing/hash
Sign Hash
Content-Type: application/json
{
"agreementUUID": "13ae13a443e2",
"authMode": "Hello, world!",
"authorizeCode": "12345678",
"encryption": "RSA",
"hash": "f3a8a2f048b6ae0d3a5b14a803d707ffeb190a91fc8719c3c8886c64a1732094",
"hashs": [
"f3a8a2f048b6ae0d3a5b14a803d707ffeb190a91fc8719c3c8886c64a1732094",
"f3a8a2f048b6ae0d3a5b14a803d707ffeb190a91fc8719c3c8886c64a1732094"
],
"hashAlgorithm": "SHA-256",
"mimeType": "application/sha256-binary",
"signingApp": "IHD"
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"agreementUUID": {
"type": "string",
"description": "Identify the client/customer/agreement number"
},
"authMode": {
"type": "string",
"enum": [
"EXPLICIT/PIN",
"EXPLICIT/OTP-SMS",
"EXPLICIT/OTP-EMAIL"
],
"default": "EXPLICIT/PIN",
"description": "Specifies one of the authorization modes."
},
"authorizeCode": {
"type": "string",
"description": "Authorize Code provided by customer. In this case of passcode (EXPLICIT/PIN) is used, authorize code is passcode"
},
"encryption": {
"type": "string",
"description": "Signature encryption type. The default value is RSA",
"default": "RSA"
},
"hash": {
"type": "string",
"description": "Hash to be signed"
},
"hashs": {
"type": "array",
"description": "Hashs to be signed"
},
"hashAlgorithm": {
"type": "string",
"enum": [
"SHA-256",
"SHA-384",
"SHA-512"
],
"description": "hashAlgorithm"
},
"mimeType": {
"type": "string",
"enum": [
"application/sha256-binary",
"application/sha384-binary",
"application/sha512-binary"
],
"description": "The available mime type for hash signing"
},
"signingApp": {
"type": "string",
"description": "signing application"
}
},
"required": [
"agreementUUID",
"authMode",
"hashAlgorithm",
"mimeType"
]
}
200
Content-Type: application/json
{
"responseCode": 1007,
"responseMessage": "REQUEST ACCEPTED",
"billCode": "EFY_CA",
"timestamp": "2020-02-28T13:28:42+07:00",
"status": true,
"notificationTemplate": "Your authorize code: {AuthorizeCode}. Authorize Code is valid within 5 minutes",
"notificationSubject": "Authorization",
"authorizeCredential": "Hello, world!",
"signatureValue": "Hello, world!",
"signatureValues": [
"C6bENR+KLDfUSxLNl5QpdlDZKKK29n7k1tsNBhPeZ+FflGI0TmkKz8NDMz6a/m8mI9/cH2pkI65yzsbeSlBVkdNSARkzBGLsT7Bg3pnGe8/re/WTSB/EjVI2oH2JvVOtQbm0Yjzuvgnei5BuRTgw6hpF+k8UbT1OHCM2kY4efI/wos/vBFrxspIsw/wCvdQuhPrSrsFj2hSZ8ScUv5Z5Gt+Ay4nPrixA6x5aK2NanM2ind9Vu9yiCY+O9hisjn8eVEldbU4yD+IJnjQLFr3GRAfutZduExm2b9QzFUd8zQuIZYCpadFXPR6J5uQnLrcsoP5TmSfjuiKQcymPc5FV6A==",
"C6bENR+KLDfUSxLNl5QpdlDZKKK29n7k1tsNBhPeZ+FflGI0TmkKz8NDMz6a/m8mI9/cH2pkI65yzsbeSlBVkdNSARkzBGLsT7Bg3pnGe8/re/WTSB/EjVI2oH2JvVOtQbm0Yjzuvgnei5BuRTgw6hpF+k8UbT1OHCM2kY4efI/wos/vBFrxspIsw/wCvdQuhPrSrsFj2hSZ8ScUv5Z5Gt+Ay4nPrixA6x5aK2NanM2ind9Vu9yiCY+O9hisjn8eVEldbU4yD+IJnjQLFr3GRAfutZduExm2b9QzFUd8zQuIZYCpadFXPR6J5uQnLrcsoP5TmSfjuiKQcymPc5FV6A=="
]
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"responseCode": {
"type": "number",
"description": "Code describes the result. Normally. Remote Signing will response REQUEST ACCEPTED"
},
"responseMessage": {
"type": "string",
"description": "Message describes the result in detail"
},
"billCode": {
"type": "string",
"description": "200221112613-3540-601895 (string, required) - Receipt for each transaction"
},
"timestamp": {
"type": "string",
"description": "Current timestamp"
},
"status": {
"type": "boolean",
"description": "Status of Result (true: Success, false: Error)"
},
"notificationTemplate": {
"type": "string",
"description": "Message contains Authorize Code will be sent to customer’s Phone/Email. Authorize Code is generated on Remote Signing and embedded into template. E.g: Your authorize code: {AuthorizeCode}. Authorize Code is valid within 5 minutes"
},
"notificationSubject": {
"type": "string",
"description": "This parameter is used as Email subject for signing authorization. If OTP Email is used, this parameter is mandatory It should be used in case of the Remote Signing will use owned SMTP to send OTP Email to customer. ."
},
"authorizeCredential": {
"type": "string",
"description": "In case of Authorize Code isn’t sent by Remote Signing, Email of client/customer also is responded back to Finance/Insurance company and they use that information to send Authorize Code to their end-user"
},
"signatureValue": {
"type": "string",
"description": "The PKCS#1 Signature as Base64 String will be sent to RelyingParty"
},
"signatureValues": {
"type": "array",
"description": "The PKCS#1 Signature as Base64 String will be sent to RelyingParty"
}
},
"required": [
"responseCode"
]
}
/signing/download/file/{billCode}
string
(required) bill code
200
Content-Type: application/json
{
"signedFiles": [
{
"fileName": "signed.pdf",
"base64": "c2lnbmVkLnBkZg==",
"mimeType": "application/pdf"
}
]
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"signedFiles": {
"type": "array",
"items": {
"type": "object",
"properties": {
"fileName": {
"type": "string",
"description": "signed file name"
},
"base64": {
"type": "string",
"description": "signed file data as Base64 String"
},
"mimeType": {
"type": "string",
"description": "In case of PDF signer, mimeType is ‘application/pdf’"
}
},
"required": [
"fileName",
"base64",
"mimeType"
]
},
"description": "array signed files"
}
}
}
Which sharing mode applied to this agreement in the Remote Signing service.
Value | Description |
---|---|
1 |
PRIVATE_MODE |
2 |
RP_SHARED_MODE |
3 |
AGREEMENT_SHARED_MODE |
Specifies one of the authorization modes.
Value | Description |
---|---|
EXPLICIT/PIN |
The authorization process is managed by the signature application, authentication method is passcode |
EXPLICIT/OTP-SMS |
The authorization process is managed by the signature application, authentication method is otp sms. |
EXPLICIT/OTP-EMAIL |
The authorization process is managed by the signature application, authentication method is otp email |
Value | Description |
---|---|
0 |
SUCCESSFULLY |
1000 |
INVALID IP ADDRESS |
1001 |
INVALID CREDENTIAL DATA |
1002 |
INVALID PARAMS |
1003 |
UNEXPECTED EXCEPTION |
1004 |
INVALID AUTHORIZATION CODE |
1005 |
AUTHORIZATION BLOCKED |
1006 |
AUTHORIZATION CODE TIMEOUT |
1007 |
REQUEST ACCEPTED |
1008 |
AGREEEMENT NOT FOUND |
1009 |
CERTIFICATE IS NOT ENROLLED |
1010 |
AGREEMENT EXISTED |
1011 |
UNSUPPORTED OPERATION |
1012 |
ACCESS DENIED |
1013 |
AGREEMENT NOT READY |
1014 |
CERTIFICATE IS EXPIRED |
1015 |
BILLCODE TIMEOUT DUE TO UNEXPECTED EXCEPTION WHILE SIGNING |
1016 |
FILE IS BEING PROCESSED |
1017 |
AGREEMENT REVOKED |
1018 |
SUCCESSFULLY. YOUR PASSCODE NEED TO BE CHANGED |
1019 |
FUNCTION ACCESS DENIED |
1020 |
FAILED TO CHECK REVOCATION |
1021 |
CERTIFICATE REVOKED |
1022 |
CERTIFICATE UNKNOWN |
1023 |
SHARED AGREEMENT NOT FOUND |
1024 |
SHARED AGREEMENT INVALID SHARED MODE |
1025 |
FILE NOT FOUND |
1026 |
MULTIPLE CLIENT MACHINE YSING THE SAME AGREEMENT UUID |
1027 |
TRANSACTION NOT FINISHED |
1029 |
CREDENTIALS HAVE BEEN EXPIRED |
1028 |
EMAIL HAS BEEN REGISTERED |
In signCloudMetaData includes 2 values singletonSigning and counterSigning. Where singletonSigning and counterSigning is an array of objects `{key: ‘keyname’, value: ‘value’}. The value of key, value is described as in the table below.
Key | Description | File | Sample |
---|---|---|---|
VISIBLESIGNATURE |
Display signature frame (true, false) | pdf |
true |
IMAGEANDTEXT |
Display both text and images on the signature frame | pdf |
true |
SIGNATUREIMAGE |
image to add to the signature frame as Base64 string, format supported : png , jpg | pdf |
aW1hZ2UgdG8gYWRkIHRvIHRoZS BzaWduYXR1cmUgZnJhbWUgYXMgQm FzZTY0IHN0cmluZw== |
PAGENO |
Set the page to set the signature frame: “1”,“First”,“Last” | pdf |
1 |
POSITIONIDENTIFIER |
The string to find signature position | pdf |
|
RECTANGLEOFFSET |
When found signature position, this is rectangle offset (x,y) ![]() |
pdf |
'-30,5' |
RECTANGLESIZE |
Size of reactangle (Width,Height) | pdf |
'170,90' |
COORDINATE |
Set absolute positions for signature frames, order “x1,y1,x2,y2”, no space between values. ![]() |
pdf |
'0,0,300,60' |
TEXTCOLOR |
Set font color for signature frame | pdf |
red |
TEXTDIRECTION |
Text display position on signature frame | pdf |
LEFTTORIGHT : Text on the left, Image on the rightRIGHTTOLEFT : Text on the right and Image on the left |
SHOWSIGNERINFO và SIGNERINFOPREFIX |
Display signer information on signature frame. The following PREFIX information will be taken from the digital certificate CN field | pdf |
{SHOWSIGNERINFO: true, SIGNERINFOPREFIX: 'Signed by'} Will display the line: “Signed by: {Certificate Commmon Name}” |
SHOWDATETIME và DATETIMEPREFIX |
Display date signature information on signature frame. Date signature data will be taken hourly on server | pdf |
{SHOWDATETIME: true, DATETIMEPREFIX: 'Sign Date'} `Will display the line:" Sign Date: {DD / MM / YYYY} " |
SHOWREASON , SIGNREASONPREFIX và SIGNREASON |
Display REASON information on signature frame | pdf |
{SHOWREASON: true, SIGNREASONPREFIX: 'Reason', SIGNREASON: 'Ok'} `Will display the line:" Reason: Ok " |
SHOWLOCATION , LOCATION và LOCATIONPREFIX |
Display LOCATION information on the signature frame | pdf |
`{SHOWLOCATION: true, LOCATION: ‘Hanoi’, LOCATIONPREFIX: ‘Place of signing’} 'Will display the line:" Place of signing: Hanoi " |
LOCKAFTERSIGNING |
Lock the document after signing, the locked document will not be able to add more signatures (true, false) | pdf |
true |
SHOWEMAIL và EMAILPREFIX |
Display email on signature | pdf |
{SHOWEMAIL: true, EMAILPREFIX: 'Email:'} `Will display the line:" Email: [email address] " |
ALGORITHM |
Hash algorithm | xml |
SHA-1 |
SIGNATUREFORMAT |
digital signature format (DSIG DSIG_SINGLE_NODE DSIG_MULTIPLE_NODES DSIG_XPATH XADES_EPES) | xml |
DSIG |
SIGNATUREID |
The id of the data card that needs to be signed | xml| seller` |
|
ATTRIBUTENAME |
The attribute name id | xml |
id |
CANONICALIZATIONMETHOD |
CANONICALIZATIONMETHOD (EXCLUSIVE, EXCLUSIVE_WITH_COMMENTS, INCLUSIVE, INCLUSIVE_WITH_COMMENTS) | xml |
INCLUSIVE |
NODETOBESIGNED |
NODETOBESIGNED | xml |
data |
SIGNATURELOCATION |
SIGNATURELOCATION | xml |
inv:invoice |
Generated by aglio on 15 Jul 2022