book_venue
Reserve a venue offer grounded by match_venues. Pass entityId and the selected offerId. The guest must approve every booking themselves, signed in to their Selfe account: the first call returns status 'approval_required' with approval.url for the guest to open; once they have approved, call again with the same offer and approvalId. A signed mandate alone cannot confirm a booking. No money moves at this step. Returns a confirmation (bookingId) or a conversational next step. Structured JSON.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"entityId": "<entityId>",
"offerId": "<offerId>"
},
"name": "book_venue"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| render | No | ||
| mandate | No | A signed AP2 Cart Mandate for a foreign caller, bound to this entity and offer. | |
| offerId | Yes | The opaque, sealed offer id returned by match. | |
| entityId | Yes | The place id returned by discover or match. | |
| approvalId | No | The approval the guest gave this offer in their own Selfe account, returned as approval.id when the booking first needed it. A booking is confirmed only with the guest's approval. |