# Seller door API

> Every operation, request, answer and schema of the seller door, generated from openapi.json.

Source: https://connectors.integraledger.com/reference/seller-door-api

<!-- Generated by scripts/docs.mjs from contract/openapi.json. Edit the source, then run: node scripts/docs.mjs -->

# Integra seller door API

The door a seller's own systems call to issue an ATR before approval, to claim a presented payment, to report a settlement, and to read a record's status. Every call is server to server.

* **OpenAPI:** 3.1.1; document version `0.1.0`; license Apache-2.0.
* **Base URL:** `{doorBase}`, where `doorBase` (for example `https://seller.example/door`) is your door's base URL.
* **Authentication:** `sellerCredential`: HTTP `bearer` with format `isk_<base64url>`. The tenant's seller credential, issued through the admin door: `isk_` and 43 base64url characters.

## Operations

| Operation             | Method and path         | Summary                                                                               |
| --------------------- | ----------------------- | ------------------------------------------------------------------------------------- |
| [`issue`](#issue)     | `POST /issue`           | Assemble, store and hash the ATR for one checkout state; return the values to place.  |
| [`claim`](#claim)     | `POST /claim`           | The one check: the presented payment carries this ATR's hash, for the options issued. |
| [`report`](#report)   | `POST /report`          | The platform's payment reference, keyed by the ATR hash.                              |
| [`status`](#status)   | `GET /status/{atrHash}` | The record and what it proves.                                                        |
| [`openapi`](#openapi) | `GET /openapi.json`     | This document.                                                                        |

### issue

`POST /issue`: Assemble, store and hash the ATR for one checkout state; return the values to place.

Requires the seller credential: `Authorization: Bearer isk_…`.

**Request body** (`application/json`): [IssueRequest](#issuerequest).

| Status | Meaning                                                                 | Body                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | Headers                                          |
| ------ | ----------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------ |
| 200    | The ATR is in the seller's storage; place these values before approval. | [IssueResponse](#issueresponse)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |                                                  |
| 400    | The body is not the operation's JSON object.                            | [Refusal](#refusal): [`door/malformed`](https://connectors.integraledger.com/reference/refusals#doormalformed)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |                                                  |
| 401    | No valid seller credential.                                             | [Refusal](#refusal): [`door/unauthenticated`](https://connectors.integraledger.com/reference/refusals#doorunauthenticated)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | `WWW-Authenticate`: `Bearer realm="seller-door"` |
| 403    | The request carries an Origin header; the door serves servers only.     | [Refusal](#refusal): [`door/browser-origin`](https://connectors.integraledger.com/reference/refusals#doorbrowser-origin)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |                                                  |
| 404    | Nothing known by that name for this tenant.                             | [Refusal](#refusal): [`door/not-found`](https://connectors.integraledger.com/reference/refusals#doornot-found), [`door/resource-unknown`](https://connectors.integraledger.com/reference/refusals#doorresource-unknown), [`claim/unknown`](https://connectors.integraledger.com/reference/refusals#claimunknown)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |                                                  |
| 409    | The record is in a state that does not allow this.                      | [Refusal](#refusal): [`issue/mint-request-reused`](https://connectors.integraledger.com/reference/refusals#issuemint-request-reused), [`issue/mint-request-lapsed`](https://connectors.integraledger.com/reference/refusals#issuemint-request-lapsed), [`claim/in-progress`](https://connectors.integraledger.com/reference/refusals#claimin-progress), [`claim/paid`](https://connectors.integraledger.com/reference/refusals#claimpaid), [`claim/not-this-request`](https://connectors.integraledger.com/reference/refusals#claimnot-this-request), [`claim/channel-open`](https://connectors.integraledger.com/reference/refusals#claimchannel-open), [`claim/channel-not-open`](https://connectors.integraledger.com/reference/refusals#claimchannel-not-open), [`report/pairing-mismatch`](https://connectors.integraledger.com/reference/refusals#reportpairing-mismatch), [`settle/other-reference`](https://connectors.integraledger.com/reference/refusals#settleother-reference), [`settle/not-settling`](https://connectors.integraledger.com/reference/refusals#settlenot-settling)                                                                                                                                                                                                                                                                                                                                                                                                                                                                |                                                  |
| 413    | The body is larger than this operation accepts.                         | [Refusal](#refusal): [`door/too-large`](https://connectors.integraledger.com/reference/refusals#doortoo-large)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |                                                  |
| 415    | The body is not application/json.                                       | [Refusal](#refusal): [`door/media-type`](https://connectors.integraledger.com/reference/refusals#doormedia-type)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |                                                  |
| 422    | The request cannot be served as sent.                                   | [Refusal](#refusal): [`door/request-required`](https://connectors.integraledger.com/reference/refusals#doorrequest-required), [`door/chosen-required`](https://connectors.integraledger.com/reference/refusals#doorchosen-required), [`door/reference-required`](https://connectors.integraledger.com/reference/refusals#doorreference-required), [`door/receipt-required`](https://connectors.integraledger.com/reference/refusals#doorreceipt-required), [`issue/input-bounds`](https://connectors.integraledger.com/reference/refusals#issueinput-bounds), [`issue/pairing-not-served`](https://connectors.integraledger.com/reference/refusals#issuepairing-not-served), [`issue/offer-refused`](https://connectors.integraledger.com/reference/refusals#issueoffer-refused), [`issue/mixed-protocols`](https://connectors.integraledger.com/reference/refusals#issuemixed-protocols), [`core/slot-name`](https://connectors.integraledger.com/reference/refusals#coreslot-name), [`core/slot-reserved`](https://connectors.integraledger.com/reference/refusals#coreslot-reserved), [`core/slot-duplicate`](https://connectors.integraledger.com/reference/refusals#coreslot-duplicate), [`core/content-not-json`](https://connectors.integraledger.com/reference/refusals#corecontent-not-json), [`core/binding-not-json`](https://connectors.integraledger.com/reference/refusals#corebinding-not-json), [`core/too-large`](https://connectors.integraledger.com/reference/refusals#coretoo-large), [`claim/pairing-unknown`](https://connectors.integraledger.com/reference/refusals#claimpairing-unknown), [`claim/not-bound`](https://connectors.integraledger.com/reference/refusals#claimnot-bound), [`claim/nothing-to-check`](https://connectors.integraledger.com/reference/refusals#claimnothing-to-check) |                                                  |
| 503    | Not available now; retry after one second.                              | [Refusal](#refusal): [`issue/deadline`](https://connectors.integraledger.com/reference/refusals#issuedeadline), [`issue/contributor-unavailable`](https://connectors.integraledger.com/reference/refusals#issuecontributor-unavailable), [`issue/storage-unavailable`](https://connectors.integraledger.com/reference/refusals#issuestorage-unavailable), [`issue/store-unavailable`](https://connectors.integraledger.com/reference/refusals#issuestore-unavailable), [`issue/capacity`](https://connectors.integraledger.com/reference/refusals#issuecapacity), [`claim/store-unavailable`](https://connectors.integraledger.com/reference/refusals#claimstore-unavailable), [`settle/store-unavailable`](https://connectors.integraledger.com/reference/refusals#settlestore-unavailable)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | `Retry-After`: `1`                               |

### claim

`POST /claim`: The one check: the presented payment carries this ATR's hash, for the options issued.

Requires the seller credential: `Authorization: Bearer isk_…`.

**Request body** (`application/json`): [ClaimRequest](#claimrequest).

| Status | Meaning                                                                                                        | Body                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | Headers                                          |
| ------ | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------ |
| 200    | Claimed, and the record is settling; or, for a pushed payment that landed and then failed the check, declined. | [ClaimResponse](#claimresponse) or [ClaimDeclined](#claimdeclined)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |                                                  |
| 400    | The body is not the operation's JSON object.                                                                   | [Refusal](#refusal): [`door/malformed`](https://connectors.integraledger.com/reference/refusals#doormalformed)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |                                                  |
| 401    | No valid seller credential.                                                                                    | [Refusal](#refusal): [`door/unauthenticated`](https://connectors.integraledger.com/reference/refusals#doorunauthenticated)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | `WWW-Authenticate`: `Bearer realm="seller-door"` |
| 403    | The request carries an Origin header; the door serves servers only.                                            | [Refusal](#refusal): [`door/browser-origin`](https://connectors.integraledger.com/reference/refusals#doorbrowser-origin)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |                                                  |
| 404    | Nothing known by that name for this tenant.                                                                    | [Refusal](#refusal): [`door/not-found`](https://connectors.integraledger.com/reference/refusals#doornot-found), [`door/resource-unknown`](https://connectors.integraledger.com/reference/refusals#doorresource-unknown), [`claim/unknown`](https://connectors.integraledger.com/reference/refusals#claimunknown)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |                                                  |
| 409    | The record is in a state that does not allow this.                                                             | [Refusal](#refusal): [`issue/mint-request-reused`](https://connectors.integraledger.com/reference/refusals#issuemint-request-reused), [`issue/mint-request-lapsed`](https://connectors.integraledger.com/reference/refusals#issuemint-request-lapsed), [`claim/in-progress`](https://connectors.integraledger.com/reference/refusals#claimin-progress), [`claim/paid`](https://connectors.integraledger.com/reference/refusals#claimpaid), [`claim/not-this-request`](https://connectors.integraledger.com/reference/refusals#claimnot-this-request), [`claim/channel-open`](https://connectors.integraledger.com/reference/refusals#claimchannel-open), [`claim/channel-not-open`](https://connectors.integraledger.com/reference/refusals#claimchannel-not-open), [`report/pairing-mismatch`](https://connectors.integraledger.com/reference/refusals#reportpairing-mismatch), [`settle/other-reference`](https://connectors.integraledger.com/reference/refusals#settleother-reference), [`settle/not-settling`](https://connectors.integraledger.com/reference/refusals#settlenot-settling), [`claim/agreement-first`](https://connectors.integraledger.com/reference/refusals#claimagreement-first), [`claim/instrument-claimed`](https://connectors.integraledger.com/reference/refusals#claiminstrument-claimed)                                                                                                                                                                                                                                                                                                                |                                                  |
| 410    | The challenge has lapsed.                                                                                      | [Refusal](#refusal): [`claim/lapsed`](https://connectors.integraledger.com/reference/refusals#claimlapsed)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |                                                  |
| 413    | The body is larger than this operation accepts.                                                                | [Refusal](#refusal): [`door/too-large`](https://connectors.integraledger.com/reference/refusals#doortoo-large)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |                                                  |
| 415    | The body is not application/json.                                                                              | [Refusal](#refusal): [`door/media-type`](https://connectors.integraledger.com/reference/refusals#doormedia-type)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |                                                  |
| 422    | The request cannot be served as sent.                                                                          | [Refusal](#refusal): [`door/request-required`](https://connectors.integraledger.com/reference/refusals#doorrequest-required), [`door/chosen-required`](https://connectors.integraledger.com/reference/refusals#doorchosen-required), [`door/reference-required`](https://connectors.integraledger.com/reference/refusals#doorreference-required), [`door/receipt-required`](https://connectors.integraledger.com/reference/refusals#doorreceipt-required), [`issue/input-bounds`](https://connectors.integraledger.com/reference/refusals#issueinput-bounds), [`issue/pairing-not-served`](https://connectors.integraledger.com/reference/refusals#issuepairing-not-served), [`issue/offer-refused`](https://connectors.integraledger.com/reference/refusals#issueoffer-refused), [`issue/mixed-protocols`](https://connectors.integraledger.com/reference/refusals#issuemixed-protocols), [`core/slot-name`](https://connectors.integraledger.com/reference/refusals#coreslot-name), [`core/slot-reserved`](https://connectors.integraledger.com/reference/refusals#coreslot-reserved), [`core/slot-duplicate`](https://connectors.integraledger.com/reference/refusals#coreslot-duplicate), [`core/content-not-json`](https://connectors.integraledger.com/reference/refusals#corecontent-not-json), [`core/binding-not-json`](https://connectors.integraledger.com/reference/refusals#corebinding-not-json), [`core/too-large`](https://connectors.integraledger.com/reference/refusals#coretoo-large), [`claim/pairing-unknown`](https://connectors.integraledger.com/reference/refusals#claimpairing-unknown), [`claim/not-bound`](https://connectors.integraledger.com/reference/refusals#claimnot-bound), [`claim/nothing-to-check`](https://connectors.integraledger.com/reference/refusals#claimnothing-to-check) |                                                  |
| 503    | Not available now; retry after one second.                                                                     | [Refusal](#refusal): [`issue/deadline`](https://connectors.integraledger.com/reference/refusals#issuedeadline), [`issue/contributor-unavailable`](https://connectors.integraledger.com/reference/refusals#issuecontributor-unavailable), [`issue/storage-unavailable`](https://connectors.integraledger.com/reference/refusals#issuestorage-unavailable), [`issue/store-unavailable`](https://connectors.integraledger.com/reference/refusals#issuestore-unavailable), [`issue/capacity`](https://connectors.integraledger.com/reference/refusals#issuecapacity), [`claim/store-unavailable`](https://connectors.integraledger.com/reference/refusals#claimstore-unavailable), [`claim/read-unavailable`](https://connectors.integraledger.com/reference/refusals#claimread-unavailable), [`settle/store-unavailable`](https://connectors.integraledger.com/reference/refusals#settlestore-unavailable)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | `Retry-After`: `1`                               |

### report

`POST /report`: The platform's payment reference, keyed by the ATR hash.

Requires the seller credential: `Authorization: Bearer isk_…`.

**Request body** (`application/json`): [ReportRequest](#reportrequest).

| Status | Meaning                                                                                                                        | Body                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | Headers                                          |
| ------ | ------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------ |
| 200    | The record as it now stands.                                                                                                   | [RecordView](#recordview)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |                                                  |
| 202    | Accepted; nothing final was read yet. A settling record is finished by the seller door; an issued one is reported again later. | [RecordView](#recordview)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |                                                  |
| 400    | The body is not the operation's JSON object.                                                                                   | [Refusal](#refusal): [`door/malformed`](https://connectors.integraledger.com/reference/refusals#doormalformed)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |                                                  |
| 401    | No valid seller credential.                                                                                                    | [Refusal](#refusal): [`door/unauthenticated`](https://connectors.integraledger.com/reference/refusals#doorunauthenticated)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | `WWW-Authenticate`: `Bearer realm="seller-door"` |
| 403    | The request carries an Origin header; the door serves servers only.                                                            | [Refusal](#refusal): [`door/browser-origin`](https://connectors.integraledger.com/reference/refusals#doorbrowser-origin)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |                                                  |
| 404    | Nothing known by that name for this tenant.                                                                                    | [Refusal](#refusal): [`door/not-found`](https://connectors.integraledger.com/reference/refusals#doornot-found), [`door/resource-unknown`](https://connectors.integraledger.com/reference/refusals#doorresource-unknown), [`claim/unknown`](https://connectors.integraledger.com/reference/refusals#claimunknown)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |                                                  |
| 409    | The record is in a state that does not allow this.                                                                             | [Refusal](#refusal): [`issue/mint-request-reused`](https://connectors.integraledger.com/reference/refusals#issuemint-request-reused), [`issue/mint-request-lapsed`](https://connectors.integraledger.com/reference/refusals#issuemint-request-lapsed), [`claim/in-progress`](https://connectors.integraledger.com/reference/refusals#claimin-progress), [`claim/paid`](https://connectors.integraledger.com/reference/refusals#claimpaid), [`claim/not-this-request`](https://connectors.integraledger.com/reference/refusals#claimnot-this-request), [`claim/channel-open`](https://connectors.integraledger.com/reference/refusals#claimchannel-open), [`claim/channel-not-open`](https://connectors.integraledger.com/reference/refusals#claimchannel-not-open), [`report/pairing-mismatch`](https://connectors.integraledger.com/reference/refusals#reportpairing-mismatch), [`settle/other-reference`](https://connectors.integraledger.com/reference/refusals#settleother-reference), [`settle/not-settling`](https://connectors.integraledger.com/reference/refusals#settlenot-settling)                                                                                                                                                                                                                                                                                                                                                                                                                                                                |                                                  |
| 413    | The body is larger than this operation accepts.                                                                                | [Refusal](#refusal): [`door/too-large`](https://connectors.integraledger.com/reference/refusals#doortoo-large)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |                                                  |
| 415    | The body is not application/json.                                                                                              | [Refusal](#refusal): [`door/media-type`](https://connectors.integraledger.com/reference/refusals#doormedia-type)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |                                                  |
| 422    | The request cannot be served as sent.                                                                                          | [Refusal](#refusal): [`door/request-required`](https://connectors.integraledger.com/reference/refusals#doorrequest-required), [`door/chosen-required`](https://connectors.integraledger.com/reference/refusals#doorchosen-required), [`door/reference-required`](https://connectors.integraledger.com/reference/refusals#doorreference-required), [`door/receipt-required`](https://connectors.integraledger.com/reference/refusals#doorreceipt-required), [`issue/input-bounds`](https://connectors.integraledger.com/reference/refusals#issueinput-bounds), [`issue/pairing-not-served`](https://connectors.integraledger.com/reference/refusals#issuepairing-not-served), [`issue/offer-refused`](https://connectors.integraledger.com/reference/refusals#issueoffer-refused), [`issue/mixed-protocols`](https://connectors.integraledger.com/reference/refusals#issuemixed-protocols), [`core/slot-name`](https://connectors.integraledger.com/reference/refusals#coreslot-name), [`core/slot-reserved`](https://connectors.integraledger.com/reference/refusals#coreslot-reserved), [`core/slot-duplicate`](https://connectors.integraledger.com/reference/refusals#coreslot-duplicate), [`core/content-not-json`](https://connectors.integraledger.com/reference/refusals#corecontent-not-json), [`core/binding-not-json`](https://connectors.integraledger.com/reference/refusals#corebinding-not-json), [`core/too-large`](https://connectors.integraledger.com/reference/refusals#coretoo-large), [`claim/pairing-unknown`](https://connectors.integraledger.com/reference/refusals#claimpairing-unknown), [`claim/not-bound`](https://connectors.integraledger.com/reference/refusals#claimnot-bound), [`claim/nothing-to-check`](https://connectors.integraledger.com/reference/refusals#claimnothing-to-check) |                                                  |
| 503    | Not available now; retry after one second.                                                                                     | [Refusal](#refusal): [`issue/deadline`](https://connectors.integraledger.com/reference/refusals#issuedeadline), [`issue/contributor-unavailable`](https://connectors.integraledger.com/reference/refusals#issuecontributor-unavailable), [`issue/storage-unavailable`](https://connectors.integraledger.com/reference/refusals#issuestorage-unavailable), [`issue/store-unavailable`](https://connectors.integraledger.com/reference/refusals#issuestore-unavailable), [`issue/capacity`](https://connectors.integraledger.com/reference/refusals#issuecapacity), [`claim/store-unavailable`](https://connectors.integraledger.com/reference/refusals#claimstore-unavailable), [`settle/store-unavailable`](https://connectors.integraledger.com/reference/refusals#settlestore-unavailable)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | `Retry-After`: `1`                               |

### status

`GET /status/{atrHash}`: The record and what it proves.

Requires the seller credential: `Authorization: Bearer isk_…`.

**Path parameter** `atrHash`: [AtrHashInput](#atrhashinput), required.

| Status | Meaning                                                             | Body                                                                                                                                                                                                 | Headers                                          |
| ------ | ------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------ |
| 200    | The record.                                                         | [RecordView](#recordview)                                                                                                                                                                            |                                                  |
| 401    | No valid seller credential.                                         | [Refusal](#refusal): [`door/unauthenticated`](https://connectors.integraledger.com/reference/refusals#doorunauthenticated)                                                                                                               | `WWW-Authenticate`: `Bearer realm="seller-door"` |
| 403    | The request carries an Origin header; the door serves servers only. | [Refusal](#refusal): [`door/browser-origin`](https://connectors.integraledger.com/reference/refusals#doorbrowser-origin)                                                                                                                 |                                                  |
| 404    | Nothing known by that name for this tenant.                         | [Refusal](#refusal): [`door/not-found`](https://connectors.integraledger.com/reference/refusals#doornot-found), [`door/resource-unknown`](https://connectors.integraledger.com/reference/refusals#doorresource-unknown), [`claim/unknown`](https://connectors.integraledger.com/reference/refusals#claimunknown) |                                                  |
| 503    | Not available now; retry after one second.                          | [Refusal](#refusal): [`settle/store-unavailable`](https://connectors.integraledger.com/reference/refusals#settlestore-unavailable)                                                                                                       | `Retry-After`: `1`                               |

### openapi

`GET /openapi.json`: This document.

No credential is required.

| Status | Meaning                | Body     | Headers |
| ------ | ---------------------- | -------- | ------- |
| 200    | This document's bytes. | `object` |         |

## Schemas

### AtrHash

`0x` and 64 lowercase hex digits: the SHA-256 of the ATR's bytes.

`string`; pattern `^0x[0-9a-f]{64}$`.

### AtrHashInput

`0x` and 64 hex digits, either case.

`string`; pattern `^0x[0-9a-fA-F]{64}$`.

### PairingId

A pairing of protocol, scheme and rail, as the LCP package registers it.

`string`; pattern `^[a-z0-9-]+(/[A-Za-z0-9._:-]+)+$`; 1 to 128 characters.

### Offer

An object. A member not listed here is refused.

| Field     | Type                    | Required | Constraints | Description                                                |
| --------- | ----------------------- | -------- | ----------- | ---------------------------------------------------------- |
| `pairing` | [PairingId](#pairingid) | yes      |             |                                                            |
| `option`  | any JSON value          | yes      |             | The payment option exactly as the challenge will carry it. |

### ContentSlot

An object. A member not listed here is refused.

| Field   | Type     | Required | Constraints                                                                                             | Description                                                                  |
| ------- | -------- | -------- | ------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| `slot`  | `string` | yes      | pattern `^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$`                                                             |                                                                              |
| `bytes` | `string` | yes      | pattern `^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==\|[A-Za-z0-9+/]{3}=)?$`; at most 1398104 characters | Base64 with padding (RFC 4648 §4) of the slot's exact bytes: one JSON value. |

### RequestCommitment

The request an x402 challenge answers: the method, the target split at its first `?`, and SHA-256 over the body bytes as received.

An object. A member not listed here is refused.

| Field        | Type                | Required | Constraints                                                    | Description |
| ------------ | ------------------- | -------- | -------------------------------------------------------------- | ----------- |
| `method`     | `string`            | yes      | pattern ``^[!#$%&'*+.^_`\|~0-9A-Za-z-]+$``; 1 to 32 characters |             |
| `path`       | `string`            | yes      | pattern `^/[!-~]*$`; 1 to 8192 characters                      |             |
| `query`      | `string`            | yes      | pattern `^[!-~]*$`; at most 8192 characters                    |             |
| `bodyDigest` | [AtrHash](#atrhash) | yes      |                                                                |             |

### IssueRequest

An object. A member not listed here is refused.

| Field             | Type                                    | Required | Constraints                        | Description |
| ----------------- | --------------------------------------- | -------- | ---------------------------------- | ----------- |
| `mintRequestId`   | `string`                                | yes      | pattern `^[A-Za-z0-9._:-]{1,128}$` |             |
| `resource`        | `string`                                | yes      | 1 to 512 characters                |             |
| `lifetimeSeconds` | `integer`                               | yes      | 1 to 604800                        |             |
| `offers`          | array of [Offer](#offer)                | yes      | 1 to 16 items                      |             |
| `content`         | array of [ContentSlot](#contentslot)    | no       | at most 56 items                   |             |
| `request`         | [RequestCommitment](#requestcommitment) | no       |                                    |             |

### Carriers

An object. A member not listed here is refused.

| Field                             | Type                | Required | Constraints                           | Description |
| --------------------------------- | ------------------- | -------- | ------------------------------------- | ----------- |
| `lcp`                             | `string`            | yes      | pattern `^lcp:sha256:0x[0-9a-f]{64}$` |             |
| `legalContext`                    | `object`            | yes      |                                       |             |
| `legalContext.type`               | `"sha256"`          | yes      |                                       |             |
| `legalContext.value`              | [AtrHash](#atrhash) | yes      |                                       |             |
| `legalContext.legalContextUrl`    | `string`            | yes      | pattern `^https://`                   |             |
| `legal_context`                   | `object`            | yes      |                                       |             |
| `legal_context.type`              | `"sha256"`          | yes      |                                       |             |
| `legal_context.value`             | [AtrHash](#atrhash) | yes      |                                       |             |
| `legal_context.legal_context_url` | `string`            | yes      | pattern `^https://`                   |             |

### LcpPattern

An object. A member not listed here is refused.

| Field                  | Type                                                                                                                                                                | Required | Constraints | Description |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ----------- | ----------- |
| `pattern`              | `"native-field"`, `"overlay-contract"`, `"sidecar-attestation"`, `"opaque-challenge"`, `"id-reuse"`, `"protocol-extension"`, `"http-advisory"`, `"truncated-field"` | yes      |             |             |
| `canonical`            | `boolean`                                                                                                                                                           | yes      |             |             |
| `profile`              | `string`                                                                                                                                                            | no       |             |             |
| `buyerSigns`           | `boolean`                                                                                                                                                           | yes      |             |             |
| `onChain`              | `boolean`                                                                                                                                                           | yes      |             |             |
| `zeroPartyRecoverable` | `boolean`                                                                                                                                                           | yes      |             |             |
| `forwardIndexable`     | `boolean`                                                                                                                                                           | yes      |             |             |
| `publicProof`          | `boolean`                                                                                                                                                           | yes      |             |             |
| `proves`               | `string`                                                                                                                                                            | yes      |             |             |
| `instrument`           | `"landed"`                                                                                                                                                          | no       |             |             |

### Proves

An object. A member not listed here is refused.

| Field       | Type                                                 | Required | Constraints | Description                                                                                                                                                   |
| ----------- | ---------------------------------------------------- | -------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `claimed`   | `boolean`                                            | yes      |             |                                                                                                                                                               |
| `pattern`   | [LcpPattern](#lcppattern) or `null`                  | yes      |             |                                                                                                                                                               |
| `settledBy` | `"read"`, `"facilitator"`, `"seller-report"`, `null` | yes      |             | What made the payment paid: a read of the rail, the facilitator's settle answer, or the seller's report on a pairing with nothing to read; null while unpaid. |

### IssueResponse

An object. A member not listed here is refused.

| Field               | Type                    | Required | Constraints                                  | Description                                                                                                                                                           |
| ------------------- | ----------------------- | -------- | -------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `atrHash`           | [AtrHash](#atrhash)     | yes      |                                              |                                                                                                                                                                       |
| `link`              | `string`                | yes      | pattern `^https://`                          |                                                                                                                                                                       |
| `expiresAt`         | `string`                | yes      | format `date-time`                           |                                                                                                                                                                       |
| `mintRequestId`     | `string`                | yes      | pattern `^[A-Za-z0-9._:-]{1,128}$`           |                                                                                                                                                                       |
| `carriers`          | [Carriers](#carriers)   | yes      |                                              |                                                                                                                                                                       |
| `pairings`          | array of `object`       | yes      | 1 to 16 items                                |                                                                                                                                                                       |
| `agreement`         | `object`                | no       |                                              | Present when the record requires the agreement step: the agreement URL to place beside the carriers, the network the agreement is paid on, and the agreement pairing. |
| `agreement.url`     | `string`                | yes      | pattern `^https://`; at most 2048 characters |                                                                                                                                                                       |
| `agreement.network` | `string`                | yes      | at most 64 characters                        |                                                                                                                                                                       |
| `agreement.pairing` | [PairingId](#pairingid) | yes      |                                              |                                                                                                                                                                       |

### ClaimRequest

An object. A member not listed here is refused.

| Field      | Type                                    | Required | Constraints         | Description                                    |
| ---------- | --------------------------------------- | -------- | ------------------- | ---------------------------------------------- |
| `resource` | `string`                                | yes      | 1 to 512 characters |                                                |
| `pairing`  | [PairingId](#pairingid)                 | yes      |                     |                                                |
| `payment`  | any JSON value                          | yes      |                     | What the buyer presented, exactly as received. |
| `chosen`   | any JSON value                          | yes      |                     | The option the payment names, as issued.       |
| `network`  | `string`                                | yes      | 1 to 64 characters  |                                                |
| `request`  | [RequestCommitment](#requestcommitment) | no       |                     |                                                |
| `settleBy` | `integer`                               | no       | at least 0          | Unix seconds; at most now + 604 800.           |

### ClaimResponse

An object. A member not listed here is refused.

| Field     | Type                    | Required | Constraints | Description |
| --------- | ----------------------- | -------- | ----------- | ----------- |
| `atrHash` | [AtrHash](#atrhash)     | yes      |             |             |
| `state`   | `"settling"`            | yes      |             |             |
| `pairing` | [PairingId](#pairingid) | yes      |             |             |
| `proves`  | [Proves](#proves)       | yes      |             |             |

### ClaimDeclined

A pushed payment that landed and then failed the check: reported, never refused.

An object. A member not listed here is refused.

| Field         | Type                          | Required | Constraints                                              | Description |
| ------------- | ----------------------------- | -------- | -------------------------------------------------------- | ----------- |
| `atrHash`     | [AtrHash](#atrhash) or `null` | yes      |                                                          |             |
| `state`       | `"declined"`                  | yes      |                                                          |             |
| `pairing`     | [PairingId](#pairingid)       | yes      |                                                          |             |
| `code`        | `string`                      | yes      | pattern `^[a-z0-9-]+/[a-z0-9-]+$`; at most 64 characters |             |
| `transaction` | `string` or `null`            | yes      | 1 to 256 characters                                      |             |

### Reference

`string`; pattern `^[^\u0000-\u001f\u007f]+$`; 1 to 256 characters.

### ReportRequest

[ReportOutcome](#reportoutcome) or [ReportClosed](#reportclosed).

### ReportOutcome

An object. A member not listed here is refused.

| Field       | Type                                    | Required | Constraints        | Description                                                                                                        |
| ----------- | --------------------------------------- | -------- | ------------------ | ------------------------------------------------------------------------------------------------------------------ |
| `atrHash`   | [AtrHashInput](#atrhashinput)           | yes      |                    |                                                                                                                    |
| `pairing`   | [PairingId](#pairingid)                 | yes      |                    |                                                                                                                    |
| `outcome`   | `"paid"`, `"declined"`                  | yes      |                    |                                                                                                                    |
| `reference` | [Reference](#reference)                 | no       |                    |                                                                                                                    |
| `network`   | `string`                                | no       | 1 to 64 characters |                                                                                                                    |
| `chosen`    | any JSON value                          | no       |                    | On a record with no claim: the option the payment paid, as issued, from which its read keys are taken.             |
| `receipt`   | any JSON value                          | no       |                    | On a confirm-only channel pairing's paid report: the receipt its opening answered, from which the channel is read. |
| `request`   | [RequestCommitment](#requestcommitment) | no       |                    |                                                                                                                    |

### ReportClosed

A channel pairing's close: the close transaction, read before the record is closed.

An object. A member not listed here is refused.

| Field       | Type                          | Required | Constraints        | Description |
| ----------- | ----------------------------- | -------- | ------------------ | ----------- |
| `atrHash`   | [AtrHashInput](#atrhashinput) | yes      |                    |             |
| `pairing`   | [PairingId](#pairingid)       | yes      |                    |             |
| `state`     | `"closed"`                    | yes      |                    |             |
| `reference` | [Reference](#reference)       | yes      |                    |             |
| `network`   | `string`                      | no       | 1 to 64 characters |             |
| `chosen`    | any JSON value                | no       |                    |             |

### Channel

An object. A member not listed here is refused.

| Field     | Type               | Required | Constraints        | Description                                                            |
| --------- | ------------------ | -------- | ------------------ | ---------------------------------------------------------------------- |
| `network` | `string`           | yes      |                    |                                                                        |
| `channel` | `string`           | yes      |                    |                                                                        |
| `until`   | `string` or `null` | yes      | format `date-time` | The rail's deadline for the channel, or null when the rail gives none. |
| `closed`  | `boolean`          | yes      |                    |                                                                        |

### Agreement

The agreement step's leg: required until the buyer pays the agreement URL, settling while that payment settles, recorded once it is on chain.

An object. A member not listed here is refused.

| Field         | Type                                     | Required | Constraints | Description |
| ------------- | ---------------------------------------- | -------- | ----------- | ----------- |
| `state`       | `"required"`, `"settling"`, `"recorded"` | yes      |             |             |
| `network`     | `string` or `null`                       | yes      |             |             |
| `transaction` | `string` or `null`                       | yes      |             |             |

### RecordView

An object. A member not listed here is refused.

| Field        | Type                                           | Required | Constraints        | Description |
| ------------ | ---------------------------------------------- | -------- | ------------------ | ----------- |
| `atrHash`    | [AtrHash](#atrhash)                            | yes      |                    |             |
| `state`      | `"issued"`, `"settling"`, `"paid"`, `"closed"` | yes      |                    |             |
| `expiresAt`  | `string`                                       | yes      | format `date-time` |             |
| `settlement` | `null` or `object`                             | yes      |                    |             |
| `proves`     | [Proves](#proves)                              | yes      |                    |             |
| `agreement`  | [Agreement](#agreement) or `null`              | yes      |                    |             |
| `channel`    | [Channel](#channel) or `null`                  | yes      |                    |             |

### Refusal

An object. A member not listed here is refused.

| Field           | Type                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | Required | Constraints          | Description |
| --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | -------------------- | ----------- |
| `code`          | `"door/malformed"`, `"door/unauthenticated"`, `"door/browser-origin"`, `"door/not-found"`, `"door/resource-unknown"`, `"claim/unknown"`, `"door/method"`, `"door/too-large"`, `"door/media-type"`, `"issue/mint-request-reused"`, `"issue/mint-request-lapsed"`, `"claim/in-progress"`, `"claim/paid"`, `"claim/not-this-request"`, `"claim/channel-open"`, `"claim/channel-not-open"`, `"claim/agreement-first"`, `"claim/instrument-claimed"`, `"report/pairing-mismatch"`, `"settle/other-reference"`, `"settle/not-settling"`, `"claim/lapsed"`, `"door/request-required"`, `"door/chosen-required"`, `"door/reference-required"`, `"door/receipt-required"`, `"issue/input-bounds"`, `"issue/pairing-not-served"`, `"issue/offer-refused"`, `"issue/mixed-protocols"`, `"core/slot-name"`, `"core/slot-reserved"`, `"core/slot-duplicate"`, `"core/content-not-json"`, `"core/binding-not-json"`, `"core/too-large"`, `"claim/pairing-unknown"`, `"claim/not-bound"`, `"claim/nothing-to-check"`, `"issue/deadline"`, `"issue/contributor-unavailable"`, `"issue/storage-unavailable"`, `"issue/store-unavailable"`, `"issue/capacity"`, `"claim/store-unavailable"`, `"claim/read-unavailable"`, `"settle/store-unavailable"` | yes      |                      |             |
| `sentence`      | `string`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | yes      |                      |             |
| `correlationId` | `string`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | yes      | at least 1 character |             |
