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

ParameterTypeRequiredDescription
pageintegerOptionalPage number for pagination. Default: 1
limitintegerOptionalNumber of items per page. Default: 10, Max: 100
searchstringOptionalSearch programs by name.
is_archivedbooleanOptionalFilter by archive status.
payment_typestringOptionalFilter 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

FieldTypeDescription
idstring (UUID)Unique identifier for the program.
namestringDisplay name of the program.
pricenumberStandard price of the program.
currencystringISO 4217 currency code (e.g. usd).
is_archivedbooleanWhether this program has been archived.
program_typestringType of program billing structure (e.g. ONE_TIME, SUBSCRIPTION).
template_namestring | nullAssociated contract template name.
template_idstring | nullUUID of the contract template.
co_signer_typestringCo-signer attribution type (e.g. NONE, TEAM_MEMBER, ASSIGNED_CLOSER).
co_signerobject | nullCo-signer profile details (id, name, avatar, role).
send_without_paymentbooleanWhether contracts can be sent without immediate payment.
confirmation_urlstring | nullCustom redirect URL after client signing.
confirmation_payment_typesarrayPayment types enabled for signing (e.g. FIRST_PAYMENT, DEPOSIT, INSTALMENT).
created_atstringISO 8601 timestamp of creation.
updated_atstringISO 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"
}