CodeSign Secure Documentation
  • Overview
    • About CodeSign Secure
    • Getting Started
    • Documentation Guide
    • Portal Overview
    • Troubleshooting
      • FAQ
    • Glossary
  • Reference Guide
    • Header Bar
      • CodeSign Secure Documentation
      • Swagger API
      • Profile Section
    • Dashboard
      • Key Performance Indicators
      • Issued Certificates
      • Signatures Generated
      • HSM Health Check
    • Keys and Certificates
      • Key and Certificate Lifecycle
    • App Management
    • Signing Requests
      • Approval Workflows
    • Signing Tools
    • Reports
      • Signing Request Report
      • Audit Trail
      • Certificate Report
      • Client Report
    • Logs
    • System Setup
      • Identity Store
      • Backup
      • User
      • Roles and Permissions
      • Email
      • Signing Projects
      • SSL/TLS Management
      • Environment
      • Plugins
  • Setup & Architecture
    • Identity and Access Control
    • Architecture and Concepts
    • Installation
      • Windows
        • Installing the Server
        • Ports and Protocols
        • High Availability and Backup
        • Upgrades and Compatibility
    • Security
      • Security Hardening Checklist
      • Client Authentication
      • Designing Signing Policies
  • Release Notes
    • Releases for 2026
      • v3.2.1
    • Releases for 2025
      • v3.2.0
    • Releases for 2024
      • v3.1.0
  • API Reference
    • Getting Started
    • Authorizing Requests
    • Securing API Access
    • Request and Response Conventions
    • Endpoint Reference
      • Signing
      • Signing Requests
      • Certificates
      • Applications and Environments
      • User Management
      • Permissions
      • Email
      • System Setup
      • Reports
      • Dashboard
      • License
  • Integration Guides
    • Signing Capabilities
      • Supported Formats and Platforms
      • Timestamping
      • Windows Signing - SignTool
        • Signing
        • Macro Signing
      • Apple Signing
      • AppX & MSIX Signing
      • Visual Studio ClickOnce
      • Jar Signing
      • Sign HLK/HCK using CodeSign Secure
      • NuGet Signing
      • Mage Signing
      • Sign OVA/OVF using Encryption Consulting’s Utility Tool
      • Utility Tool for code signing
      • Container Signing
      • PKCS11 Wrapper
        • APK Signing
        • OpenSSL Signing
        • XML Signing
        • JSign Tool Signing
        • Jarsigner Signing
        • GPG2, Debian & RPM Signing
      • Reproducible Build
        • Automated Hash Validation
        • Reproducible Build Process Flow
        • Pipeline Script Components
        • Hash Validation
    • CI/CD Integration
      • GitHub Actions
      • Jenkins
      • GitLab
      • Azure DevOps
      • TeamCity
      • Bamboo
      • Securing CI/CD Credentials

Signing Requests

The Signing Requests endpoints raise signing requests for approval, list the requests waiting for a decision, send and validate approvers’ verification codes, record approval decisions, and check an artifact before signing.

For the corresponding user interface, refer to the Signing Requests section.

Endpoints

MethodEndpointDescription
POST/signing_request/check-artifact/Check an artefact before signing
GET/signing_request/check_mfa_status/{approvalUser_id}Check whether an approver needs a verification code
GET/signing_request/send_mfa_code/{approvalUser_id}Send a verification code to an approver
POST/signing_request/signing_request_action/{approvalUser_id}Approve or reject a signing request
GET/signing_request/signing_request_approval/List signing requests awaiting a decision
POST/signing_request/signing_request_approval/Raise a signing request for approval
GET/signing_request/signing_request_approval/{approvalUser_id}/List signing requests for an approver
POST/signing_request/validate_mfa_code/{approvalUser_id}Validate an approver's verification code
POST /signing_request/check-artifact/

Confirms that an artefact is recognised for the given application before a signing request is raised.

Request Body (application/json)

FieldTypeRequiredDescription
app_idintegerYesApplication the artefact belongs to.
labelstringYesArtefact label.

Example Request

curl -X POST "https://<your domain>/api/signing_request/check-artifact/" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"app_id":1,"label":"string"}'

Responses

Status CodeDescription
200The operation completed.
GET /signing_request/check_mfa_status/{approvalUser_id}

Reports whether multi-factor verification is required before this approver can decide a signing request.

Request Parameters

NameLocated InTypeRequiredDescription
approvalUser_idPathintegerYesIdentifier of the approver.

Example Request

curl -X GET "https://<your domain>/api/signing_request/check_mfa_status/<approvalUser_id>" \
  -H "Authorization: Bearer <token>"

Responses

Status CodeDescription
200Whether a verification code is needed for this approver.
GET /signing_request/send_mfa_code/{approvalUser_id}

Emails a single-use verification code to the approver, for use with the validation endpoint before recording a decision.

Request Parameters

NameLocated InTypeRequiredDescription
approvalUser_idPathintegerYesIdentifier of the approver.

Example Request

curl -X GET "https://<your domain>/api/signing_request/send_mfa_code/<approvalUser_id>" \
  -H "Authorization: Bearer <token>"

Responses

Status CodeDescription
200The code was sent.
POST /signing_request/signing_request_action/{approvalUser_id}

Records an approver's decision on a signing request. Where the approver has multi-factor verification enabled, a valid code must be supplied beforehand.

Request Parameters

NameLocated InTypeRequiredDescription
approvalUser_idPathintegerYesIdentifier of the approver.

Request Body (application/json)

FieldTypeRequiredDescription
signingrequest_idintegerYesSigning request being decided.
userApprovalStatusintegerYesDecision to record: 1 approve, 3 reject.
idintegerNoIdentifier of the approval record.

Example Request

curl -X POST "https://<your domain>/api/signing_request/signing_request_action/<approvalUser_id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"signingrequest_id":1,"userApprovalStatus":1,"id":1}'

Responses

Status CodeDescription
200The decision was recorded.
GET /signing_request/signing_request_approval/

Returns the signing requests the caller is an approver for, with the requester, certificate, environment and current state of each.

Example Request

curl -X GET "https://<your domain>/api/signing_request/signing_request_approval/" \
  -H "Authorization: Bearer <token>"

Responses

Status CodeDescription
200The requested records.
POST /signing_request/signing_request_approval/

Submits a signing request for approval under the policy configured for the target environment.

Request Body (application/json)

FieldTypeRequiredDescription
signingRequest_idintegerNoSigningRequest id
approvalUser_idintegerNoApprovalUser id
userApprovalStatusintegerNoUserApprovalStatus
created_datestring (date-time)NoCreated date

Example Request

curl -X POST "https://<your domain>/api/signing_request/signing_request_approval/" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"signingRequest_id":1,"approvalUser_id":1,"userApprovalStatus":1,"created_date":"string"}'

Responses

Status CodeDescription
201The operation completed.
GET /signing_request/signing_request_approval/{approvalUser_id}/

Returns the signing requests assigned to one approver, optionally narrowed by environment, certificate or state.

Request Parameters

NameLocated InTypeRequiredDescription
approvalUser_idPathstringYesIdentifier of the approver.
environment_idQueryarray of integer (comma-separated)NoLimit to these environments.
certificate_nameQueryarray of string (comma-separated)NoLimit to these certificates.
statusQueryintegerNoLimit to one decision state: -1 failed, 0 pending, 1 approved, 2 signed, 3 rejected, 4 no action.
filtersQuerystringNoJSON array of {"field": .., "operator": .., "value": ..} objects, all of which must match. Fields: Request_ID, Certificate_Name, Environment_Name, Submitted_On, Approval_Status. Text fields take equals, not_equals, contains, not_contains, starts_with or ends_with; date fields take date_is, date_is_not, date_is_before or date_is_after with a YYYY-MM-DD value. Unknown fields and operators are ignored. Approval_Status takes only equals, with a state name (Pending, Approved, ...) or its number.
pageQueryintegerNo1-based page number. Defaults to 1.
countQueryintegerNoRecords per page. Defaults to 10.

Example Request

curl -X GET "https://<your domain>/api/signing_request/signing_request_approval/<approvalUser_id>/" \
  -H "Authorization: Bearer <token>"

Responses

Status CodeDescription
200The requested records.
POST /signing_request/validate_mfa_code/{approvalUser_id}

Checks a verification code sent to an approver. Codes are single-use and expire after a short period.

Request Parameters

NameLocated InTypeRequiredDescription
approvalUser_idPathintegerYesIdentifier of the approver.

Request Body (application/json)

FieldTypeRequiredDescription
mfa_codestringYesCode received by the approver.

Example Request

curl -X POST "https://<your domain>/api/signing_request/validate_mfa_code/<approvalUser_id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"mfa_code":"string"}'

Responses

Status CodeDescription
200The code was accepted. The approver may now record a decision.
On this Page:
Support Privacy Policy Terms of Service

Copyright Encryption Consulting LLC. All rights reserved.