---
title: SAIF.Business.Policy.Audit.ApiCalls operations and processes
summary: Business and technical operations supported by SAIF.Business.Policy.Audit.ApiCalls.
status: draft
owner: Technical Writer
last_reviewed: 2026-07-31
library: SAIF.Business.Policy.Audit.ApiCalls
reference_type: package
---

# SAIF.Business.Policy.Audit.ApiCalls operations and processes

This page catalogs the outbound integration operations implemented by `SAIF.Business.Policy.Audit.ApiCalls`. Detailed step-by-step behavior lives in the operation pages under `operations/`.

## Operation catalog
| Operation | Intent | Trigger | Inputs | Outputs | Rules | Tables | SQL |
| --- | --- | --- | --- | --- | --- | --- | --- |
| [Construct the Policy Audit API client](operations/construct-policy-audit-api-client.md) | Resolve endpoint, caller identity, and NTLM credentials for the Policy Audit API. | A caller instantiates `ApiCall`. | None. | Initialized `JsonHttpClient` stored inside `ApiCall`. | [BR-AAC-001](business-rules.md#br-aac-001-outbound-clients-identify-as-premiumaudit), [BR-AAC-002](business-rules.md#br-aac-002-outbound-clients-propagate-machine-and-user-identity), [BR-AAC-003](business-rules.md#br-aac-003-api-base-urls-come-from-environment-settings), [BR-AAC-004](business-rules.md#br-aac-004-policy-audit-api-credentials-come-from-a-secure-setting), [BR-AAC-005](business-rules.md#br-aac-005-policy-audit-credentials-must-split-into-user-and-password) | N/A | N/A |
| [Post audit policy terms to the Policy Audit API](operations/post-audit-policy-terms-to-the-policy-audit-api.md) | Submit audit policy terms to a caller-selected Policy Audit API route. | A caller invokes `PolicyAuditAPICall(auditCollection, method)`. | `AuditCollection auditCollection`, `string method`. | `bool` success flag. | [BR-AAC-006](business-rules.md#br-aac-006-callers-choose-the-policy-audit-api-route), [BR-AAC-007](business-rules.md#br-aac-007-audit-submission-success-comes-from-the-first-boolean-result) | N/A | N/A |
| [Post a waive-audit request](operations/post-a-waive-audit-request.md) | Submit waive-audit items to a caller-selected Policy Audit API route. | A caller invokes `WaiveAPICall(auditCollection, method)`. | `WaveAuditCollection auditCollection`, `string method`. | `string` wrapper representation. | [BR-AAC-006](business-rules.md#br-aac-006-callers-choose-the-policy-audit-api-route), [BR-AAC-008](business-rules.md#br-aac-008-waive-audit-submission-returns-the-wrapper-string) | N/A | N/A |
| [Construct the Document API client](operations/construct-document-api-client.md) | Resolve endpoint and caller identity for the Document API. | A caller instantiates `DocumentApiCall`. | None. | Initialized `JsonHttpClient` stored inside `DocumentApiCall`. | [BR-AAC-001](business-rules.md#br-aac-001-outbound-clients-identify-as-premiumaudit), [BR-AAC-002](business-rules.md#br-aac-002-outbound-clients-propagate-machine-and-user-identity), [BR-AAC-003](business-rules.md#br-aac-003-api-base-urls-come-from-environment-settings), [BR-AAC-009](business-rules.md#br-aac-009-only-the-policy-audit-api-client-attaches-an-authenticator) | N/A | N/A |
| [Generate and distribute a document through the Document API](operations/generate-and-distribute-a-document-through-the-document-api.md) | Build a one-distribution Document API request and post it to `/v1/distribute`. | A caller invokes `CallDocumentApi(packageName, documentXml, options)`. | `string packageName`, `string documentXml`, `DistributionOptions options`. | `bool` success flag. | [BR-AAC-010](business-rules.md#br-aac-010-document-api-requests-use-submitter-name-premaudit), [BR-AAC-011](business-rules.md#br-aac-011-document-api-requests-carry-exactly-one-distribution-entry), [BR-AAC-012](business-rules.md#br-aac-012-null-distribution-time-means-immediate-distribution), [BR-AAC-013](business-rules.md#br-aac-013-document-api-output-profile-is-pdf), [BR-AAC-014](business-rules.md#br-aac-014-document-api-recipient-is-the-policy-holder), [BR-AAC-015](business-rules.md#br-aac-015-document-api-requests-omit-cover-sheets-and-special-handling), [BR-AAC-016](business-rules.md#br-aac-016-document-api-success-requires-http-200), [BR-AAC-017](business-rules.md#br-aac-017-document-api-exceptions-are-swallowed-and-reported-as-failure) | N/A | N/A |
| [Construct the Policy Document Distribution client](operations/construct-the-policy-document-distribution-client.md) | Resolve endpoint and caller identity for preset-based policy document distribution. | A caller instantiates `PolicyDocDistributionCall`. | None. | Initialized `JsonHttpClient` stored inside `PolicyDocDistributionCall`. | [BR-AAC-001](business-rules.md#br-aac-001-outbound-clients-identify-as-premiumaudit), [BR-AAC-002](business-rules.md#br-aac-002-outbound-clients-propagate-machine-and-user-identity), [BR-AAC-003](business-rules.md#br-aac-003-api-base-urls-come-from-environment-settings), [BR-AAC-009](business-rules.md#br-aac-009-only-the-policy-audit-api-client-attaches-an-authenticator) | N/A | N/A |
| [Distribute a policy document using presets](operations/distribute-a-policy-document-using-presets.md) | Post a preset-driven policy document payload to the distribution API. | A caller invokes `DistributeApiCall(documentConfig)`. | `PolicyDocumentConfig documentConfig`. | `bool` success flag. | [BR-AAC-018](business-rules.md#br-aac-018-preset-based-distribution-always-reports-success) | N/A | N/A |
| [Resolve a contact's type and carbon-copy name](operations/resolve-a-contacts-type-and-carbon-copy-name.md) | Translate policy-document contacts into service recipient codes and CC display text. | A caller or serializer reads `ContactType`, `CCName`, or `IsValidContactType` on the contact model. | `Contact` state or a caller-supplied contact-type code. | Recipient code validation or formatted CC text. | [BR-AAC-019](business-rules.md#br-aac-019-contacts-serialize-to-three-allowed-recipient-codes), [BR-AAC-020](business-rules.md#br-aac-020-only-configured-recipient-codes-are-valid), [BR-AAC-021](business-rules.md#br-aac-021-carbon-copy-names-depend-on-contact-role) | N/A | N/A |
| [Report a distribution channel's discriminator](operations/report-a-distribution-channels-discriminator.md) | Expose the class-name discriminator used by channel options. | A caller or serializer reads `DistributionMethodType` from a distribution-channel object. | Concrete channel type parameter `T`. | Channel discriminator string. | [BR-AAC-022](business-rules.md#br-aac-022-distribution-channels-identify-themselves-by-class-name) | N/A | N/A |

## Process flow diagram
The following diagram shows how callers move through the library's three major integration paths.

```mermaid
flowchart TD
  Caller[Caller] --> Choice{Requested service}
  Choice --> Audit[Policy Audit API]
  Choice --> Doc[Document API]
  Choice --> Preset[Preset distribution API]
  Audit --> Payload1[AuditCollection or WaveAuditCollection]
  Doc --> Payload2[DistributionRequest]
  Preset --> Payload3[PolicyDocumentConfig]
  Payload1 --> Http[JsonHttpClient]
  Payload2 --> Http
  Payload3 --> Http
```

## Failure and edge-case behavior
- Client construction fails early when a required endpoint URL or secure credential setting is missing or malformed.
- `PolicyAuditAPICall` treats an empty `Results` collection as `false`.
- `WaiveAPICall` returns a wrapper string rather than a boolean decision.
- `CallDocumentApi` suppresses exceptions after writing the exception message to `Console` and reports failure with `false`.
- `DistributeApiCall` always returns `true`, even though the response body is not inspected.

## Related documentation
- [Index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Dependencies](dependencies.md)
- [Business rules](business-rules.md)
- [Security and authorization](security-authorization.md)
- [Configuration](configuration.md)
- [API reference](api/index.md)

## Sources
- `Business\SAIF.Business.Policy.Audit.ApiCalls\ApiCall.cs`
- `Business\SAIF.Business.Policy.Audit.ApiCalls\DocumentApiCall.cs`
- `Business\SAIF.Business.Policy.Audit.ApiCalls\PolicyDocDistributionCall.cs`
- `Business\SAIF.Business.Policy.Audit.ApiCalls\DistributionMethod.cs`
- `Business\SAIF.Business.Policy.Audit.ApiCalls\PolicyDocumentConfig.cs`
