---
title: Contract
summary: The WSDL-declared operations, message types, faults, and binding of the called service.
status: draft
owner: SAIF.Core documentation
last_reviewed: 2026-09-24
---

# Contract

This page documents the contract of the third-party `SimpleCertifiedMail ADS API`† as `ADS.wsdl` declares it.

## Contract source

`ADS.wsdl` is the contract source for this proxy. `Reference.cs` is svcutil tool output and is used only to confirm the type name and base type the WSDL already states, never as a source of contract behavior.

| Field | Value |
| --- | --- |
| **Service** | `ADSAPI` |
| **WSDL document** | `Services/SAIF.Services.Web.Proxies/Service References/SimpleCertifiedMail/ADS.wsdl` |
| **SOAP namespace** | `https://simplecertifiedmail.com/` |
| **Port type / binding name** | `ADSAPISoap` (SOAP 1.1) / `ADSAPISoap12` (SOAP 1.2) |
| **Binding** | SOAP 1.1 over HTTPS (`ADSAPISoap`); a paired SOAP 1.2 binding (`ADSAPISoap12`) is also declared but not used by the generated client |
| **Encoding style** | `Document` / `Literal` |
| **Parameter style** | Wrapped |
| **Operations declared** | 8 |

## Operations

| Operation | SOAP action | Input message | Output message | Faults | Called in this repository |
| --- | --- | --- | --- | --- | --- |
| `getCertifiedLabel` | `https://simplecertifiedmail.com/getCertifiedLabel` | `CertifiedLabelRequest` | `LabelReturn` | None declared | Yes — [details](reference.md#getcertifiedlabel) |
| `queuePrintItem` | `https://simplecertifiedmail.com/queuePrintItem` | `PrintRequest` | `PrintReturn` | None declared | No |
| `getDocumentStatus` | `https://simplecertifiedmail.com/getDocumentStatus` | `DocumentStatusRequest` | `ArrayOfDocumentStatusReturn` | None declared | No |
| `getDocumentStatusByRef` | `https://simplecertifiedmail.com/getDocumentStatusByRef` | `DocumentStatusRequest` | `ArrayOfDocumentStatusReturn` | None declared | No |
| `getDocumentStatusByItemID` | `https://simplecertifiedmail.com/getDocumentStatusByItemID` | `DocumentStatusRequest` | `ArrayOfDocumentStatusReturn` | None declared | No |
| `getProductionReport` | `https://simplecertifiedmail.com/getProductionReport` | `ProductionReportRequest` | `ProductionReportReturn` | None declared | No |
| `verifyUserCredentials` | `https://simplecertifiedmail.com/verifyUserCredentials` | `PartnerKey, UserName, Password, ClientCode, GroupName` | `VerifyReturn` | None declared | No |
| `getPrintStatusUpdate` | `https://simplecertifiedmail.com/getPrintStatusUpdate` | `PartnerKey, UserName, Password, ClientCode` | `PrintStatusReturn` | None declared | No |

## Messages and types

| Type | Kind | Members | Used by |
| --- | --- | --- | --- |
| `RequestBase` | Complex type (base) | Credentials (`PartnerKey`, `UserName`, `Password`, `ClientCode`, `GroupName`), sender fields (`FromName`, `FirstName`, `LastName`, `FromAddress1/2`, `FromCity`, `FromState`, `FromZip`, `FromZip4`, `FromEmail`), recipient fields (`ToName`, `ToCompany`, `ToAddress1/2`, `ToCity`, `ToState`, `ToZip`, `ToZip4`, `ToReference`), `TrackERR`, `DateAdvance`, `Mode` (`ModeOptions`), `LabelFormat` (`LabelFormatOptions`) | All request types |
| `CertifiedLabelRequest` | Complex type (extends `RequestBase`) | `LabelSize` (`LabelSizeOptions`), `PageCount` (int), `NotifySender` (boolean), `UseSL250` (boolean), `SortType` (`SortTypeOptions`) | `getCertifiedLabel` |
| `ReturnBase` | Complex type (base) | `StatusCode` (int), `StatusMessage` (string) | All return types |
| `LabelReturn` | Complex type (extends `ReturnBase`) | `LabelImage` (string, base64), `PIC` (string), `LabelCost` (decimal) | `getCertifiedLabel` |
| `ModeOptions` | Enumeration | `preview`, `production` | `RequestBase.Mode` |
| `LabelFormatOptions` | Enumeration | `GIF`, `PDF` | `RequestBase.LabelFormat` |
| `LabelSizeOptions` | Enumeration | `Small`, `Large`, `EnvelopeSize10` | `CertifiedLabelRequest.LabelSize` |
| `SortTypeOptions` | Enumeration | `None`, `NDC`, `FiveDigit`, `MixedNDC`, `Nonpresorted`, `Presorted`, `SCF`, `SinglePiece`, `ThreeDigit` | `CertifiedLabelRequest.SortType` |

### CertifiedLabelRequest (extends RequestBase)

| Member | Type | Required | Purpose |
| --- | --- | --- | --- |
| `PartnerKey`, `UserName`, `Password`, `ClientCode`, `GroupName` | string | Not stated in the WSDL | Account credentials sent in the SOAP body |
| `FromName`, `FirstName`, `LastName`, `FromAddress1/2`, `FromCity`, `FromState`, `FromZip`, `FromZip4`, `FromEmail` | string | Not stated in the WSDL | Sender identity and address |
| `ToName`, `ToCompany`, `ToAddress1/2`, `ToCity`, `ToState`, `ToZip`, `ToZip4`, `ToReference` | string | Not stated in the WSDL | Recipient identity and address |
| `TrackERR`, `DateAdvance`, `Mode`, `LabelFormat` | boolean / int / `ModeOptions` / `LabelFormatOptions` | Not stated in the WSDL | Tracking, mail-date advance, preview-vs-production mode, and label image format |
| `LabelSize`, `PageCount`, `NotifySender`, `UseSL250`, `SortType` | `LabelSizeOptions` / int / boolean / boolean / `SortTypeOptions` | Not stated in the WSDL | Physical label size, enclosure page count, sender notification, and mail-sort classification |

### LabelReturn (extends ReturnBase)

| Member | Type | Required | Purpose |
| --- | --- | --- | --- |
| `StatusCode` | int | Not stated in the WSDL | In-band success/failure signal; `1` indicates success in the wrapper's usage |
| `StatusMessage` | string | Not stated in the WSDL | Human-readable status detail |
| `LabelImage` | string (base64) | Not stated in the WSDL | The generated label image, decoded and rendered by the wrapper |
| `PIC` | string | Not stated in the WSDL | The certified-mail tracking number* |
| `LabelCost` | decimal | Not stated in the WSDL | The cost of the generated label; discarded by the wrapper |

## Faults

The WSDL declares no faults on any operation. A failure reaches this repository as a generic SOAP fault surfaced by the proxy; see [Consumption](consumption.md) for how the call sites handle it. In-band failure is instead signalled through `ReturnBase.StatusCode`/`StatusMessage`.

## Binding details

| Aspect | Value |
| --- | --- |
| Transport | HTTPS |
| Message version | SOAP 1.1 |
| Security mode | `Transport`, set in code — see [Architecture](architecture.md) |
| Declared message size limits | None declared in the WSDL |

## Contract drift risk

| Aspect | Finding |
| --- | --- |
| WSDL captured at | Not determined from source |
| Live service documented by this run | No |
| Verification possible | Not determined from source — the remote service is a third-party vendor outside this run's scope |
| Consequence of drift | A change to `getCertifiedLabel`'s request or response shape would break label generation for both subpoena recipient and opposing-counsel mailings, the only in-repository integration point |

## Related documentation
- [Client index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Operation map](operation-map.md)
- [Client reference](reference.md)
- [Consumption](consumption.md)
- [Dependencies](dependencies.md)
- [Business rules](business-rules.md)
- [Tech debt](tech-debt.md)

> **Note:** Statements marked with `†` are derived from dependency library
> documentation via the Legends CLI. Statements marked with `*` were inferred
> from code structure or contextual evidence.

## Sources
- `Services/SAIF.Services.Web.Proxies/Service References/SimpleCertifiedMail/ADS.wsdl`
- `Services/SAIF.Services.Web.Proxies/Service References/SimpleCertifiedMail/Reference.cs`
