OID4VP

Fetch the detached signatures of an x401 Verifiable Credential Presentation

Presentations delivered through x401 to an organization billed by invoice, with no card or bank account on file, omit the signature segment of both the Issuer-signed JWT and the Key Binding JWT. The Key Binding JWT header carries a critical proof.com#sig-1 parameter whose value is the id to send here. Authenticate with a private_key_jwt client assertion from the OAuth Application that requested the presentation, with aud set to this endpoint URL.

When the transaction is not yet paid, the first call answers 402 with x402 payment requirements (https://www.x402.org) for the transaction price; repeat the request with the PAYMENT-SIGNATURE header to settle and receive the signatures. A 409 means the transaction is still being finalized: retry after the Retry-After delay. Records expire one hour after the presentation.

post/verifiable-credentials/v1/x401-signatures

Request

  • Base URL
    https://api.proof.com
  • URL
    https://api.proof.com/verifiable-credentials/v1/x401-signatures
  • Auth
    none declared

Request body

idstring required

The value of the proof.com#sig-1 header parameter of the Key Binding JWT.

client_assertion_type'urn:ietf:params:oauth:client-assertion-type:jwt-bearer' required
client_assertionstring required

A private_key_jwt assertion signed by a key registered on your OAuth Application, with aud set to this endpoint URL.

Example request

{
  "client_assertion_type": "urn:ietf:params:oauth:client-assertion-type:jwt-bearer",
  "client_assertion": "eyJraWQiOiJMXzVuQkg0bTl6MUpPVjhDSy1WMW9aVFFDd180Y1lIZHhqMnlNeGZGVGh3IiwiYWxnIjoiRVMyNTYifQ.eyJpc3MiOiJodHRwczovL2NsaWVudC5leGFtcGxlLmNvbS9tZXRhZGF0YS5qc29uIiwic3ViIjoiaHR0cHM6Ly9jbGllbnQuZXhhbXBsZS5jb20vbWV0YWRhdGEuanNvbiIsImF1ZCI6Imh0dHBzOi8vYXBpLmxvY2FsLmRldi1ub3Rhcml6ZS5jb20vdmVyaWZpYWJsZS1jcmVkZW50aWFscy92MS94NDAxLXNpZ25hdHVyZXMiLCJleHAiOjE3OTM1NDk2NjUsImp0aSI6ImQ0NzU1YzZjLWIyY2UtNGJhYi1hNjVmLTVhYzA2OGY5NGUyMCJ9.9x2Dwk5jR0XuG319-NhVjMhLgQp3iFh2DFc5xndEJ4HEWUjgOo302_wWPmaa--iboydQWwGdROE9CLAOfBmKAg",
  "id": "dCSK6KifYCvkTK5ooDggkA"
}

Response

OK

issuer_signaturestring required

The base64url signature segment of the Issuer-signed JWT, to splice back into the first ~-separated part of the SD-JWT.

kb_signaturestring required

The base64url signature segment of the Key Binding JWT, to splice back into the last ~-separated part of the SD-JWT.

Changes

No recorded changes to this operation across all 1 revision of this API.