An eligibility error is not a rejection
Preserving the difference between an ineligible wallet and an upstream check that could not produce an answer.
The wallet eligibility check returned a boolean. That made two different situations look identical: the provider had rejected the wallet, or the provider had failed to answer the question.
Both could become false in the local integration.
In a claim flow, that is a business decision being made from a technical failure. A failed request is not evidence that the person is ineligible.
Preserve the third outcome
I changed the check to return three possible results:
truewhen the provider explicitly reported eligibility;falsewhen it explicitly reported ineligibility;nullwhen the request failed or the response did not contain a usable answer.
I updated the calling claim code alongside the integration. The provider boundary no longer collapsed “no” and “could not determine” into the same result.
This was a small change, but the distinction mattered more than the amount of code. The integration needed to preserve what the provider actually knew, not produce a yes-or-no answer at any cost.
Content by Stanislav Smirnov (yo@laont.me) · CC BY 4.0. Credit the author, link to this page and the license, and indicate changes when sharing.