{
"id": "com.atiproto.payment.item.create",
"defs": {
"main": {
"type": "procedure",
"input": {
"schema": {
"type": "object",
"required": [
"subject",
"amount",
"currency"
],
"properties": {
"amount": {
"type": "integer",
"description": "Tip amount in cents"
},
"cartUri": {
"type": "string",
"format": "at-uri",
"description": "AT-URI of an existing cart to add this item to. If omitted, a new cart is created."
},
"message": {
"type": "string",
"maxLength": 5000,
"description": "Optional message (max 500 chars)",
"maxGraphemes": 500
},
"subject": {
"type": "string",
"format": "did",
"description": "DID of the user being tipped"
},
"currency": {
"type": "string",
"maxLength": 3,
"description": "ISO 4217 currency code"
},
"workflow": {
"ref": "com.atiproto.actions#inboundWorkflow",
"type": "ref",
"description": "Workflow callback envelope. Present on agent-driven callbacks; absent on initial calls."
},
"isPrivate": {
"type": "boolean",
"description": "If true, the recipient (subject) and recordUri are stored only in atiproto's private database and are omitted from the PDS item record."
},
"recordUri": {
"type": "string",
"format": "at-uri",
"description": "AT-URI of specific record being tipped"
},
"redirectUrl": {
"type": "string",
"format": "uri",
"description": "URL to redirect to after checkout completes"
}
}
},
"encoding": "application/json"
},
"output": {
"schema": {
"type": "object",
"properties": {
"cart": {
"ref": "com.atiproto.cart#view",
"type": "ref",
"description": "The cart record (new or updated)"
},
"item": {
"ref": "com.atiproto.item#view",
"type": "ref",
"description": "The created item record (status: pending)"
},
"cartUri": {
"type": "string",
"format": "at-uri",
"description": "URI of the cart record in PDS"
},
"itemUri": {
"type": "string",
"format": "at-uri",
"description": "URI of the item record in PDS"
},
"workflow": {
"ref": "com.atiproto.actions#outboundWorkflow",
"type": "ref",
"description": "Workflow envelope. When present, the agent runs the actions and calls back. When absent, this is the final native result."
},
"checkoutUrl": {
"type": "string",
"format": "uri",
"description": "Checkout URL hosted by atiproto"
}
}
},
"encoding": "application/json"
},
"description": "Create a item on a DID or specific record. Creates or adds to a cart and returns a checkout URL."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}