TrellisDevelopers
API reference

Payments

GET
/payments/capabilities

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Response Body

application/json

curl -X GET "https://example.com/payments/capabilities" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123"
{  "providers": {    "property1": {      "tipping": true,      "tipAdjustment": true,      "incrementalAuthorization": true,      "offlinePayments": true,      "cardOnFile": true,      "refunds": true,      "partialRefunds": true,      "manualCapture": true,      "payAtTable": true,      "tapToPay": true,      "supportedTerminalTypes": [        "string"      ]    },    "property2": {      "tipping": true,      "tipAdjustment": true,      "incrementalAuthorization": true,      "offlinePayments": true,      "cardOnFile": true,      "refunds": true,      "partialRefunds": true,      "manualCapture": true,      "payAtTable": true,      "tapToPay": true,      "supportedTerminalTypes": [        "string"      ]    }  }}
GET
/payments/merchant-accounts

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Response Body

application/json

curl -X GET "https://example.com/payments/merchant-accounts" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123"
{  "accounts": [    {      "id": "string",      "locationId": "string",      "provider": "mock",      "externalId": "string",      "status": "pending",      "displayName": "string",      "capabilities": {        "tipping": true,        "tipAdjustment": true,        "incrementalAuthorization": true,        "offlinePayments": true,        "cardOnFile": true,        "refunds": true,        "partialRefunds": true,        "manualCapture": true,        "payAtTable": true,        "tapToPay": true,        "supportedTerminalTypes": [          "string"        ]      },      "providerMetadata": {        "property1": null,        "property2": null      },      "createdAt": "2019-08-24T14:15:22Z",      "updatedAt": "2019-08-24T14:15:22Z"    }  ]}
POST
/payments/merchant-accounts

Creates the provider-backed merchant account. Stripe is the initial adapter; Trellis owns the public account model.

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/payments/merchant-accounts" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123" \  -H "Content-Type: application/json" \  -d '{    "displayName": "string"  }'
{  "id": "string",  "locationId": "string",  "provider": "mock",  "externalId": "string",  "status": "pending",  "displayName": "string",  "capabilities": {    "tipping": true,    "tipAdjustment": true,    "incrementalAuthorization": true,    "offlinePayments": true,    "cardOnFile": true,    "refunds": true,    "partialRefunds": true,    "manualCapture": true,    "payAtTable": true,    "tapToPay": true,    "supportedTerminalTypes": [      "string"    ]  },  "providerMetadata": {    "property1": null,    "property2": null  },  "createdAt": "2019-08-24T14:15:22Z",  "updatedAt": "2019-08-24T14:15:22Z"}
POST
/payments/merchant-accounts/{id}/onboarding-link

Path Parameters

id*string
Length1 <= length

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/payments/merchant-accounts/string/onboarding-link" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123" \  -H "Content-Type: application/json" \  -d '{    "refreshUrl": "http://example.com",    "returnUrl": "http://example.com"  }'
{  "url": "http://example.com",  "expiresAt": "2019-08-24T14:15:22Z"}
POST
/payments/merchant-accounts/{id}/refresh

Path Parameters

id*string
Length1 <= length

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Response Body

application/json

curl -X POST "https://example.com/payments/merchant-accounts/string/refresh" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123"
{  "id": "string",  "locationId": "string",  "provider": "mock",  "externalId": "string",  "status": "pending",  "displayName": "string",  "capabilities": {    "tipping": true,    "tipAdjustment": true,    "incrementalAuthorization": true,    "offlinePayments": true,    "cardOnFile": true,    "refunds": true,    "partialRefunds": true,    "manualCapture": true,    "payAtTable": true,    "tapToPay": true,    "supportedTerminalTypes": [      "string"    ]  },  "providerMetadata": {    "property1": null,    "property2": null  },  "createdAt": "2019-08-24T14:15:22Z",  "updatedAt": "2019-08-24T14:15:22Z"}
GET
/payments/config

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Response Body

application/json

curl -X GET "https://example.com/payments/config" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123"
{  "defaultProvider": "mock",  "providers": [    {      "id": "string",      "provider": "mock",      "displayName": "string",      "isEnabled": true,      "environment": "test",      "locationId": "string",      "terminalReaderId": "string",      "settings": {        "property1": null,        "property2": null      },      "createdAt": "2019-08-24T14:15:22Z",      "updatedAt": "2019-08-24T14:15:22Z"    }  ],  "offlineCapabilities": {    "property1": true,    "property2": true  },  "providerCapabilities": {    "property1": {      "tipping": true,      "tipAdjustment": true,      "incrementalAuthorization": true,      "offlinePayments": true,      "cardOnFile": true,      "refunds": true,      "partialRefunds": true,      "manualCapture": true,      "payAtTable": true,      "tapToPay": true,      "supportedTerminalTypes": [        "string"      ]    },    "property2": {      "tipping": true,      "tipAdjustment": true,      "incrementalAuthorization": true,      "offlinePayments": true,      "cardOnFile": true,      "refunds": true,      "partialRefunds": true,      "manualCapture": true,      "payAtTable": true,      "tapToPay": true,      "supportedTerminalTypes": [        "string"      ]    }  }}
PUT
/payments/config

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X PUT "https://example.com/payments/config" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123" \  -H "Content-Type: application/json" \  -d '{    "defaultProvider": "mock"  }'
{  "defaultProvider": "mock",  "providers": [    {      "id": "string",      "provider": "mock",      "displayName": "string",      "isEnabled": true,      "environment": "test",      "locationId": "string",      "terminalReaderId": "string",      "settings": {        "property1": null,        "property2": null      },      "createdAt": "2019-08-24T14:15:22Z",      "updatedAt": "2019-08-24T14:15:22Z"    }  ],  "offlineCapabilities": {    "property1": true,    "property2": true  },  "providerCapabilities": {    "property1": {      "tipping": true,      "tipAdjustment": true,      "incrementalAuthorization": true,      "offlinePayments": true,      "cardOnFile": true,      "refunds": true,      "partialRefunds": true,      "manualCapture": true,      "payAtTable": true,      "tapToPay": true,      "supportedTerminalTypes": [        "string"      ]    },    "property2": {      "tipping": true,      "tipAdjustment": true,      "incrementalAuthorization": true,      "offlinePayments": true,      "cardOnFile": true,      "refunds": true,      "partialRefunds": true,      "manualCapture": true,      "payAtTable": true,      "tapToPay": true,      "supportedTerminalTypes": [        "string"      ]    }  }}
GET
/payments/providers

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Response Body

application/json

curl -X GET "https://example.com/payments/providers" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123"
{  "providers": [    {      "id": "string",      "provider": "mock",      "displayName": "string",      "isEnabled": true,      "environment": "test",      "locationId": "string",      "terminalReaderId": "string",      "settings": {        "property1": null,        "property2": null      },      "createdAt": "2019-08-24T14:15:22Z",      "updatedAt": "2019-08-24T14:15:22Z"    }  ]}
POST
/payments/providers

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/payments/providers" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123" \  -H "Content-Type: application/json" \  -d '{    "provider": "mock"  }'
{  "id": "string",  "provider": "mock",  "displayName": "string",  "isEnabled": true,  "environment": "test",  "locationId": "string",  "terminalReaderId": "string",  "settings": {    "property1": null,    "property2": null  },  "createdAt": "2019-08-24T14:15:22Z",  "updatedAt": "2019-08-24T14:15:22Z"}
PUT
/payments/providers/{id}

Path Parameters

id*string

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X PUT "https://example.com/payments/providers/string" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123" \  -H "Content-Type: application/json" \  -d '{    "provider": "mock"  }'
{  "id": "string",  "provider": "mock",  "displayName": "string",  "isEnabled": true,  "environment": "test",  "locationId": "string",  "terminalReaderId": "string",  "settings": {    "property1": null,    "property2": null  },  "createdAt": "2019-08-24T14:15:22Z",  "updatedAt": "2019-08-24T14:15:22Z"}
POST
/payments/offline-queue

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/payments/offline-queue" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123" \  -H "Content-Type: application/json" \  -d '{    "actionType": "string",    "idempotencyKey": "string"  }'
{  "id": "string",  "provider": "mock",  "actionType": "string",  "idempotencyKey": "string",  "orderId": "string",  "paymentIntentId": "string",  "terminalReaderId": "string",  "status": "pending",  "payload": {    "property1": null,    "property2": null  },  "result": {    "property1": null,    "property2": null  },  "errorMessage": "string",  "createdAt": "2019-08-24T14:15:22Z",  "updatedAt": "2019-08-24T14:15:22Z",  "processedAt": "2019-08-24T14:15:22Z"}
GET
/terminal/readers

Modeled for Stripe Terminal smart readers, especially WisePOS E. Local records are merged with Stripe-managed reader state where available.

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Response Body

application/json

curl -X GET "https://example.com/terminal/readers" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123"
{  "readers": [    {      "id": "string",      "provider": "mock",      "merchantPaymentAccountId": "string",      "externalId": "string",      "providerMetadata": {        "property1": null,        "property2": null      },      "configuredProvider": "mock",      "providerConfigurationId": "string",      "providerReaderId": "string",      "label": "string",      "deviceType": "bbpos_wisepos_e",      "locationId": "string",      "status": "online",      "actionStatus": "idle",      "assignment": {        "orderId": "string",        "stationLabel": "string"      },      "lastSeenAt": "2019-08-24T14:15:22Z"    }  ]}
POST
/terminal/readers

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/terminal/readers" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123" \  -H "Content-Type: application/json" \  -d '{    "registrationCode": "string",    "label": "string",    "locationId": "string"  }'
{  "id": "string",  "provider": "mock",  "merchantPaymentAccountId": "string",  "externalId": "string",  "providerMetadata": {    "property1": null,    "property2": null  },  "configuredProvider": "mock",  "providerConfigurationId": "string",  "providerReaderId": "string",  "label": "string",  "deviceType": "bbpos_wisepos_e",  "locationId": "string",  "status": "online",  "actionStatus": "idle",  "assignment": {    "orderId": "string",    "stationLabel": "string"  },  "lastSeenAt": "2019-08-24T14:15:22Z"}
POST
/terminal/readers/register

Maps to Stripe Terminal reader registration. For sandbox development, Stripe supports simulated WisePOS E registration codes.

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/terminal/readers/register" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123" \  -H "Content-Type: application/json" \  -d '{    "registrationCode": "string",    "label": "string",    "locationId": "string"  }'
{  "id": "string",  "provider": "mock",  "merchantPaymentAccountId": "string",  "externalId": "string",  "providerMetadata": {    "property1": null,    "property2": null  },  "configuredProvider": "mock",  "providerConfigurationId": "string",  "providerReaderId": "string",  "label": "string",  "deviceType": "bbpos_wisepos_e",  "locationId": "string",  "status": "online",  "actionStatus": "idle",  "assignment": {    "orderId": "string",    "stationLabel": "string"  },  "lastSeenAt": "2019-08-24T14:15:22Z"}
PUT
/terminal/readers/{readerId}

Path Parameters

readerId*string
Length1 <= length

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X PUT "https://example.com/terminal/readers/string" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123" \  -H "Content-Type: application/json" \  -d '{}'
{  "id": "string",  "provider": "mock",  "merchantPaymentAccountId": "string",  "externalId": "string",  "providerMetadata": {    "property1": null,    "property2": null  },  "configuredProvider": "mock",  "providerConfigurationId": "string",  "providerReaderId": "string",  "label": "string",  "deviceType": "bbpos_wisepos_e",  "locationId": "string",  "status": "online",  "actionStatus": "idle",  "assignment": {    "orderId": "string",    "stationLabel": "string"  },  "lastSeenAt": "2019-08-24T14:15:22Z"}
POST
/terminal/readers/{readerId}/assign

Path Parameters

readerId*string
Length1 <= length

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/terminal/readers/string/assign" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123" \  -H "Content-Type: application/json" \  -d '{}'
{  "id": "string",  "provider": "mock",  "merchantPaymentAccountId": "string",  "externalId": "string",  "providerMetadata": {    "property1": null,    "property2": null  },  "configuredProvider": "mock",  "providerConfigurationId": "string",  "providerReaderId": "string",  "label": "string",  "deviceType": "bbpos_wisepos_e",  "locationId": "string",  "status": "online",  "actionStatus": "idle",  "assignment": {    "orderId": "string",    "stationLabel": "string"  },  "lastSeenAt": "2019-08-24T14:15:22Z"}
GET
/payments/tabs

Toast-inspired open tab lookup for bar and service workflows. Matches by tab name, order number, table label, and order identifier.

Query Parameters

q?string
locationId?string
status?|

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Response Body

application/json

curl -X GET "https://example.com/payments/tabs" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123"
{  "tabs": [    {      "paymentIntentId": "string",      "orderId": "string",      "orderNumber": 0,      "locationId": "string",      "attributedStaffUserId": "string",      "attributedShiftId": "string",      "tableLabel": "string",      "tabName": "string",      "tabStatus": "open",      "checkState": "open",      "amount": 0,      "authorizedAmount": 0,      "capturedAmount": 0,      "tipAmount": 0,      "refundedAmount": 0,      "openedAt": "2019-08-24T14:15:22Z",      "updatedAt": "2019-08-24T14:15:22Z"    }  ]}
POST
/payments/tabs

Creates a payment-backed tab record that stays open until the preauthorized card is captured and the check is closed.

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/payments/tabs" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123" \  -H "Content-Type: application/json" \  -d '{    "orderId": "string",    "tabName": "string",    "preauthAmount": 1,    "currency": "str"  }'
{  "id": "string",  "orderId": "string",  "locationId": "string",  "provider": "mock",  "merchantPaymentAccountId": "string",  "externalId": "string",  "providerPaymentIntentId": "string",  "paymentState": "pending",  "readerId": "string",  "amount": 0,  "currency": "string",  "captureMethod": "manual",  "status": "requires_payment_method",  "tenderType": "card_present",  "processorStatus": "OPEN",  "checkState": "open",  "refundStatus": "none",  "authorizedAmount": 0,  "capturedAmount": 0,  "refundedBaseAmount": 0,  "refundedTipAmount": 0,  "refundedAmount": 0,  "pendingTipAmount": 0,  "tipStatus": "none",  "tipEntrySource": "capture",  "tipPendingReason": "awaiting_adjustment",  "closedByStaffUserId": "string",  "attributedStaffUserId": "string",  "attributedShiftId": "string",  "attributedAt": "2019-08-24T14:15:22Z",  "splitTenderGroupId": "string",  "tipAmount": 0,  "tabName": "string",  "tabStatus": "open",  "preauthAmount": 1,  "metadata": {    "property1": "string",    "property2": "string"  },  "paidAt": "2019-08-24T14:15:22Z",  "capturedAt": "2019-08-24T14:15:22Z",  "closedAt": "2019-08-24T14:15:22Z",  "reopenedAt": "2019-08-24T14:15:22Z",  "tipAdjustedAt": "2019-08-24T14:15:22Z",  "voidedAt": "2019-08-24T14:15:22Z",  "refundedAt": "2019-08-24T14:15:22Z",  "refunds": [    {      "id": "string",      "amount": 0,      "tipAmount": 0,      "totalAmount": 1,      "reason": "string",      "lineItems": [        {          "orderLineId": "string",          "title": "string",          "subtotalAmount": 0,          "taxAmount": 0,          "totalAmount": 1        }      ],      "approvedByStaffUserId": "string",      "approvedAt": "2019-08-24T14:15:22Z"    }  ],  "authorization": {    "mode": "disabled",    "actorRoles": [      "string"    ],    "overrideStaffUserId": "string",    "overrideReason": "string",    "approvedAt": "2019-08-24T14:15:22Z"  },  "createdAt": "2019-08-24T14:15:22Z",  "updatedAt": "2019-08-24T14:15:22Z"}
GET
/payments/intents

Returns the authoritative payment and refund ledger for one tenant, optionally scoped to a restaurant location.

Query Parameters

locationId?string
Length1 <= length
createdAfter?string
Formatdate-time
createdBefore?string
Formatdate-time

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Response Body

application/json

curl -X GET "https://example.com/payments/intents" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123"
{  "paymentIntents": [    {      "id": "string",      "orderId": "string",      "locationId": "string",      "provider": "mock",      "merchantPaymentAccountId": "string",      "externalId": "string",      "providerPaymentIntentId": "string",      "paymentState": "pending",      "readerId": "string",      "amount": 0,      "currency": "string",      "captureMethod": "manual",      "status": "requires_payment_method",      "tenderType": "card_present",      "processorStatus": "OPEN",      "checkState": "open",      "refundStatus": "none",      "authorizedAmount": 0,      "capturedAmount": 0,      "refundedBaseAmount": 0,      "refundedTipAmount": 0,      "refundedAmount": 0,      "pendingTipAmount": 0,      "tipStatus": "none",      "tipEntrySource": "capture",      "tipPendingReason": "awaiting_adjustment",      "closedByStaffUserId": "string",      "attributedStaffUserId": "string",      "attributedShiftId": "string",      "attributedAt": "2019-08-24T14:15:22Z",      "splitTenderGroupId": "string",      "tipAmount": 0,      "tabName": "string",      "tabStatus": "open",      "preauthAmount": 1,      "metadata": {        "property1": "string",        "property2": "string"      },      "paidAt": "2019-08-24T14:15:22Z",      "capturedAt": "2019-08-24T14:15:22Z",      "closedAt": "2019-08-24T14:15:22Z",      "reopenedAt": "2019-08-24T14:15:22Z",      "tipAdjustedAt": "2019-08-24T14:15:22Z",      "voidedAt": "2019-08-24T14:15:22Z",      "refundedAt": "2019-08-24T14:15:22Z",      "refunds": [        {          "id": "string",          "amount": 0,          "tipAmount": 0,          "totalAmount": 1,          "reason": "string",          "lineItems": [            {              "orderLineId": "string",              "title": "string",              "subtotalAmount": 0,              "taxAmount": 0,              "totalAmount": 1            }          ],          "approvedByStaffUserId": "string",          "approvedAt": "2019-08-24T14:15:22Z"        }      ],      "authorization": {        "mode": "disabled",        "actorRoles": [          "string"        ],        "overrideStaffUserId": "string",        "overrideReason": "string",        "approvedAt": "2019-08-24T14:15:22Z"      },      "createdAt": "2019-08-24T14:15:22Z",      "updatedAt": "2019-08-24T14:15:22Z"    }  ]}
POST
/payments/intents

Platform payment session for POS collection. Supports split tender, named tabs, and local non-card settlement while keeping the public contract compatible with existing payment intent flows.

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/payments/intents" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123" \  -H "Content-Type: application/json" \  -d '{    "amount": 1,    "currency": "str"  }'
{  "id": "string",  "orderId": "string",  "locationId": "string",  "provider": "mock",  "merchantPaymentAccountId": "string",  "externalId": "string",  "providerPaymentIntentId": "string",  "paymentState": "pending",  "readerId": "string",  "amount": 0,  "currency": "string",  "captureMethod": "manual",  "status": "requires_payment_method",  "tenderType": "card_present",  "processorStatus": "OPEN",  "checkState": "open",  "refundStatus": "none",  "authorizedAmount": 0,  "capturedAmount": 0,  "refundedBaseAmount": 0,  "refundedTipAmount": 0,  "refundedAmount": 0,  "pendingTipAmount": 0,  "tipStatus": "none",  "tipEntrySource": "capture",  "tipPendingReason": "awaiting_adjustment",  "closedByStaffUserId": "string",  "attributedStaffUserId": "string",  "attributedShiftId": "string",  "attributedAt": "2019-08-24T14:15:22Z",  "splitTenderGroupId": "string",  "tipAmount": 0,  "tabName": "string",  "tabStatus": "open",  "preauthAmount": 1,  "metadata": {    "property1": "string",    "property2": "string"  },  "paidAt": "2019-08-24T14:15:22Z",  "capturedAt": "2019-08-24T14:15:22Z",  "closedAt": "2019-08-24T14:15:22Z",  "reopenedAt": "2019-08-24T14:15:22Z",  "tipAdjustedAt": "2019-08-24T14:15:22Z",  "voidedAt": "2019-08-24T14:15:22Z",  "refundedAt": "2019-08-24T14:15:22Z",  "refunds": [    {      "id": "string",      "amount": 0,      "tipAmount": 0,      "totalAmount": 1,      "reason": "string",      "lineItems": [        {          "orderLineId": "string",          "title": "string",          "subtotalAmount": 0,          "taxAmount": 0,          "totalAmount": 1        }      ],      "approvedByStaffUserId": "string",      "approvedAt": "2019-08-24T14:15:22Z"    }  ],  "authorization": {    "mode": "disabled",    "actorRoles": [      "string"    ],    "overrideStaffUserId": "string",    "overrideReason": "string",    "approvedAt": "2019-08-24T14:15:22Z"  },  "createdAt": "2019-08-24T14:15:22Z",  "updatedAt": "2019-08-24T14:15:22Z"}
GET
/payments/intents/{id}

Path Parameters

id*string
Length1 <= length

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Response Body

application/json

curl -X GET "https://example.com/payments/intents/string" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123"
{  "id": "string",  "orderId": "string",  "locationId": "string",  "provider": "mock",  "merchantPaymentAccountId": "string",  "externalId": "string",  "providerPaymentIntentId": "string",  "paymentState": "pending",  "readerId": "string",  "amount": 0,  "currency": "string",  "captureMethod": "manual",  "status": "requires_payment_method",  "tenderType": "card_present",  "processorStatus": "OPEN",  "checkState": "open",  "refundStatus": "none",  "authorizedAmount": 0,  "capturedAmount": 0,  "refundedBaseAmount": 0,  "refundedTipAmount": 0,  "refundedAmount": 0,  "pendingTipAmount": 0,  "tipStatus": "none",  "tipEntrySource": "capture",  "tipPendingReason": "awaiting_adjustment",  "closedByStaffUserId": "string",  "attributedStaffUserId": "string",  "attributedShiftId": "string",  "attributedAt": "2019-08-24T14:15:22Z",  "splitTenderGroupId": "string",  "tipAmount": 0,  "tabName": "string",  "tabStatus": "open",  "preauthAmount": 1,  "metadata": {    "property1": "string",    "property2": "string"  },  "paidAt": "2019-08-24T14:15:22Z",  "capturedAt": "2019-08-24T14:15:22Z",  "closedAt": "2019-08-24T14:15:22Z",  "reopenedAt": "2019-08-24T14:15:22Z",  "tipAdjustedAt": "2019-08-24T14:15:22Z",  "voidedAt": "2019-08-24T14:15:22Z",  "refundedAt": "2019-08-24T14:15:22Z",  "refunds": [    {      "id": "string",      "amount": 0,      "tipAmount": 0,      "totalAmount": 1,      "reason": "string",      "lineItems": [        {          "orderLineId": "string",          "title": "string",          "subtotalAmount": 0,          "taxAmount": 0,          "totalAmount": 1        }      ],      "approvedByStaffUserId": "string",      "approvedAt": "2019-08-24T14:15:22Z"    }  ],  "authorization": {    "mode": "disabled",    "actorRoles": [      "string"    ],    "overrideStaffUserId": "string",    "overrideReason": "string",    "approvedAt": "2019-08-24T14:15:22Z"  },  "createdAt": "2019-08-24T14:15:22Z",  "updatedAt": "2019-08-24T14:15:22Z"}
POST
/payments/stripe-terminal/connection-token

Returns a short-lived Stripe Terminal connection token for the native iOS Terminal SDK. The secret Stripe API key remains on the backend.

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/payments/stripe-terminal/connection-token" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123" \  -H "Content-Type: application/json" \  -d '{}'
{  "secret": "string"}
POST
/payments/intents/{id}/stripe-terminal-session

Returns the Stripe PaymentIntent client secret, publishable key, and Terminal location for Tap to Pay on iPhone collection.

Path Parameters

id*string
Length1 <= length

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/payments/intents/string/stripe-terminal-session" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123" \  -H "Content-Type: application/json" \  -d '{}'
{  "provider": "stripe",  "paymentIntentId": "string",  "merchantPaymentAccountId": "string",  "stripePaymentIntentId": "string",  "clientSecret": "string",  "publishableKey": "string",  "locationId": "string",  "amount": 1,  "currency": "string",  "captureMethod": "manual",  "simulated": true,  "sdkCreatesPaymentIntent": true,  "supportsOffline": true,  "requestIncrementalAuthorization": true,  "sandboxSimulationAvailable": true,  "terminalExternalId": "string",  "terminalType": "string",  "merchantDisplayName": "string"}
POST
/payments/intents/{id}/stripe-terminal-reconcile

Path Parameters

id*string
Length1 <= length

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/payments/intents/string/stripe-terminal-reconcile" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123" \  -H "Content-Type: application/json" \  -d '{    "status": "requires_capture"  }'
{  "id": "string",  "orderId": "string",  "locationId": "string",  "provider": "mock",  "merchantPaymentAccountId": "string",  "externalId": "string",  "providerPaymentIntentId": "string",  "paymentState": "pending",  "readerId": "string",  "amount": 0,  "currency": "string",  "captureMethod": "manual",  "status": "requires_payment_method",  "tenderType": "card_present",  "processorStatus": "OPEN",  "checkState": "open",  "refundStatus": "none",  "authorizedAmount": 0,  "capturedAmount": 0,  "refundedBaseAmount": 0,  "refundedTipAmount": 0,  "refundedAmount": 0,  "pendingTipAmount": 0,  "tipStatus": "none",  "tipEntrySource": "capture",  "tipPendingReason": "awaiting_adjustment",  "closedByStaffUserId": "string",  "attributedStaffUserId": "string",  "attributedShiftId": "string",  "attributedAt": "2019-08-24T14:15:22Z",  "splitTenderGroupId": "string",  "tipAmount": 0,  "tabName": "string",  "tabStatus": "open",  "preauthAmount": 1,  "metadata": {    "property1": "string",    "property2": "string"  },  "paidAt": "2019-08-24T14:15:22Z",  "capturedAt": "2019-08-24T14:15:22Z",  "closedAt": "2019-08-24T14:15:22Z",  "reopenedAt": "2019-08-24T14:15:22Z",  "tipAdjustedAt": "2019-08-24T14:15:22Z",  "voidedAt": "2019-08-24T14:15:22Z",  "refundedAt": "2019-08-24T14:15:22Z",  "refunds": [    {      "id": "string",      "amount": 0,      "tipAmount": 0,      "totalAmount": 1,      "reason": "string",      "lineItems": [        {          "orderLineId": "string",          "title": "string",          "subtotalAmount": 0,          "taxAmount": 0,          "totalAmount": 1        }      ],      "approvedByStaffUserId": "string",      "approvedAt": "2019-08-24T14:15:22Z"    }  ],  "authorization": {    "mode": "disabled",    "actorRoles": [      "string"    ],    "overrideStaffUserId": "string",    "overrideReason": "string",    "approvedAt": "2019-08-24T14:15:22Z"  },  "createdAt": "2019-08-24T14:15:22Z",  "updatedAt": "2019-08-24T14:15:22Z"}
POST
/payments/intents/{id}/square-session

Returns the backend-approved Square client configuration for the native iOS POS. The iPad/iPhone uses Square Mobile Payments SDK for Square Stand, readers, and Tap to Pay on iPhone, then reconciles the result back to this Trellis payment intent.

Path Parameters

id*string
Length1 <= length

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/payments/intents/string/square-session" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123" \  -H "Content-Type: application/json" \  -d '{}'
{  "provider": "square",  "paymentIntentId": "string",  "amount": 1,  "currency": "string",  "squareApplicationId": "string",  "squareLocationId": "string",  "accessToken": "string",  "environment": "sandbox",  "paymentAttemptId": "string",  "referenceId": "string",  "processingMode": "onlineOnly",  "autocomplete": true,  "supportsOffline": true,  "supportsTapToPay": true}
POST
/payments/intents/{id}/square-reconcile

Path Parameters

id*string
Length1 <= length

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/payments/intents/string/square-reconcile" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123" \  -H "Content-Type: application/json" \  -d '{    "status": "completed"  }'
{  "id": "string",  "orderId": "string",  "locationId": "string",  "provider": "mock",  "merchantPaymentAccountId": "string",  "externalId": "string",  "providerPaymentIntentId": "string",  "paymentState": "pending",  "readerId": "string",  "amount": 0,  "currency": "string",  "captureMethod": "manual",  "status": "requires_payment_method",  "tenderType": "card_present",  "processorStatus": "OPEN",  "checkState": "open",  "refundStatus": "none",  "authorizedAmount": 0,  "capturedAmount": 0,  "refundedBaseAmount": 0,  "refundedTipAmount": 0,  "refundedAmount": 0,  "pendingTipAmount": 0,  "tipStatus": "none",  "tipEntrySource": "capture",  "tipPendingReason": "awaiting_adjustment",  "closedByStaffUserId": "string",  "attributedStaffUserId": "string",  "attributedShiftId": "string",  "attributedAt": "2019-08-24T14:15:22Z",  "splitTenderGroupId": "string",  "tipAmount": 0,  "tabName": "string",  "tabStatus": "open",  "preauthAmount": 1,  "metadata": {    "property1": "string",    "property2": "string"  },  "paidAt": "2019-08-24T14:15:22Z",  "capturedAt": "2019-08-24T14:15:22Z",  "closedAt": "2019-08-24T14:15:22Z",  "reopenedAt": "2019-08-24T14:15:22Z",  "tipAdjustedAt": "2019-08-24T14:15:22Z",  "voidedAt": "2019-08-24T14:15:22Z",  "refundedAt": "2019-08-24T14:15:22Z",  "refunds": [    {      "id": "string",      "amount": 0,      "tipAmount": 0,      "totalAmount": 1,      "reason": "string",      "lineItems": [        {          "orderLineId": "string",          "title": "string",          "subtotalAmount": 0,          "taxAmount": 0,          "totalAmount": 1        }      ],      "approvedByStaffUserId": "string",      "approvedAt": "2019-08-24T14:15:22Z"    }  ],  "authorization": {    "mode": "disabled",    "actorRoles": [      "string"    ],    "overrideStaffUserId": "string",    "overrideReason": "string",    "approvedAt": "2019-08-24T14:15:22Z"  },  "createdAt": "2019-08-24T14:15:22Z",  "updatedAt": "2019-08-24T14:15:22Z"}
POST
/payments/intents/{id}/collect-on-reader

Starts the server-side handoff from the POS API to a WisePOS E checkout lane and marks the payment as authorized for capture-oriented restaurant workflows.

Path Parameters

id*string
Length1 <= length

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/payments/intents/string/collect-on-reader" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123" \  -H "Content-Type: application/json" \  -d '{    "readerId": "string"  }'
{  "id": "string",  "orderId": "string",  "locationId": "string",  "provider": "mock",  "merchantPaymentAccountId": "string",  "externalId": "string",  "providerPaymentIntentId": "string",  "paymentState": "pending",  "readerId": "string",  "amount": 0,  "currency": "string",  "captureMethod": "manual",  "status": "requires_payment_method",  "tenderType": "card_present",  "processorStatus": "OPEN",  "checkState": "open",  "refundStatus": "none",  "authorizedAmount": 0,  "capturedAmount": 0,  "refundedBaseAmount": 0,  "refundedTipAmount": 0,  "refundedAmount": 0,  "pendingTipAmount": 0,  "tipStatus": "none",  "tipEntrySource": "capture",  "tipPendingReason": "awaiting_adjustment",  "closedByStaffUserId": "string",  "attributedStaffUserId": "string",  "attributedShiftId": "string",  "attributedAt": "2019-08-24T14:15:22Z",  "splitTenderGroupId": "string",  "tipAmount": 0,  "tabName": "string",  "tabStatus": "open",  "preauthAmount": 1,  "metadata": {    "property1": "string",    "property2": "string"  },  "paidAt": "2019-08-24T14:15:22Z",  "capturedAt": "2019-08-24T14:15:22Z",  "closedAt": "2019-08-24T14:15:22Z",  "reopenedAt": "2019-08-24T14:15:22Z",  "tipAdjustedAt": "2019-08-24T14:15:22Z",  "voidedAt": "2019-08-24T14:15:22Z",  "refundedAt": "2019-08-24T14:15:22Z",  "refunds": [    {      "id": "string",      "amount": 0,      "tipAmount": 0,      "totalAmount": 1,      "reason": "string",      "lineItems": [        {          "orderLineId": "string",          "title": "string",          "subtotalAmount": 0,          "taxAmount": 0,          "totalAmount": 1        }      ],      "approvedByStaffUserId": "string",      "approvedAt": "2019-08-24T14:15:22Z"    }  ],  "authorization": {    "mode": "disabled",    "actorRoles": [      "string"    ],    "overrideStaffUserId": "string",    "overrideReason": "string",    "approvedAt": "2019-08-24T14:15:22Z"  },  "createdAt": "2019-08-24T14:15:22Z",  "updatedAt": "2019-08-24T14:15:22Z"}
POST
/payments/intents/{id}/increment-authorization

Path Parameters

id*string
Length1 <= length

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/payments/intents/string/increment-authorization" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123" \  -H "Content-Type: application/json" \  -d '{    "amount": 1  }'
{  "id": "string",  "orderId": "string",  "locationId": "string",  "provider": "mock",  "merchantPaymentAccountId": "string",  "externalId": "string",  "providerPaymentIntentId": "string",  "paymentState": "pending",  "readerId": "string",  "amount": 0,  "currency": "string",  "captureMethod": "manual",  "status": "requires_payment_method",  "tenderType": "card_present",  "processorStatus": "OPEN",  "checkState": "open",  "refundStatus": "none",  "authorizedAmount": 0,  "capturedAmount": 0,  "refundedBaseAmount": 0,  "refundedTipAmount": 0,  "refundedAmount": 0,  "pendingTipAmount": 0,  "tipStatus": "none",  "tipEntrySource": "capture",  "tipPendingReason": "awaiting_adjustment",  "closedByStaffUserId": "string",  "attributedStaffUserId": "string",  "attributedShiftId": "string",  "attributedAt": "2019-08-24T14:15:22Z",  "splitTenderGroupId": "string",  "tipAmount": 0,  "tabName": "string",  "tabStatus": "open",  "preauthAmount": 1,  "metadata": {    "property1": "string",    "property2": "string"  },  "paidAt": "2019-08-24T14:15:22Z",  "capturedAt": "2019-08-24T14:15:22Z",  "closedAt": "2019-08-24T14:15:22Z",  "reopenedAt": "2019-08-24T14:15:22Z",  "tipAdjustedAt": "2019-08-24T14:15:22Z",  "voidedAt": "2019-08-24T14:15:22Z",  "refundedAt": "2019-08-24T14:15:22Z",  "refunds": [    {      "id": "string",      "amount": 0,      "tipAmount": 0,      "totalAmount": 1,      "reason": "string",      "lineItems": [        {          "orderLineId": "string",          "title": "string",          "subtotalAmount": 0,          "taxAmount": 0,          "totalAmount": 1        }      ],      "approvedByStaffUserId": "string",      "approvedAt": "2019-08-24T14:15:22Z"    }  ],  "authorization": {    "mode": "disabled",    "actorRoles": [      "string"    ],    "overrideStaffUserId": "string",    "overrideReason": "string",    "approvedAt": "2019-08-24T14:15:22Z"  },  "createdAt": "2019-08-24T14:15:22Z",  "updatedAt": "2019-08-24T14:15:22Z"}
POST
/payments/intents/{id}/capture

Path Parameters

id*string
Length1 <= length

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/payments/intents/string/capture" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123" \  -H "Content-Type: application/json" \  -d '{}'
{  "id": "string",  "orderId": "string",  "locationId": "string",  "provider": "mock",  "merchantPaymentAccountId": "string",  "externalId": "string",  "providerPaymentIntentId": "string",  "paymentState": "pending",  "readerId": "string",  "amount": 0,  "currency": "string",  "captureMethod": "manual",  "status": "requires_payment_method",  "tenderType": "card_present",  "processorStatus": "OPEN",  "checkState": "open",  "refundStatus": "none",  "authorizedAmount": 0,  "capturedAmount": 0,  "refundedBaseAmount": 0,  "refundedTipAmount": 0,  "refundedAmount": 0,  "pendingTipAmount": 0,  "tipStatus": "none",  "tipEntrySource": "capture",  "tipPendingReason": "awaiting_adjustment",  "closedByStaffUserId": "string",  "attributedStaffUserId": "string",  "attributedShiftId": "string",  "attributedAt": "2019-08-24T14:15:22Z",  "splitTenderGroupId": "string",  "tipAmount": 0,  "tabName": "string",  "tabStatus": "open",  "preauthAmount": 1,  "metadata": {    "property1": "string",    "property2": "string"  },  "paidAt": "2019-08-24T14:15:22Z",  "capturedAt": "2019-08-24T14:15:22Z",  "closedAt": "2019-08-24T14:15:22Z",  "reopenedAt": "2019-08-24T14:15:22Z",  "tipAdjustedAt": "2019-08-24T14:15:22Z",  "voidedAt": "2019-08-24T14:15:22Z",  "refundedAt": "2019-08-24T14:15:22Z",  "refunds": [    {      "id": "string",      "amount": 0,      "tipAmount": 0,      "totalAmount": 1,      "reason": "string",      "lineItems": [        {          "orderLineId": "string",          "title": "string",          "subtotalAmount": 0,          "taxAmount": 0,          "totalAmount": 1        }      ],      "approvedByStaffUserId": "string",      "approvedAt": "2019-08-24T14:15:22Z"    }  ],  "authorization": {    "mode": "disabled",    "actorRoles": [      "string"    ],    "overrideStaffUserId": "string",    "overrideReason": "string",    "approvedAt": "2019-08-24T14:15:22Z"  },  "createdAt": "2019-08-24T14:15:22Z",  "updatedAt": "2019-08-24T14:15:22Z"}
POST
/payments/intents/{id}/tip-adjust

Path Parameters

id*string
Length1 <= length

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/payments/intents/string/tip-adjust" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123" \  -H "Content-Type: application/json" \  -d '{    "tipAmount": 0  }'
{  "id": "string",  "orderId": "string",  "locationId": "string",  "provider": "mock",  "merchantPaymentAccountId": "string",  "externalId": "string",  "providerPaymentIntentId": "string",  "paymentState": "pending",  "readerId": "string",  "amount": 0,  "currency": "string",  "captureMethod": "manual",  "status": "requires_payment_method",  "tenderType": "card_present",  "processorStatus": "OPEN",  "checkState": "open",  "refundStatus": "none",  "authorizedAmount": 0,  "capturedAmount": 0,  "refundedBaseAmount": 0,  "refundedTipAmount": 0,  "refundedAmount": 0,  "pendingTipAmount": 0,  "tipStatus": "none",  "tipEntrySource": "capture",  "tipPendingReason": "awaiting_adjustment",  "closedByStaffUserId": "string",  "attributedStaffUserId": "string",  "attributedShiftId": "string",  "attributedAt": "2019-08-24T14:15:22Z",  "splitTenderGroupId": "string",  "tipAmount": 0,  "tabName": "string",  "tabStatus": "open",  "preauthAmount": 1,  "metadata": {    "property1": "string",    "property2": "string"  },  "paidAt": "2019-08-24T14:15:22Z",  "capturedAt": "2019-08-24T14:15:22Z",  "closedAt": "2019-08-24T14:15:22Z",  "reopenedAt": "2019-08-24T14:15:22Z",  "tipAdjustedAt": "2019-08-24T14:15:22Z",  "voidedAt": "2019-08-24T14:15:22Z",  "refundedAt": "2019-08-24T14:15:22Z",  "refunds": [    {      "id": "string",      "amount": 0,      "tipAmount": 0,      "totalAmount": 1,      "reason": "string",      "lineItems": [        {          "orderLineId": "string",          "title": "string",          "subtotalAmount": 0,          "taxAmount": 0,          "totalAmount": 1        }      ],      "approvedByStaffUserId": "string",      "approvedAt": "2019-08-24T14:15:22Z"    }  ],  "authorization": {    "mode": "disabled",    "actorRoles": [      "string"    ],    "overrideStaffUserId": "string",    "overrideReason": "string",    "approvedAt": "2019-08-24T14:15:22Z"  },  "createdAt": "2019-08-24T14:15:22Z",  "updatedAt": "2019-08-24T14:15:22Z"}
POST
/payments/intents/{id}/move

Path Parameters

id*string
Length1 <= length

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/payments/intents/string/move" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123" \  -H "Content-Type: application/json" \  -d '{    "orderId": "string"  }'
{  "paymentIntent": {    "id": "string",    "orderId": "string",    "locationId": "string",    "provider": "mock",    "merchantPaymentAccountId": "string",    "externalId": "string",    "providerPaymentIntentId": "string",    "paymentState": "pending",    "readerId": "string",    "amount": 0,    "currency": "string",    "captureMethod": "manual",    "status": "requires_payment_method",    "tenderType": "card_present",    "processorStatus": "OPEN",    "checkState": "open",    "refundStatus": "none",    "authorizedAmount": 0,    "capturedAmount": 0,    "refundedBaseAmount": 0,    "refundedTipAmount": 0,    "refundedAmount": 0,    "pendingTipAmount": 0,    "tipStatus": "none",    "tipEntrySource": "capture",    "tipPendingReason": "awaiting_adjustment",    "closedByStaffUserId": "string",    "attributedStaffUserId": "string",    "attributedShiftId": "string",    "attributedAt": "2019-08-24T14:15:22Z",    "splitTenderGroupId": "string",    "tipAmount": 0,    "tabName": "string",    "tabStatus": "open",    "preauthAmount": 1,    "metadata": {      "property1": "string",      "property2": "string"    },    "paidAt": "2019-08-24T14:15:22Z",    "capturedAt": "2019-08-24T14:15:22Z",    "closedAt": "2019-08-24T14:15:22Z",    "reopenedAt": "2019-08-24T14:15:22Z",    "tipAdjustedAt": "2019-08-24T14:15:22Z",    "voidedAt": "2019-08-24T14:15:22Z",    "refundedAt": "2019-08-24T14:15:22Z",    "refunds": [      {        "id": "string",        "amount": 0,        "tipAmount": 0,        "totalAmount": 1,        "reason": "string",        "lineItems": [          {            "orderLineId": "string",            "title": "string",            "subtotalAmount": 0,            "taxAmount": 0,            "totalAmount": 1          }        ],        "approvedByStaffUserId": "string",        "approvedAt": "2019-08-24T14:15:22Z"      }    ],    "authorization": {      "mode": "disabled",      "actorRoles": [        "string"      ],      "overrideStaffUserId": "string",      "overrideReason": "string",      "approvedAt": "2019-08-24T14:15:22Z"    },    "createdAt": "2019-08-24T14:15:22Z",    "updatedAt": "2019-08-24T14:15:22Z"  },  "sourceOrder": null,  "destinationOrder": null}
POST
/payments/intents/{id}/refund

Path Parameters

id*string
Length1 <= length

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/payments/intents/string/refund" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123" \  -H "Content-Type: application/json" \  -d '{}'
{  "id": "string",  "orderId": "string",  "locationId": "string",  "provider": "mock",  "merchantPaymentAccountId": "string",  "externalId": "string",  "providerPaymentIntentId": "string",  "paymentState": "pending",  "readerId": "string",  "amount": 0,  "currency": "string",  "captureMethod": "manual",  "status": "requires_payment_method",  "tenderType": "card_present",  "processorStatus": "OPEN",  "checkState": "open",  "refundStatus": "none",  "authorizedAmount": 0,  "capturedAmount": 0,  "refundedBaseAmount": 0,  "refundedTipAmount": 0,  "refundedAmount": 0,  "pendingTipAmount": 0,  "tipStatus": "none",  "tipEntrySource": "capture",  "tipPendingReason": "awaiting_adjustment",  "closedByStaffUserId": "string",  "attributedStaffUserId": "string",  "attributedShiftId": "string",  "attributedAt": "2019-08-24T14:15:22Z",  "splitTenderGroupId": "string",  "tipAmount": 0,  "tabName": "string",  "tabStatus": "open",  "preauthAmount": 1,  "metadata": {    "property1": "string",    "property2": "string"  },  "paidAt": "2019-08-24T14:15:22Z",  "capturedAt": "2019-08-24T14:15:22Z",  "closedAt": "2019-08-24T14:15:22Z",  "reopenedAt": "2019-08-24T14:15:22Z",  "tipAdjustedAt": "2019-08-24T14:15:22Z",  "voidedAt": "2019-08-24T14:15:22Z",  "refundedAt": "2019-08-24T14:15:22Z",  "refunds": [    {      "id": "string",      "amount": 0,      "tipAmount": 0,      "totalAmount": 1,      "reason": "string",      "lineItems": [        {          "orderLineId": "string",          "title": "string",          "subtotalAmount": 0,          "taxAmount": 0,          "totalAmount": 1        }      ],      "approvedByStaffUserId": "string",      "approvedAt": "2019-08-24T14:15:22Z"    }  ],  "authorization": {    "mode": "disabled",    "actorRoles": [      "string"    ],    "overrideStaffUserId": "string",    "overrideReason": "string",    "approvedAt": "2019-08-24T14:15:22Z"  },  "createdAt": "2019-08-24T14:15:22Z",  "updatedAt": "2019-08-24T14:15:22Z"}
POST
/payments/orders/{orderId}/reopen-check

Toast-inspired reopen behavior. Closed checks move back to paid, the order remains in its paid state, and the reopened check becomes available for further changes.

Path Parameters

orderId*string
Length1 <= length

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/payments/orders/string/reopen-check" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123" \  -H "Content-Type: application/json" \  -d '{}'
{  "orderId": "string",  "orderStatus": "string",  "checkState": "paid",  "reopenedPaymentIntentIds": [    "string"  ],  "authorization": {    "mode": "disabled",    "actorRoles": [      "string"    ],    "overrideStaffUserId": "string",    "overrideReason": "string",    "approvedAt": "2019-08-24T14:15:22Z"  }}
POST
/terminal/readers/{readerId}/cancel-action

Path Parameters

readerId*string
Length1 <= length

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Response Body

application/json

curl -X POST "https://example.com/terminal/readers/string/cancel-action" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123"
{  "message": "string"}
GET
/payments/provider-settlements

Query Parameters

provider?|||
status?||||

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Response Body

application/json

curl -X GET "https://example.com/payments/provider-settlements" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123"
{  "settlements": [    {      "id": "string",      "tenantId": "string",      "provider": "mock",      "providerSettlementId": "string",      "currency": "string",      "grossAmount": 0,      "feeAmount": 0,      "refundAmount": 0,      "disputeAmount": 0,      "netAmount": 0,      "status": "pending",      "settledAt": "string",      "payload": {        "property1": null,        "property2": null      },      "createdAt": "string",      "updatedAt": "string",      "created": true    }  ],  "total": 0}
POST
/payments/provider-settlements

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/payments/provider-settlements" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123" \  -H "Content-Type: application/json" \  -d '{    "provider": "mock",    "providerSettlementId": "string",    "currency": "str",    "grossAmount": 0,    "feeAmount": 0,    "netAmount": 0,    "status": "pending"  }'
{  "id": "string",  "tenantId": "string",  "provider": "mock",  "providerSettlementId": "string",  "currency": "string",  "grossAmount": 0,  "feeAmount": 0,  "refundAmount": 0,  "disputeAmount": 0,  "netAmount": 0,  "status": "pending",  "settledAt": "string",  "payload": {    "property1": null,    "property2": null  },  "createdAt": "string",  "updatedAt": "string",  "created": true}
GET
/payments/provider-payouts

Query Parameters

provider?|||
status?||||

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Response Body

application/json

curl -X GET "https://example.com/payments/provider-payouts" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123"
{  "payouts": [    {      "id": "string",      "tenantId": "string",      "provider": "mock",      "providerPayoutId": "string",      "currency": "string",      "amount": 0,      "status": "pending",      "expectedArrivalAt": "string",      "paidAt": "string",      "reconciledAt": "string",      "varianceAmount": 0,      "payload": {        "property1": null,        "property2": null      },      "createdAt": "string",      "updatedAt": "string",      "created": true,      "settlements": [        {          "id": "string",          "tenantId": "string",          "provider": "mock",          "providerSettlementId": "string",          "currency": "string",          "grossAmount": 0,          "feeAmount": 0,          "refundAmount": 0,          "disputeAmount": 0,          "netAmount": 0,          "status": "pending",          "settledAt": "string",          "payload": {            "property1": null,            "property2": null          },          "createdAt": "string",          "updatedAt": "string",          "created": true        }      ]    }  ],  "total": 0}
POST
/payments/provider-payouts

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/payments/provider-payouts" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123" \  -H "Content-Type: application/json" \  -d '{    "provider": "mock",    "providerPayoutId": "string",    "currency": "str",    "amount": 0,    "status": "pending"  }'
{  "id": "string",  "tenantId": "string",  "provider": "mock",  "providerPayoutId": "string",  "currency": "string",  "amount": 0,  "status": "pending",  "expectedArrivalAt": "string",  "paidAt": "string",  "reconciledAt": "string",  "varianceAmount": 0,  "payload": {    "property1": null,    "property2": null  },  "createdAt": "string",  "updatedAt": "string",  "created": true,  "settlements": [    {      "id": "string",      "tenantId": "string",      "provider": "mock",      "providerSettlementId": "string",      "currency": "string",      "grossAmount": 0,      "feeAmount": 0,      "refundAmount": 0,      "disputeAmount": 0,      "netAmount": 0,      "status": "pending",      "settledAt": "string",      "payload": {        "property1": null,        "property2": null      },      "createdAt": "string",      "updatedAt": "string",      "created": true    }  ]}
POST
/payments/provider-attempts

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/payments/provider-attempts" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123" \  -H "Content-Type: application/json" \  -d '{    "provider": "mock",    "operationType": "authorize",    "amount": 1,    "currency": "str"  }'
{  "id": "string",  "tenantId": "string",  "paymentIntentId": "string",  "provider": "mock",  "operationType": "authorize",  "amount": 1,  "currency": "string",  "status": "queued",  "requestIdempotencyKey": "string",  "providerIdempotencyKey": "string",  "providerReference": "string",  "metadata": {    "property1": null,    "property2": null  },  "outcome": {    "property1": null,    "property2": null  },  "attemptCount": 0,  "maxAttempts": 1,  "availableAt": "string",  "claimedBy": "string",  "claimToken": "string",  "claimedAt": "string",  "leaseExpiresAt": "string",  "lastError": "string",  "createdByStaffUserId": "string",  "createdAt": "string",  "updatedAt": "string",  "completedAt": "string",  "replayed": true,  "events": [    {      "id": "string",      "eventType": "string",      "fromStatus": "queued",      "toStatus": "queued",      "attemptNumber": 0,      "workerId": "string",      "detail": {        "property1": null,        "property2": null      },      "occurredAt": "string"    }  ]}
POST
/payments/provider-events/disputes

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/payments/provider-events/disputes" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123" \  -H "Content-Type: application/json" \  -d '{    "provider": "mock",    "providerEventId": "string",    "providerDisputeId": "string",    "amount": 1,    "currency": "str",    "status": "warning_needs_response"  }'
{  "id": "string",  "tenantId": "string",  "provider": "mock",  "providerDisputeId": "string",  "providerPaymentReference": "string",  "paymentAttemptId": "string",  "amount": 1,  "currency": "string",  "status": "warning_needs_response",  "reason": "string",  "evidenceDueAt": "string",  "providerCreatedAt": "string",  "payload": {    "property1": null,    "property2": null  },  "createdAt": "string",  "updatedAt": "string",  "closedAt": "string",  "replayed": true,  "created": true,  "events": [    {      "id": "string",      "providerEventId": "string",      "eventType": "string",      "status": "warning_needs_response",      "payload": {        "property1": null,        "property2": null      },      "occurredAt": "string"    }  ]}
GET
/payments/disputes/{disputeId}

Path Parameters

disputeId*string
Length1 <= length

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Response Body

application/json

curl -X GET "https://example.com/payments/disputes/string" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123"
{  "id": "string",  "tenantId": "string",  "provider": "mock",  "providerDisputeId": "string",  "providerPaymentReference": "string",  "paymentAttemptId": "string",  "amount": 1,  "currency": "string",  "status": "warning_needs_response",  "reason": "string",  "evidenceDueAt": "string",  "providerCreatedAt": "string",  "payload": {    "property1": null,    "property2": null  },  "createdAt": "string",  "updatedAt": "string",  "closedAt": "string",  "replayed": true,  "created": true,  "events": [    {      "id": "string",      "providerEventId": "string",      "eventType": "string",      "status": "warning_needs_response",      "payload": {        "property1": null,        "property2": null      },      "occurredAt": "string"    }  ]}
POST
/payments/provider-payouts/{payoutId}/reconcile

Path Parameters

payoutId*string
Length1 <= length

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/payments/provider-payouts/string/reconcile" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123" \  -H "Content-Type: application/json" \  -d '{    "settlementIds": [      "string"    ]  }'
{  "id": "string",  "tenantId": "string",  "provider": "mock",  "providerPayoutId": "string",  "currency": "string",  "amount": 0,  "status": "pending",  "expectedArrivalAt": "string",  "paidAt": "string",  "reconciledAt": "string",  "varianceAmount": 0,  "payload": {    "property1": null,    "property2": null  },  "createdAt": "string",  "updatedAt": "string",  "created": true,  "settlements": [    {      "id": "string",      "tenantId": "string",      "provider": "mock",      "providerSettlementId": "string",      "currency": "string",      "grossAmount": 0,      "feeAmount": 0,      "refundAmount": 0,      "disputeAmount": 0,      "netAmount": 0,      "status": "pending",      "settledAt": "string",      "payload": {        "property1": null,        "property2": null      },      "createdAt": "string",      "updatedAt": "string",      "created": true    }  ]}
GET
/payments/provider-payouts/{payoutId}

Path Parameters

payoutId*string
Length1 <= length

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Response Body

application/json

curl -X GET "https://example.com/payments/provider-payouts/string" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123"
{  "id": "string",  "tenantId": "string",  "provider": "mock",  "providerPayoutId": "string",  "currency": "string",  "amount": 0,  "status": "pending",  "expectedArrivalAt": "string",  "paidAt": "string",  "reconciledAt": "string",  "varianceAmount": 0,  "payload": {    "property1": null,    "property2": null  },  "createdAt": "string",  "updatedAt": "string",  "created": true,  "settlements": [    {      "id": "string",      "tenantId": "string",      "provider": "mock",      "providerSettlementId": "string",      "currency": "string",      "grossAmount": 0,      "feeAmount": 0,      "refundAmount": 0,      "disputeAmount": 0,      "netAmount": 0,      "status": "pending",      "settledAt": "string",      "payload": {        "property1": null,        "property2": null      },      "createdAt": "string",      "updatedAt": "string",      "created": true    }  ]}
GET
/payments/provider-attempts/{attemptId}

Path Parameters

attemptId*string
Length1 <= length

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Response Body

application/json

curl -X GET "https://example.com/payments/provider-attempts/string" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123"
{  "id": "string",  "tenantId": "string",  "paymentIntentId": "string",  "provider": "mock",  "operationType": "authorize",  "amount": 1,  "currency": "string",  "status": "queued",  "requestIdempotencyKey": "string",  "providerIdempotencyKey": "string",  "providerReference": "string",  "metadata": {    "property1": null,    "property2": null  },  "outcome": {    "property1": null,    "property2": null  },  "attemptCount": 0,  "maxAttempts": 1,  "availableAt": "string",  "claimedBy": "string",  "claimToken": "string",  "claimedAt": "string",  "leaseExpiresAt": "string",  "lastError": "string",  "createdByStaffUserId": "string",  "createdAt": "string",  "updatedAt": "string",  "completedAt": "string",  "replayed": true,  "events": [    {      "id": "string",      "eventType": "string",      "fromStatus": "queued",      "toStatus": "queued",      "attemptNumber": 0,      "workerId": "string",      "detail": {        "property1": null,        "property2": null      },      "occurredAt": "string"    }  ]}
POST
/payments/provider-attempts/claim

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/payments/provider-attempts/claim" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123" \  -H "Content-Type: application/json" \  -d '{    "workerId": "string"  }'
{  "id": "string",  "tenantId": "string",  "paymentIntentId": "string",  "provider": "mock",  "operationType": "authorize",  "amount": 1,  "currency": "string",  "status": "queued",  "requestIdempotencyKey": "string",  "providerIdempotencyKey": "string",  "providerReference": "string",  "metadata": {    "property1": null,    "property2": null  },  "outcome": {    "property1": null,    "property2": null  },  "attemptCount": 0,  "maxAttempts": 1,  "availableAt": "string",  "claimedBy": "string",  "claimToken": "string",  "claimedAt": "string",  "leaseExpiresAt": "string",  "lastError": "string",  "createdByStaffUserId": "string",  "createdAt": "string",  "updatedAt": "string",  "completedAt": "string",  "replayed": true,  "events": [    {      "id": "string",      "eventType": "string",      "fromStatus": "queued",      "toStatus": "queued",      "attemptNumber": 0,      "workerId": "string",      "detail": {        "property1": null,        "property2": null      },      "occurredAt": "string"    }  ]}
POST
/payments/provider-attempts/{attemptId}/execute

Path Parameters

attemptId*string
Length1 <= length

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/payments/provider-attempts/string/execute" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123" \  -H "Content-Type: application/json" \  -d '{    "claimToken": "string"  }'
{  "id": "string",  "tenantId": "string",  "paymentIntentId": "string",  "provider": "mock",  "operationType": "authorize",  "amount": 1,  "currency": "string",  "status": "queued",  "requestIdempotencyKey": "string",  "providerIdempotencyKey": "string",  "providerReference": "string",  "metadata": {    "property1": null,    "property2": null  },  "outcome": {    "property1": null,    "property2": null  },  "attemptCount": 0,  "maxAttempts": 1,  "availableAt": "string",  "claimedBy": "string",  "claimToken": "string",  "claimedAt": "string",  "leaseExpiresAt": "string",  "lastError": "string",  "createdByStaffUserId": "string",  "createdAt": "string",  "updatedAt": "string",  "completedAt": "string",  "replayed": true,  "events": [    {      "id": "string",      "eventType": "string",      "fromStatus": "queued",      "toStatus": "queued",      "attemptNumber": 0,      "workerId": "string",      "detail": {        "property1": null,        "property2": null      },      "occurredAt": "string"    }  ]}
POST
/payments/provider-attempts/{attemptId}/recover

Path Parameters

attemptId*string
Length1 <= length

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/payments/provider-attempts/string/recover" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123" \  -H "Content-Type: application/json" \  -d '{    "workerId": "string"  }'
{  "id": "string",  "tenantId": "string",  "paymentIntentId": "string",  "provider": "mock",  "operationType": "authorize",  "amount": 1,  "currency": "string",  "status": "queued",  "requestIdempotencyKey": "string",  "providerIdempotencyKey": "string",  "providerReference": "string",  "metadata": {    "property1": null,    "property2": null  },  "outcome": {    "property1": null,    "property2": null  },  "attemptCount": 0,  "maxAttempts": 1,  "availableAt": "string",  "claimedBy": "string",  "claimToken": "string",  "claimedAt": "string",  "leaseExpiresAt": "string",  "lastError": "string",  "createdByStaffUserId": "string",  "createdAt": "string",  "updatedAt": "string",  "completedAt": "string",  "replayed": true,  "events": [    {      "id": "string",      "eventType": "string",      "fromStatus": "queued",      "toStatus": "queued",      "attemptNumber": 0,      "workerId": "string",      "detail": {        "property1": null,        "property2": null      },      "occurredAt": "string"    }  ]}
POST
/payments/provider-webhooks/configurations

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/payments/provider-webhooks/configurations" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123" \  -H "Content-Type: application/json" \  -d '{    "provider": "stripe",    "currentSecretRef": "string"  }'
{  "id": "string",  "tenantId": "string",  "provider": "stripe",  "endpointKey": "string",  "callbackPath": "string",  "notificationUrl": "string",  "enabled": true,  "currentSecretRef": "string",  "previousSecretRef": "string",  "previousValidUntil": "string",  "signatureToleranceSeconds": 0,  "createdAt": "string",  "updatedAt": "string"}
POST
/payments/provider-webhooks/configurations/{configurationId}/rotate

Path Parameters

configurationId*string
Length1 <= length

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/payments/provider-webhooks/configurations/string/rotate" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123" \  -H "Content-Type: application/json" \  -d '{    "currentSecretRef": "string"  }'
{  "id": "string",  "tenantId": "string",  "provider": "stripe",  "endpointKey": "string",  "callbackPath": "string",  "notificationUrl": "string",  "enabled": true,  "currentSecretRef": "string",  "previousSecretRef": "string",  "previousValidUntil": "string",  "signatureToleranceSeconds": 0,  "createdAt": "string",  "updatedAt": "string"}
POST
/webhooks/payments/stripe/{endpointKey}

Path Parameters

endpointKey*string
Length1 <= length

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

stripe-signature*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/webhooks/payments/stripe/string" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123" \  -H "stripe-signature: string" \  -H "Content-Type: application/json" \  -d '{    "property1": null,    "property2": null  }'
{  "provider": "stripe",  "providerEventId": "string",  "eventType": "string",  "status": "processed",  "replayed": true,  "effect": {    "kind": "string",    "factId": "string",    "status": "string",    "applied": true  }}
POST
/webhooks/payments/square/{endpointKey}

Path Parameters

endpointKey*string
Length1 <= length

Header Parameters

x-tenant-id?string

Selects the tenant by id. When both tenant headers are omitted, the server falls back to the configured default tenant slug.

x-tenant-slug?string

Selects the tenant by slug. Use this when you know the tenant slug instead of the tenant id.

x-location-id?string

Adds a location scope to the request for location-aware reads, writes, and audit entries.

x-auth-provider?"hexclave"

Test-only Hexclave provider identifier used with x-auth-user-id when trusted identity headers are explicitly enabled. Production clients must use a Hexclave bearer token.

Value in

  • "hexclave"
x-auth-user-id?string

Temporary auth subject used to resolve the acting staff user through the staff auth identity mapping.

x-square-hmacsha256-signature*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/webhooks/payments/square/string" \  -H "x-tenant-id: tenant-local" \  -H "x-tenant-slug: trellis-local" \  -H "x-location-id: loc-tasting-room" \  -H "x-auth-provider: hexclave" \  -H "x-auth-user-id: user_abc123" \  -H "x-square-hmacsha256-signature: string" \  -H "Content-Type: application/json" \  -d '{    "property1": null,    "property2": null  }'
{  "provider": "stripe",  "providerEventId": "string",  "eventType": "string",  "status": "processed",  "replayed": true,  "effect": {    "kind": "string",    "factId": "string",    "status": "string",    "applied": true  }}