---
title: "Children policies"
description: "Inspect the versioned authority that constrains operating policies for child apps."
canonical: "https://studio.inttegro.dev/api/children-policies"
format: inttegro-machine-docs/v1
language: "cURL"
reader_profile: optional
reader_manifest: "https://studio.inttegro.dev/machine/curl/readers/index.json"
reader_identification: "Optional: declare your client only if known and your current-session capabilities; use reader_manifest for supplemental recommendations."
preamble_estimated_tokens: 373
model_token_report: "https://studio.inttegro.dev/machine/token-report.json"
preamble_questions: 5
preamble_source: "general"
recommended_mcp_tools: []
estimated_tokens: 2858
token_estimate_method: "utf8_bytes_divided_by_4"
---

## Machine preamble

**Summary:** Inspect the versioned authority that constrains operating policies for child apps. This cURL representation preserves HTTP paths and JSON wire names.

### Five questions

#### Q1. When should the reader use Children policies?

Use this API reference when exact operations, fields, states, or errors are required.

#### Q2. What is authoritative on this page?

Use the documented HTTP operation, JSON names, validation rules, and public error contract. Do not substitute SDK names into the wire request.

#### Q3. What page-specific constraint matters most?

Do not infer a business workflow from endpoint order or treat request acceptance as proof that an asynchronous outcome completed.

#### Q4. Can Inttegro MCP materially help with this task?

No catalog ability is sufficiently specific to recommend for this page. Use the documentation directly; consult the MCP catalog only if the task later requires governed live account context or a supported operation.

#### Q5. How should the reader verify the answer and continue?

For a read, compare the returned resource with the requested identifier and scope. For a write, preserve its identifier and retrieve authoritative current state before declaring the business outcome complete. Continue with [Lookup an app](https://studio.inttegro.dev/machine/curl/api/apps.md#lookup-an-app) and [Create an app](https://studio.inttegro.dev/machine/curl/api/apps.md#create-an-app) when those concerns enter scope.

## Document content

# Children policies

A children policy defines the operating choices an app may grant to its child apps. It is an authority boundary, not the configuration applied to a child: the children policy lists permitted values and ranges, while an [operating policy](https://studio.inttegro.dev/machine/curl/api/operating-policies.md) selects concrete values from within those constraints.

> **Note:**
>
> This feature is available to selected accounts during private beta.

## How children policies govern child apps

The app's active children policy governs the reusable operating policies and inline configurations it can apply while creating a child. Inttegro validates the concrete operating configuration against the parent's latest active children policy before saving an immutable snapshot for the child app. The application relationship is not returned on the children-policy object.

Children policies use immutable versions. `id` is stable across versions, `version` identifies the returned record, and `active_version` identifies the version currently governing new policy decisions. [Look up a children policy version](#look-up-a-children-policy-version) by number, or omit `version` to return the latest active version. [Page children policy versions](#page-children-policy-versions) returns the complete history newest first.

Each capability expresses authority differently from an operating policy:

- Payment currencies are the currency values a child configuration may select.
- Payment and payout amount limits are inclusive ranges in minor currency units.
- Payout `enabled` values list whether enabled, disabled, or both are permitted.
- Payout balance-transaction aging entries include the platform-owned public identifier and its resolved `t_plus` duration.
- Payment-method `enabled` and `confirms_use` values list the booleans that an operating policy may select.

## The children policy object

### Properties

- `active_version` — `integer`

  Latest active version of this policy.

- `capabilities` — `object`

  Permitted payment, payout, and payment-method options for child operating
  configurations. At least one capability group is present.

- `created_at` — `timestamp`

  When version one of the policy was created.

- `description` — `string`

  Optional explanation of the authority granted by the policy.

- `id` — `string`

  Stable policy identifier beginning with cp\_.

- `name` — `string`

  Human-readable policy name.

- `updated_at` — `timestamp`

  When the active version last changed.

- `version` — `integer`

  Immutable version represented by this object.

- `version_created_at` — `timestamp`

  When this exact immutable version was created.

### Capability properties

- `capabilities.payment_methods` — `object`

  Optional settings authority for each supported payment method. Each included
  method has
  confirms\_use and enabled arrays containing its
  permitted boolean values.

- `capabilities.payments` — `object`

  Optional payment authority. currencies contains unique
  lowercase three-letter currency codes. limits.amount.max and
  limits.amount.min define the inclusive minor-unit range.

- `capabilities.payouts` — `object`

  Optional payout authority. bt\_aging\_spec lists the permitted
  platform aging specifications, enabled lists permitted boolean
  values, and limits.amount defines the inclusive minor-unit
  range.

## Look up a children policy version

Returns one children policy version. Omit `version` to return the latest active version.

### Request body

- `version` — `integer`

  Immutable version to return. Must be at least 1. Omit it to return the
  latest active version.

### Response

The response contains the requested policy version in `children_policy`.

**Request — POST /children\_policies/lookup**

```bash
curl https://api.inttegro.com/children_policies/lookup \
  --request POST \
  --header "Authorization: Bearer $INTTEGRO_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{"version":2}'
```

```json
{
  "children_policy": {
    "active_version": 3,
    "capabilities": {
      "payment_methods": {
        "card": {
          "confirms_use": [true],
          "enabled": [true]
        },
        "mobile_money": {
          "confirms_use": [true],
          "enabled": [true]
        }
      },
      "payments": {
        "currencies": ["ghs", "usd"],
        "limits": {
          "amount": {
            "max": 9999999,
            "min": 1
          }
        }
      },
      "payouts": {
        "bt_aging_spec": [
          {
            "id": "bt_aging_spec_168_hourly",
            "t_plus": "168h"
          }
        ],
        "enabled": [false],
        "limits": {
          "amount": {
            "max": 9999999,
            "min": 25000
          }
        }
      }
    },
    "created_at": "2026-10-01T09:00:00Z",
    "description": "Authority for standard child merchant accounts.",
    "id": "cp_36vCQl1XPkXvtFGbK5KZ4dZF4lvwURGFoCCqhUcp",
    "name": "Standard child operating authority",
    "updated_at": "2026-11-01T14:30:00Z",
    "version": 2,
    "version_created_at": "2026-10-20T11:00:00Z"
  }
}
```

### Errors

- `400 Bad Request` — The lookup request is malformed, or `version` is less than 1.
- `401 Unauthorized` — Authentication is missing or invalid.
- `403 Forbidden` — This feature is not available to the account.
- `404 Not Found` — No children policy exists at the requested version.
- `422 Unprocessable Entity` — The request is invalid for this operation.
- `503 Service Unavailable` — Policy validation or storage is temporarily unavailable. Retry with backoff.

## Page children policy versions

Returns immutable children policy versions newest first.

### Request body

- `number` — `integer`

  1-based page number. Defaults to 1.

- `size` — `integer`

  Number of versions per page. Defaults to 20 and cannot exceed 100.

### Response

The response contains pagination metadata and complete children policy objects in `page`.

- `count` — `integer`

  Number of versions returned on this page.

- `has_more` — `boolean`

  Whether another page of older versions is available.

- `number` — `integer`

  Current 1-based page number.

- `size` — `integer`

  Requested page size.

- `total` — `integer`

  Total number of immutable versions.

- `versions` — `array`

  Full children policy objects, ordered newest first.

**Request — POST /children\_policies/page**

```bash
curl https://api.inttegro.com/children_policies/page \
  --request POST \
  --header "Authorization: Bearer $INTTEGRO_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{"number":1,"size":2}'
```

```json
{
  "page": {
    "count": 2,
    "has_more": true,
    "number": 1,
    "size": 2,
    "total": 3,
    "versions": [
      {
        "active_version": 3,
        "capabilities": {
          "payments": {
            "currencies": ["ghs", "usd"],
            "limits": {
              "amount": {
                "max": 9999999,
                "min": 1
              }
            }
          }
        },
        "created_at": "2026-10-01T09:00:00Z",
        "description": "Authority for standard child merchant accounts.",
        "id": "cp_36vCQl1XPkXvtFGbK5KZ4dZF4lvwURGFoCCqhUcp",
        "name": "Standard child operating authority",
        "updated_at": "2026-11-01T14:30:00Z",
        "version": 3,
        "version_created_at": "2026-11-01T14:30:00Z"
      },
      {
        "active_version": 3,
        "capabilities": {
          "payments": {
            "currencies": ["ghs"],
            "limits": {
              "amount": {
                "max": 5000000,
                "min": 1
              }
            }
          }
        },
        "created_at": "2026-10-01T09:00:00Z",
        "description": "Initial authority for standard child merchant accounts.",
        "id": "cp_36vCQl1XPkXvtFGbK5KZ4dZF4lvwURGFoCCqhUcp",
        "name": "Standard child operating authority",
        "updated_at": "2026-11-01T14:30:00Z",
        "version": 2,
        "version_created_at": "2026-10-20T11:00:00Z"
      }
    ]
  }
}
```

### Errors

- `400 Bad Request` — `number` or `size` is outside the accepted range, or the request contains unsupported attributes.
- `401 Unauthorized` — Authentication is missing or invalid.
- `403 Forbidden` — This feature is not available to the account.
- `404 Not Found` — No children policy is available.
- `422 Unprocessable Entity` — The versions cannot be returned for this operation.
- `503 Service Unavailable` — Policy storage is temporarily unavailable. Retry with backoff.

## Related resources

- [Operating policies](https://studio.inttegro.dev/machine/curl/api/operating-policies.md) — Select concrete child settings, create reusable policies, and assign them to apps.
- [Create an app](https://studio.inttegro.dev/machine/curl/api/apps.md#create-an-app) — Create a child app under a parent operating boundary.
- [Lookup an app](https://studio.inttegro.dev/machine/curl/api/apps.md#lookup-an-app) — Retrieve an app and its operating-policy snapshot.
