---
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 `SAIFFaxService` as the WSDL declares it. It is the page a reader uses to answer "what can this service be asked to do, and in what shape".

| Field | Value |
| --- | --- |
| **Service** | `SAIFFaxService` (`FaxService` ASMX class) |
| **WSDL document** | `Services/SAIF.Services.Web.Proxies/Service References/Fax/faxservice.wsdl` |
| **SOAP namespace** | `http://www.saif.com/` |
| **Port type / binding name** | `FaxServiceSoap` |
| **Binding** | SOAP 1.1 (`FaxServiceSoap`) and SOAP 1.2 (`FaxServiceSoap12`) both declared |
| **Encoding style** | Document / Literal |
| **Parameter style** | Wrapped |
| **Operations declared** | 1 |

## Contract source

The authoritative source for this contract is the captured WSDL: `Services/SAIF.Services.Web.Proxies/Service References/Fax/faxservice.wsdl`. `Reference.cs` is generated tool output and is used only to confirm the type name and base type already stated in the WSDL.

## Operations

| Operation | SOAP action | Input message | Output message | Faults | Called in this repository |
| --- | --- | --- | --- | --- | --- |
| `Send` | `http://www.saif.com/Send` | `FaxJob: FaxInfo` (optional) | empty (`SendResponse`) | None declared | Yes — [details](reference.md#send) |

## Messages and types

| Type | Kind | Members | Used by |
| --- | --- | --- | --- |
| `FaxInfo` | Complex type | `Attachment`, `CoverSheetNote`, `ToCompanyName`, `ToFaxNumber`, `ToName`, `ToVoiceNumber` (all `string`, all optional) | `Send` |

### FaxInfo

| Member | Type | Required | Purpose |
| --- | --- | --- | --- |
| `Attachment` | `string` | No | A path to the document content; the call site passes a UNC-style temp-folder path rather than binary content, which suggests the remote service reads the file from that path* |
| `CoverSheetNote` | `string` | No | Not set by this repository's call site |
| `ToCompanyName` | `string` | No | Not set by this repository's call site |
| `ToFaxNumber` | `string` | No | The recipient's fax number |
| `ToName` | `string` | No | The recipient's name |
| `ToVoiceNumber` | `string` | No | Not set by this repository's call site |

## Faults

The WSDL declares no faults. 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.

## Binding details

| Aspect | Value |
| --- | --- |
| Transport | HTTP |
| Message version | SOAP 1.1 (as configured; SOAP 1.2 is also declared) |
| Security mode | None declared in the WSDL — set in code as `TransportCredentialOnly`, 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 | No — the remote `SAIFFaxService` is outside this run's scope and its live contract cannot be compared |
| Consequence of drift | A remote change to `Send` would not be detected until a fax delivery fails at runtime |

## 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)
- [Tech debt](tech-debt.md)

> **Note:** Statements marked with `*` were inferred from code structure or contextual
> evidence.

## Sources
- `Services/SAIF.Services.Web.Proxies/Service References/Fax/faxservice.wsdl`
