dev.cocore.compute.settlement

cocore.dev

Documentation

main record

No description available.

Record Key tid Timestamp-based ID

Properties

exchangeAttestation ref com.atproto.repo.strongRef Optional

Strong-ref to the dev.cocore.compute.exchangeAttestation pinning the software / signing-key combination that produced this settlement.

policy ref com.atproto.repo.strongRef Optional

Strong-ref to the dev.cocore.compute.exchangePolicy this settlement was computed under. Lets a verifier re-run the fee math against the same policy that produced the record.

processorReference bytes Required

Opaque processor transaction id (e.g. Stripe PaymentIntent id), encrypted to the involved parties (requester, provider, exchange) so the public record does not leak processor metadata. Verifiers without keys treat this as opaque.

maxLength: 1024
refundOf ref com.atproto.repo.strongRef Optional

When status=refunded, strong-ref to the prior settled settlement record this refund reverses.

requesterAuthorization ref com.atproto.repo.strongRef Required

Strong-ref to the dev.cocore.compute.paymentAuthorization in the requester's repo. Verifiers MUST check it names this exchange's DID and that ceiling >= amountCharged.

settledAt string datetime Required

An RFC 3339 formatted timestamp.

sig string Optional

ES256 signature (base64url, no padding) over the canonical JSON of every other field. Verified against the verificationMethod publicKeyMultibase in the exchange's did document. Optional for v0.3.x exchanges that haven't enabled signing; required for trust-tier=hardware-attested exchanges.

maxLength: 256 bytes
View raw schema
{
  "key": "tid",
  "record": {
    "properties": {
      "amountCharged": {
        "description": "Amount charged to the requester. MUST equal receipt.price for status=settled.",
        "ref": "dev.cocore.compute.defs#money",
        "type": "ref"
      },
      "exchangeAttestation": {
        "description": "Strong-ref to the dev.cocore.compute.exchangeAttestation pinning the software / signing-key combination that produced this settlement.",
        "ref": "com.atproto.repo.strongRef",
        "type": "ref"
      },
      "exchangeFee": {
        "description": "Exchange's retained fee. amountCharged = providerPayout + exchangeFee.",
        "ref": "dev.cocore.compute.defs#money",
        "type": "ref"
      },
      "policy": {
        "description": "Strong-ref to the dev.cocore.compute.exchangePolicy this settlement was computed under. Lets a verifier re-run the fee math against the same policy that produced the record.",
        "ref": "com.atproto.repo.strongRef",
        "type": "ref"
      },
      "processorReference": {
        "description": "Opaque processor transaction id (e.g. Stripe PaymentIntent id), encrypted to the involved parties (requester, provider, exchange) so the public record does not leak processor metadata. Verifiers without keys treat this as opaque.",
        "maxLength": 1024,
        "type": "bytes"
      },
      "providerPayout": {
        "description": "Amount paid out to the provider after fees.",
        "ref": "dev.cocore.compute.defs#money",
        "type": "ref"
      },
      "receipt": {
        "description": "Strong-ref to the dev.cocore.compute.receipt being settled.",
        "ref": "com.atproto.repo.strongRef",
        "type": "ref"
      },
      "refundOf": {
        "description": "When status=refunded, strong-ref to the prior settled settlement record this refund reverses.",
        "ref": "com.atproto.repo.strongRef",
        "type": "ref"
      },
      "requesterAuthorization": {
        "description": "Strong-ref to the dev.cocore.compute.paymentAuthorization in the requester's repo. Verifiers MUST check it names this exchange's DID and that ceiling >= amountCharged.",
        "ref": "com.atproto.repo.strongRef",
        "type": "ref"
      },
      "settledAt": {
        "format": "datetime",
        "type": "string"
      },
      "sig": {
        "description": "ES256 signature (base64url, no padding) over the canonical JSON of every other field. Verified against the verificationMethod publicKeyMultibase in the exchange's did document. Optional for v0.3.x exchanges that haven't enabled signing; required for trust-tier=hardware-attested exchanges.",
        "maxLength": 256,
        "type": "string"
      },
      "status": {
        "ref": "dev.cocore.compute.defs#settlementStatus",
        "type": "ref"
      }
    },
    "required": [
      "receipt",
      "requesterAuthorization",
      "amountCharged",
      "providerPayout",
      "exchangeFee",
      "processorReference",
      "status",
      "settledAt"
    ],
    "type": "object"
  },
  "type": "record"
}

Lexicon Garden

@