---
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 `SAIFDates`† as `saifdates.wsdl` declares it.

| Field | Value |
| --- | --- |
| **Service** | `SAIFDates` |
| **WSDL document** | `Services/SAIF.Services.Web.Proxies/Service References/WorkCalendar/saifdates.wsdl` |
| **SOAP namespace** | `http://saifonline/SAIFDates/SAIFDates` |
| **Port type / binding name** | `SAIFDatesSoap` (SOAP 1.1) / `SAIFDatesSoap12` (SOAP 1.2) |
| **Binding** | SOAP 1.1 over HTTP (`SAIFDatesSoap`); a paired SOAP 1.2 binding (`SAIFDatesSoap12`) is also declared |
| **Encoding style** | `Document` / `Literal` |
| **Parameter style** | Wrapped |
| **Operations declared** | 4 |

## Contract source

The contract is declared by `saifdates.wsdl`. svcutil generated the SOAP client `SAIFDatesSoapClient` from the `SAIFDatesSoap` port type in that document.

## Operations

| Operation | SOAP action | Input message | Output message | Faults | Called in this repository |
| --- | --- | --- | --- | --- | --- |
| `IsWorkingDay` | `http://saifonline/SAIFDates/SAIFDates/IsWorkingDay` | `inDate : dateTime (required); inCalendar : string (0..1)` | `IsWorkingDayResult : boolean` | None declared | Yes — [details](reference.md#isworkingday) |
| `NextWorkDay` | `http://saifonline/SAIFDates/SAIFDates/NextWorkDay` | `inDate : dateTime; inCalendar : string` | `NextWorkDayResult : dateTime` | None declared | Yes — [details](reference.md#nextworkday) |
| `FirstWorkDayOfMonth` | `http://saifonline/SAIFDates/SAIFDates/FirstWorkDayOfMonth` | `inDate : dateTime; inCalendar : string` | `FirstWorkDayOfMonthResult : dateTime` | None declared | Yes — [details](reference.md#firstworkdayofmonth) |
| `LastWorkDayOfMonth` | `http://saifonline/SAIFDates/SAIFDates/LastWorkDayOfMonth` | `inDate : dateTime; inCalendar : string` | `LastWorkDayOfMonthResult : dateTime` | None declared | Yes — [details](reference.md#lastworkdayofmonth) |

`inCalendar` is a free-form string on every operation. The WSDL does not enumerate the valid calendar names; the valid values are unknown from this repository**. The external `WorkCalendar.Saif` enum referenced by `SaifWorkCalendarTests.cs:30` suggests a "SAIF" calendar exists*.

## Messages and types

Every message part on this contract is a primitive (`dateTime`, `string`, `boolean`); there is no complex message type to document.

## 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.

## Binding details

| Aspect | Value |
| --- | --- |
| Transport | HTTP |
| Message version | SOAP 1.1 |
| Security mode | None declared in the WSDL — `BasicHttpBinding()` default (`None`) 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 outside this run's scope |
| Consequence of drift | If the remote contract changed, the wrapper's four pass-through methods could fail, but because no repository code calls the wrapper today, drift has no observable effect in this repository |

## 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 `†` are derived from dependency library
> documentation via the Legends CLI. Statements marked with `*` were inferred
> from code structure or contextual evidence. Statements marked with `**` could
> not be confirmed; treat as unknown until verified.

## Sources
- `Services/SAIF.Services.Web.Proxies/Service References/WorkCalendar/saifdates.wsdl`
- `Tests/SAIF.Services.Tests/SaifWorkCalendarTests.cs`
