Skip to content

Mandatory /retrieve-date model doesn't fit age-band-only providers; monitoredPeriod=0 is the only workaround #291

Description

@hdamker

Problem description

/check and /retrieve-date are mandatory; /retrieve-age-band is optional (501 NOT_IMPLEMENTED), documented as "an alternative ... for providers that do not expose the exact SIM swap date" (#285).

But /retrieve-date's only defined way to withhold information is the null + monitoredPeriod mechanism, and that only fires for swaps older than the provider's monitored window. It has no way to express "I categorically do not disclose the exact date, only age bands."

A provider whose policy is age-band-only cannot express that through /retrieve-date's current mandatory model without either:

  • returning the exact date anyway (defeats the reason it wanted /retrieve-age-band in the first place), or
  • setting monitoredPeriod to 0 (or another degenerate value) so it always returns null — using a retention-window field to fake "not offered," since /retrieve-date has no 501 of its own.

The mandatory/optional split assumes /retrieve-age-band is a genuine alternative, but nothing in the spec lets a provider actually commit to offering only that alternative.

Possible evolution

Make /retrieve-date optional (501 NOT_IMPLEMENTED), symmetric with /retrieve-age-band, so an age-band-only provider can say so directly instead of gaming monitoredPeriod. #285 already raised this as an "alternative solution" and deferred it as a breaking, next-major change; this issue tracks that decision explicitly rather than letting it drop.

Alternative solution

Keep /retrieve-date mandatory, but document monitoredPeriod: 0 (or another explicit sentinel) as the sanctioned way to declare "exact date never disclosed," instead of leaving it an implicit hack.

Additional context

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions