Programs API Reference
Fetch details of sales programs, template configurations, pricing structures, and signing redirects.
List Programs
Retrieve a paginated list of programs. Results can be filtered by name search, archive status, billing type, and modification date.
GET/api/external/programs
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| page | integer | Optional | Page number for pagination. Default: 1 |
| limit | integer | Optional | Number of items per page. Default: 10, Max: 100 |
| search | string | Optional | Search programs by name. |
| is_archived | boolean | Optional | Filter by archive status. |
| payment_type | string | Optional | Filter by billing type (e.g. ONE_TIME or SUBSCRIPTION). |
Code Examples
curl -X GET "https://api.hermon.io/api/external/programs?page=1&limit=10&search=Prosacco&is_archived=true&payment_type=ONE_TIME" \
-H "Content-Type: application/json" \
-H "x-api-key: sk_live_your_key_here"Response Example
json
{
"status": "success",
"message": "Programs fetched successfully",
"data": [
{
"id": "e464122e-a60d-4209-851e-b169211523bc",
"name": "One time confirmation",
"price": 50000,
"is_archived": false,
"created_at": "2026-05-22T12:59:02.659Z",
"template_name": "SAMPLE CONTRACT TEMPLATE (PIF / PP Compatible)",
"template_id": "7c294f3d-6267-47f7-8a86-a9ec58b7bf14",
"co_signer_type": "NONE",
"co_signer": null,
"currency": "usd",
"send_without_payment": false,
"program_type": "ONE_TIME",
"billing_interval": null,
"confirmation_url": "https://hermon.io/",
"confirmation_payment_types": [
"FIRST_PAYMENT",
"DEPOSIT"
],
"updated_at": "2026-05-25T10:48:58.691Z"
}
],
"pagination": {
"page": 1,
"limit": 10,
"total": 39,
"totalPages": 4,
"hasNext": true,
"hasPrev": false
}
}Get Program Details
Fetch detailed information for a single program configuration by its unique UUID.
GET/api/external/programs/:id
Path Parameters
:idRequired. The unique program UUID.
Program Object Fields
| Field | Type | Description |
|---|---|---|
| id | string (UUID) | Unique identifier for the program. |
| name | string | Display name of the program. |
| price | number | Standard price of the program. |
| currency | string | ISO 4217 currency code (e.g. usd). |
| is_archived | boolean | Whether this program has been archived. |
| program_type | string | Type of program billing structure (e.g. ONE_TIME, SUBSCRIPTION). |
| template_name | string | null | Associated contract template name. |
| template_id | string | null | UUID of the contract template. |
| co_signer_type | string | Co-signer attribution type (e.g. NONE, TEAM_MEMBER, ASSIGNED_CLOSER). |
| co_signer | object | null | Co-signer profile details (id, name, avatar, role). |
| send_without_payment | boolean | Whether contracts can be sent without immediate payment. |
| confirmation_url | string | null | Custom redirect URL after client signing. |
| confirmation_payment_types | array | Payment types enabled for signing (e.g. FIRST_PAYMENT, DEPOSIT, INSTALMENT). |
| created_at | string | ISO 8601 timestamp of creation. |
| updated_at | string | ISO 8601 timestamp of last modification. |
Code Examples
curl -X GET "https://api.hermon.io/api/external/programs/dbdd435a-6bd4-42d8-9814-248c0f5ca761" \
-H "Content-Type: application/json" \
-H "x-api-key: sk_live_your_key_here"Response Example
json
{
"status": "success",
"message": "Program fetched successfully",
"data": {
"id": "e464122e-a60d-4209-851e-b169211523bc",
"name": "One time confirmation",
"price": 50000,
"is_archived": false,
"created_at": "2026-05-22T12:59:02.659Z",
"template_name": "SAMPLE CONTRACT TEMPLATE (PIF / PP Compatible)",
"template_id": "7c294f3d-6267-47f7-8a86-a9ec58b7bf14",
"co_signer_type": "NONE",
"co_signer": null,
"currency": "usd",
"send_without_payment": false,
"program_type": "ONE_TIME",
"billing_interval": null,
"confirmation_url": "https://hermon.io/",
"confirmation_payment_types": [
"FIRST_PAYMENT",
"DEPOSIT"
],
"updated_at": "2026-05-25T10:48:58.691Z"
}
}Error Responses
401Missing or invalid API key
json
{
"status": "error",
"message": "Invalid or revoked API key"
}404Resource not found
json
{
"status": "error",
"message": "Resource not found"
}429Rate limit exceeded
json
{
"status": "error",
"message": "Too many requests"
}