Files
gru_emoney_token-factory/API_ENDPOINTS.md
defiQUG 128e6634ae Update API documentation to reflect new domain names for services
- Changed all instances of the old domain `emoney.example.com` to the new domain `d-bis.org` across all API endpoints.
- Ensured consistency in the documentation for production, staging, and local development environments.
- Updated contact information for API support to reflect the new domain.
2025-12-12 20:34:13 -08:00

782 lines
26 KiB
Markdown

# eMoney Token Factory API Endpoints
Complete reference of all API endpoints with their Fully Qualified Domain Names (FQDNs).
## Base URLs
### Production
- **REST API**: `https://api.d-bis.org`
- **Mapping Service**: `https://mappings.api.d-bis.org`
- **Webhook Service**: `https://webhooks.api.d-bis.org`
- **Orchestrator Service**: `https://orchestrator.api.d-bis.org`
- **Packet Service**: `https://packets.api.d-bis.org`
### Staging
- **REST API**: `https://api-staging.d-bis.org`
- **Mapping Service**: `https://mappings.api-staging.d-bis.org`
- **Webhook Service**: `https://webhooks.api-staging.d-bis.org`
- **Orchestrator Service**: `https://orchestrator.api-staging.d-bis.org`
- **Packet Service**: `https://packets.api-staging.d-bis.org`
### Local Development
- **REST API**: `http://localhost:3000`
- **Mapping Service**: `http://localhost:3004`
- **Webhook Service**: `http://localhost:3001`
- **Orchestrator Service**: `http://localhost:3002`
- **Packet Service**: `http://localhost:3003`
---
## REST API Service
Base Path: `/v1`
### Tokens
#### Deploy Token
- **Method**: `POST`
- **Path**: `/v1/tokens`
- **FQDN**: `https://api.d-bis.org/v1/tokens`
- **Description**: Deploy a new eMoney token on ChainID 138
- **Auth**: Requires `TOKEN_DEPLOYER` role
- **Idempotent**: Yes
#### List Tokens
- **Method**: `GET`
- **Path**: `/v1/tokens`
- **FQDN**: `https://api.d-bis.org/v1/tokens`
- **Description**: List all deployed tokens with optional filtering
- **Query Parameters**: `code`, `issuer`, `limit`, `offset`
#### Get Token
- **Method**: `GET`
- **Path**: `/v1/tokens/{code}`
- **FQDN**: `https://api.d-bis.org/v1/tokens/{code}`
- **Description**: Get token metadata and configuration by code
- **Path Parameters**: `code` (token code, e.g., USDW)
#### Update Token Policy
- **Method**: `PATCH`
- **Path**: `/v1/tokens/{code}/policy`
- **FQDN**: `https://api.d-bis.org/v1/tokens/{code}/policy`
- **Description**: Update token policy configuration (pause, lienMode, bridgeOnly, etc.)
- **Auth**: Requires `POLICY_OPERATOR` role
#### Mint Tokens
- **Method**: `POST`
- **Path**: `/v1/tokens/{code}/mint`
- **FQDN**: `https://api.d-bis.org/v1/tokens/{code}/mint`
- **Description**: Mint new tokens to an address
- **Auth**: Requires `ISSUER` role
- **Idempotent**: Yes
#### Burn Tokens
- **Method**: `POST`
- **Path**: `/v1/tokens/{code}/burn`
- **FQDN**: `https://api.d-bis.org/v1/tokens/{code}/burn`
- **Description**: Burn tokens from an address
- **Auth**: Requires `ISSUER` role
- **Idempotent**: Yes
#### Clawback Tokens
- **Method**: `POST`
- **Path**: `/v1/tokens/{code}/clawback`
- **FQDN**: `https://api.d-bis.org/v1/tokens/{code}/clawback`
- **Description**: Clawback tokens from an address
- **Auth**: Requires `ENFORCEMENT` role
- **Idempotent**: Yes
#### Force Transfer Tokens
- **Method**: `POST`
- **Path**: `/v1/tokens/{code}/force-transfer`
- **FQDN**: `https://api.d-bis.org/v1/tokens/{code}/force-transfer`
- **Description**: Force transfer tokens between addresses
- **Auth**: Requires `ENFORCEMENT` role
- **Idempotent**: Yes
### Liens
#### Place Lien
- **Method**: `POST`
- **Path**: `/v1/liens`
- **FQDN**: `https://api.d-bis.org/v1/liens`
- **Description**: Place a lien (encumbrance) on an account
- **Auth**: Requires `DEBT_AUTHORITY` role
#### List Liens
- **Method**: `GET`
- **Path**: `/v1/liens`
- **FQDN**: `https://api.d-bis.org/v1/liens`
- **Description**: List liens with optional filtering
- **Query Parameters**: `debtor`, `active`, `limit`, `offset`
#### Get Lien
- **Method**: `GET`
- **Path**: `/v1/liens/{lienId}`
- **FQDN**: `https://api.d-bis.org/v1/liens/{lienId}`
- **Description**: Get lien details by ID
- **Path Parameters**: `lienId` (numeric lien identifier)
#### Reduce Lien
- **Method**: `PATCH`
- **Path**: `/v1/liens/{lienId}`
- **FQDN**: `https://api.d-bis.org/v1/liens/{lienId}`
- **Description**: Reduce lien amount
- **Auth**: Requires `DEBT_AUTHORITY` role
#### Release Lien
- **Method**: `DELETE`
- **Path**: `/v1/liens/{lienId}`
- **FQDN**: `https://api.d-bis.org/v1/liens/{lienId}`
- **Description**: Release (remove) a lien
- **Auth**: Requires `DEBT_AUTHORITY` role
#### Get Account Liens
- **Method**: `GET`
- **Path**: `/v1/liens/accounts/{accountRefId}/liens`
- **FQDN**: `https://api.d-bis.org/v1/liens/accounts/{accountRefId}/liens`
- **Description**: Get all liens for a specific account
- **Path Parameters**: `accountRefId` (0x-prefixed 64-char hex string)
- **Query Parameters**: `active` (optional boolean)
#### Get Encumbrance
- **Method**: `GET`
- **Path**: `/v1/liens/accounts/{accountRefId}/encumbrance`
- **FQDN**: `https://api.d-bis.org/v1/liens/accounts/{accountRefId}/encumbrance`
- **Description**: Get active encumbrance and free balance for an account by token
- **Path Parameters**: `accountRefId` (0x-prefixed 64-char hex string)
- **Query Parameters**: `token` (optional Ethereum address)
### Compliance
#### Set Account Compliance
- **Method**: `PUT`
- **Path**: `/v1/compliance/accounts/{accountRefId}`
- **FQDN**: `https://api.d-bis.org/v1/compliance/accounts/{accountRefId}`
- **Description**: Set compliance status for an account
- **Auth**: Requires `COMPLIANCE` role
- **Path Parameters**: `accountRefId` (0x-prefixed 64-char hex string)
#### Get Account Compliance
- **Method**: `GET`
- **Path**: `/v1/compliance/accounts/{accountRefId}`
- **FQDN**: `https://api.d-bis.org/v1/compliance/accounts/{accountRefId}`
- **Description**: Get compliance profile for an account
- **Path Parameters**: `accountRefId` (0x-prefixed 64-char hex string)
#### Freeze/Unfreeze Account
- **Method**: `PUT`
- **Path**: `/v1/compliance/accounts/{accountRefId}/freeze`
- **FQDN**: `https://api.d-bis.org/v1/compliance/accounts/{accountRefId}/freeze`
- **Description**: Freeze or unfreeze an account
- **Auth**: Requires `COMPLIANCE` role
- **Path Parameters**: `accountRefId` (0x-prefixed 64-char hex string)
#### Set Account Tier
- **Method**: `PUT`
- **Path**: `/v1/compliance/accounts/{accountRefId}/tier`
- **FQDN**: `https://api.d-bis.org/v1/compliance/accounts/{accountRefId}/tier`
- **Description**: Set risk tier for an account
- **Auth**: Requires `COMPLIANCE` role
- **Path Parameters**: `accountRefId` (0x-prefixed 64-char hex string)
#### Set Account Jurisdiction Hash
- **Method**: `PUT`
- **Path**: `/v1/compliance/accounts/{accountRefId}/jurisdiction`
- **FQDN**: `https://api.d-bis.org/v1/compliance/accounts/{accountRefId}/jurisdiction`
- **Description**: Set jurisdiction hash for an account
- **Auth**: Requires `COMPLIANCE` role
- **Path Parameters**: `accountRefId` (0x-prefixed 64-char hex string)
#### Set Wallet Compliance
- **Method**: `PUT`
- **Path**: `/v1/compliance/wallets/{walletRefId}`
- **FQDN**: `https://api.d-bis.org/v1/compliance/wallets/{walletRefId}`
- **Description**: Set compliance status for a wallet
- **Auth**: Requires `COMPLIANCE` role
- **Path Parameters**: `walletRefId` (0x-prefixed 64-char hex string)
#### Get Wallet Compliance
- **Method**: `GET`
- **Path**: `/v1/compliance/wallets/{walletRefId}`
- **FQDN**: `https://api.d-bis.org/v1/compliance/wallets/{walletRefId}`
- **Description**: Get compliance profile for a wallet
- **Path Parameters**: `walletRefId` (0x-prefixed 64-char hex string)
#### Freeze/Unfreeze Wallet
- **Method**: `PUT`
- **Path**: `/v1/compliance/wallets/{walletRefId}/freeze`
- **FQDN**: `https://api.d-bis.org/v1/compliance/wallets/{walletRefId}/freeze`
- **Description**: Freeze or unfreeze a wallet
- **Auth**: Requires `COMPLIANCE` role
- **Path Parameters**: `walletRefId` (0x-prefixed 64-char hex string)
#### Set Wallet Tier
- **Method**: `PUT`
- **Path**: `/v1/compliance/wallets/{walletRefId}/tier`
- **FQDN**: `https://api.d-bis.org/v1/compliance/wallets/{walletRefId}/tier`
- **Description**: Set risk tier for a wallet
- **Auth**: Requires `COMPLIANCE` role
- **Path Parameters**: `walletRefId` (0x-prefixed 64-char hex string)
#### Set Wallet Jurisdiction Hash
- **Method**: `PUT`
- **Path**: `/v1/compliance/wallets/{walletRefId}/jurisdiction`
- **FQDN**: `https://api.d-bis.org/v1/compliance/wallets/{walletRefId}/jurisdiction`
- **Description**: Set jurisdiction hash for a wallet
- **Auth**: Requires `COMPLIANCE` role
- **Path Parameters**: `walletRefId` (0x-prefixed 64-char hex string)
### Mappings
#### Link Account to Wallet
- **Method**: `POST`
- **Path**: `/v1/mappings/account-wallet/link`
- **FQDN**: `https://api.d-bis.org/v1/mappings/account-wallet/link`
- **Description**: Create a mapping between an account reference and a wallet reference
#### Unlink Account from Wallet
- **Method**: `POST`
- **Path**: `/v1/mappings/account-wallet/unlink`
- **FQDN**: `https://api.d-bis.org/v1/mappings/account-wallet/unlink`
- **Description**: Remove a mapping between an account reference and a wallet reference
#### Get Wallets for Account
- **Method**: `GET`
- **Path**: `/v1/mappings/accounts/{accountRefId}/wallets`
- **FQDN**: `https://api.d-bis.org/v1/mappings/accounts/{accountRefId}/wallets`
- **Description**: Get all wallet references linked to an account reference
- **Path Parameters**: `accountRefId` (0x-prefixed 64-char hex string)
#### Get Accounts for Wallet
- **Method**: `GET`
- **Path**: `/v1/mappings/wallets/{walletRefId}/accounts`
- **FQDN**: `https://api.d-bis.org/v1/mappings/wallets/{walletRefId}/accounts`
- **Description**: Get all account references linked to a wallet reference
- **Path Parameters**: `walletRefId` (0x-prefixed 64-char hex string)
#### Connect Provider
- **Method**: `POST`
- **Path**: `/v1/mappings/providers/{provider}/connect`
- **FQDN**: `https://api.d-bis.org/v1/mappings/providers/{provider}/connect`
- **Description**: Connect a provider (WalletConnect, Fireblocks, etc.)
- **Path Parameters**: `provider` (provider name)
#### Get Provider Status
- **Method**: `GET`
- **Path**: `/v1/mappings/providers/{provider}/connections/{connectionId}/status`
- **FQDN**: `https://api.d-bis.org/v1/mappings/providers/{provider}/connections/{connectionId}/status`
- **Description**: Get connection status for a provider
- **Path Parameters**: `provider`, `connectionId`
### Triggers
#### List Triggers
- **Method**: `GET`
- **Path**: `/v1/triggers`
- **FQDN**: `https://api.d-bis.org/v1/triggers`
- **Description**: List payment rail triggers with filtering
- **Query Parameters**: `state`, `rail`, `msgType`, `instructionId`, `limit`, `offset`
#### Get Trigger
- **Method**: `GET`
- **Path**: `/v1/triggers/{triggerId}`
- **FQDN**: `https://api.d-bis.org/v1/triggers/{triggerId}`
- **Description**: Get trigger details by ID
- **Path Parameters**: `triggerId` (64-char hex string)
#### Validate and Lock Trigger
- **Method**: `POST`
- **Path**: `/v1/triggers/{triggerId}/validate-and-lock`
- **FQDN**: `https://api.d-bis.org/v1/triggers/{triggerId}/validate-and-lock`
- **Description**: Orchestrator step - validate trigger and lock funds
- **Auth**: Requires `POLICY_OPERATOR` role
- **Path Parameters**: `triggerId` (64-char hex string)
#### Mark Trigger Submitted
- **Method**: `POST`
- **Path**: `/v1/triggers/{triggerId}/mark-submitted`
- **FQDN**: `https://api.d-bis.org/v1/triggers/{triggerId}/mark-submitted`
- **Description**: Mark trigger as submitted to rail (includes railTxRef)
- **Auth**: Requires `POLICY_OPERATOR` role
- **Path Parameters**: `triggerId` (64-char hex string)
#### Confirm Trigger Settled
- **Method**: `POST`
- **Path**: `/v1/triggers/{triggerId}/confirm-settled`
- **FQDN**: `https://api.d-bis.org/v1/triggers/{triggerId}/confirm-settled`
- **Description**: Confirm trigger has settled on the rail
- **Auth**: Requires `POLICY_OPERATOR` role
- **Idempotent**: Yes
- **Path Parameters**: `triggerId` (64-char hex string)
#### Confirm Trigger Rejected
- **Method**: `POST`
- **Path**: `/v1/triggers/{triggerId}/confirm-rejected`
- **FQDN**: `https://api.d-bis.org/v1/triggers/{triggerId}/confirm-rejected`
- **Description**: Confirm trigger was rejected on the rail
- **Auth**: Requires `POLICY_OPERATOR` role
- **Idempotent**: Yes
- **Path Parameters**: `triggerId` (64-char hex string)
### ISO-20022
#### Submit Inbound Message
- **Method**: `POST`
- **Path**: `/v1/iso/inbound`
- **FQDN**: `https://api.d-bis.org/v1/iso/inbound`
- **Description**: Submit an inbound ISO-20022 message (from rail adapter)
- **Auth**: mTLS or OAuth2 with `POLICY_OPERATOR` role
- **Idempotent**: Yes
#### Submit Outbound Message
- **Method**: `POST`
- **Path**: `/v1/iso/outbound`
- **FQDN**: `https://api.d-bis.org/v1/iso/outbound`
- **Description**: Submit an outbound ISO-20022 message (from ops/client)
- **Idempotent**: Yes
### Packets
#### Generate Packet
- **Method**: `POST`
- **Path**: `/v1/packets`
- **FQDN**: `https://api.d-bis.org/v1/packets`
- **Description**: Generate a non-scheme integration packet (PDF + sidecars)
- **Idempotent**: Yes
#### List Packets
- **Method**: `GET`
- **Path**: `/v1/packets`
- **FQDN**: `https://api.d-bis.org/v1/packets`
- **Description**: List packets with optional filtering
- **Query Parameters**: `triggerId`, `instructionId`, `status`, `limit`, `offset`
#### Get Packet
- **Method**: `GET`
- **Path**: `/v1/packets/{packetId}`
- **FQDN**: `https://api.d-bis.org/v1/packets/{packetId}`
- **Description**: Get packet metadata and hashes
- **Path Parameters**: `packetId` (64-char hex string)
#### Download Packet
- **Method**: `GET`
- **Path**: `/v1/packets/{packetId}/download`
- **FQDN**: `https://api.d-bis.org/v1/packets/{packetId}/download`
- **Description**: Download packet file (PDF, XML, etc.)
- **Path Parameters**: `packetId` (64-char hex string)
#### Dispatch Packet
- **Method**: `POST`
- **Path**: `/v1/packets/{packetId}/dispatch`
- **FQDN**: `https://api.d-bis.org/v1/packets/{packetId}/dispatch`
- **Description**: Dispatch packet via email/AS4/portal
- **Idempotent**: Yes
- **Path Parameters**: `packetId` (64-char hex string)
#### Acknowledge Packet
- **Method**: `POST`
- **Path**: `/v1/packets/{packetId}/ack`
- **FQDN**: `https://api.d-bis.org/v1/packets/{packetId}/ack`
- **Description**: Record an acknowledgement/receipt for a packet
- **Idempotent**: Yes
- **Path Parameters**: `packetId` (64-char hex string)
### Bridge
#### Lock Tokens
- **Method**: `POST`
- **Path**: `/v1/bridge/lock`
- **FQDN**: `https://api.d-bis.org/v1/bridge/lock`
- **Description**: Lock tokens in bridge vault for cross-chain transfer
#### Unlock Tokens
- **Method**: `POST`
- **Path**: `/v1/bridge/unlock`
- **FQDN**: `https://api.d-bis.org/v1/bridge/unlock`
- **Description**: Unlock tokens from bridge vault (requires proof)
- **Auth**: Requires `BRIDGE_OPERATOR` role
- **Idempotent**: Yes
#### Get Bridge Lock Status
- **Method**: `GET`
- **Path**: `/v1/bridge/locks/{lockId}`
- **FQDN**: `https://api.d-bis.org/v1/bridge/locks/{lockId}`
- **Description**: Get bridge lock status by ID
- **Path Parameters**: `lockId` (64-char hex string)
#### Get Bridge Corridors
- **Method**: `GET`
- **Path**: `/v1/bridge/corridors`
- **FQDN**: `https://api.d-bis.org/v1/bridge/corridors`
- **Description**: Get list of supported bridge corridors and verification modes
### Health Check
#### Health Check
- **Method**: `GET`
- **Path**: `/health`
- **FQDN**: `https://api.d-bis.org/health`
- **Description**: Health check endpoint
---
## Mapping Service
Base Path: `/v1/mappings`
### Account-Wallet Mappings
#### Link Account to Wallet
- **Method**: `POST`
- **Path**: `/v1/mappings/account-wallet/link`
- **FQDN**: `https://mappings.api.d-bis.org/v1/mappings/account-wallet/link`
- **Description**: Create a mapping between an account reference and a wallet reference
#### Unlink Account from Wallet
- **Method**: `POST`
- **Path**: `/v1/mappings/account-wallet/unlink`
- **FQDN**: `https://mappings.api.d-bis.org/v1/mappings/account-wallet/unlink`
- **Description**: Remove a mapping between an account reference and a wallet reference
#### Get Wallets for Account
- **Method**: `GET`
- **Path**: `/v1/mappings/accounts/{accountRefId}/wallets`
- **FQDN**: `https://mappings.api.d-bis.org/v1/mappings/accounts/{accountRefId}/wallets`
- **Description**: Get all wallet references linked to an account reference
- **Path Parameters**: `accountRefId` (0x-prefixed 64-char hex string)
#### Get Accounts for Wallet
- **Method**: `GET`
- **Path**: `/v1/mappings/wallets/{walletRefId}/accounts`
- **FQDN**: `https://mappings.api.d-bis.org/v1/mappings/wallets/{walletRefId}/accounts`
- **Description**: Get all account references linked to a wallet reference
- **Path Parameters**: `walletRefId` (0x-prefixed 64-char hex string)
### Provider Management
#### Connect Provider
- **Method**: `POST`
- **Path**: `/v1/mappings/providers/{provider}/connect`
- **FQDN**: `https://mappings.api.d-bis.org/v1/mappings/providers/{provider}/connect`
- **Description**: Connect a provider (WalletConnect, Fireblocks, MetaMask, etc.)
- **Path Parameters**: `provider` (provider name)
#### Get Provider Status
- **Method**: `GET`
- **Path**: `/v1/mappings/providers/{provider}/connections/{connectionId}/status`
- **FQDN**: `https://mappings.api.d-bis.org/v1/mappings/providers/{provider}/connections/{connectionId}/status`
- **Description**: Get connection status for a provider
- **Path Parameters**: `provider`, `connectionId`
#### List Providers
- **Method**: `GET`
- **Path**: `/v1/mappings/providers`
- **FQDN**: `https://mappings.api.d-bis.org/v1/mappings/providers`
- **Description**: List all available providers
### WEB3-ETH-IBAN
#### Convert Address to IBAN
- **Method**: `POST`
- **Path**: `/v1/mappings/web3/address-to-iban`
- **FQDN**: `https://mappings.api.d-bis.org/v1/mappings/web3/address-to-iban`
- **Description**: Convert Ethereum address to WEB3-ETH-IBAN format
#### Convert IBAN to Address
- **Method**: `POST`
- **Path**: `/v1/mappings/web3/iban-to-address`
- **FQDN**: `https://mappings.api.d-bis.org/v1/mappings/web3/iban-to-address`
- **Description**: Convert WEB3-ETH-IBAN to Ethereum address
#### Validate IBAN
- **Method**: `POST`
- **Path**: `/v1/mappings/web3/validate-iban`
- **FQDN**: `https://mappings.api.d-bis.org/v1/mappings/web3/validate-iban`
- **Description**: Validate IBAN format and extract Ethereum address
#### Validate Address
- **Method**: `POST`
- **Path**: `/v1/mappings/web3/validate-address`
- **FQDN**: `https://mappings.api.d-bis.org/v1/mappings/web3/validate-address`
- **Description**: Validate Ethereum address format and checksum
### Health Check
#### Health Check
- **Method**: `GET`
- **Path**: `/health`
- **FQDN**: `https://mappings.api.d-bis.org/health`
- **Description**: Health check endpoint
---
## Webhook Service
Base Path: `/v1/webhooks`
### Webhook Management
#### Create Webhook
- **Method**: `POST`
- **Path**: `/v1/webhooks`
- **FQDN**: `https://webhooks.api.d-bis.org/v1/webhooks`
- **Description**: Create a new webhook subscription
#### List Webhooks
- **Method**: `GET`
- **Path**: `/v1/webhooks`
- **FQDN**: `https://webhooks.api.d-bis.org/v1/webhooks`
- **Description**: List all webhook subscriptions
- **Query Parameters**: `limit`, `offset`
#### Get Webhook
- **Method**: `GET`
- **Path**: `/v1/webhooks/{id}`
- **FQDN**: `https://webhooks.api.d-bis.org/v1/webhooks/{id}`
- **Description**: Get webhook details by ID
- **Path Parameters**: `id` (webhook identifier)
#### Update Webhook
- **Method**: `PATCH`
- **Path**: `/v1/webhooks/{id}`
- **FQDN**: `https://webhooks.api.d-bis.org/v1/webhooks/{id}`
- **Description**: Update webhook configuration
- **Path Parameters**: `id` (webhook identifier)
#### Delete Webhook
- **Method**: `DELETE`
- **Path**: `/v1/webhooks/{id}`
- **FQDN**: `https://webhooks.api.d-bis.org/v1/webhooks/{id}`
- **Description**: Delete a webhook subscription
- **Path Parameters**: `id` (webhook identifier)
#### Test Webhook
- **Method**: `POST`
- **Path**: `/v1/webhooks/{id}/test`
- **FQDN**: `https://webhooks.api.d-bis.org/v1/webhooks/{id}/test`
- **Description**: Send a test event to the webhook
- **Path Parameters**: `id` (webhook identifier)
#### Replay Webhooks
- **Method**: `POST`
- **Path**: `/v1/webhooks/{id}/replay`
- **FQDN**: `https://webhooks.api.d-bis.org/v1/webhooks/{id}/replay`
- **Description**: Replay webhook deliveries since a timestamp
- **Path Parameters**: `id` (webhook identifier)
- **Query Parameters**: `since` (optional ISO timestamp)
#### Get Delivery Attempts
- **Method**: `GET`
- **Path**: `/v1/webhooks/{id}/attempts`
- **FQDN**: `https://webhooks.api.d-bis.org/v1/webhooks/{id}/attempts`
- **Description**: Get delivery attempt history for a webhook
- **Path Parameters**: `id` (webhook identifier)
### Dead Letter Queue (DLQ)
#### Get DLQ Entries
- **Method**: `GET`
- **Path**: `/v1/webhooks/dlq`
- **FQDN**: `https://webhooks.api.d-bis.org/v1/webhooks/dlq`
- **Description**: Get entries from the dead letter queue
- **Query Parameters**: `limit`, `offset`
#### Retry DLQ Entry
- **Method**: `POST`
- **Path**: `/v1/webhooks/dlq/{id}/retry`
- **FQDN**: `https://webhooks.api.d-bis.org/v1/webhooks/dlq/{id}/retry`
- **Description**: Retry a failed webhook delivery from the DLQ
- **Path Parameters**: `id` (DLQ entry identifier)
### Health Check
#### Health Check
- **Method**: `GET`
- **Path**: `/health`
- **FQDN**: `https://webhooks.api.d-bis.org/health`
- **Description**: Health check endpoint
---
## Orchestrator Service
Base Path: `/v1/orchestrator`
### Trigger Management
#### Get Trigger
- **Method**: `GET`
- **Path**: `/v1/orchestrator/triggers/{triggerId}`
- **FQDN**: `https://orchestrator.api.d-bis.org/v1/orchestrator/triggers/{triggerId}`
- **Description**: Get trigger details by ID
- **Path Parameters**: `triggerId` (64-char hex string)
#### List Triggers
- **Method**: `GET`
- **Path**: `/v1/orchestrator/triggers`
- **FQDN**: `https://orchestrator.api.d-bis.org/v1/orchestrator/triggers`
- **Description**: List payment rail triggers with filtering
- **Query Parameters**: `state`, `rail`, `accountRef`, `walletRef`, `limit`, `offset`
#### Validate and Lock Trigger
- **Method**: `POST`
- **Path**: `/v1/orchestrator/triggers/{triggerId}/validate-and-lock`
- **FQDN**: `https://orchestrator.api.d-bis.org/v1/orchestrator/triggers/{triggerId}/validate-and-lock`
- **Description**: Orchestrator step - validate trigger and lock funds
- **Path Parameters**: `triggerId` (64-char hex string)
#### Mark Trigger Submitted
- **Method**: `POST`
- **Path**: `/v1/orchestrator/triggers/{triggerId}/mark-submitted`
- **FQDN**: `https://orchestrator.api.d-bis.org/v1/orchestrator/triggers/{triggerId}/mark-submitted`
- **Description**: Mark trigger as submitted to rail (includes railTxRef)
- **Path Parameters**: `triggerId` (64-char hex string)
#### Confirm Trigger Settled
- **Method**: `POST`
- **Path**: `/v1/orchestrator/triggers/{triggerId}/confirm-settled`
- **FQDN**: `https://orchestrator.api.d-bis.org/v1/orchestrator/triggers/{triggerId}/confirm-settled`
- **Description**: Confirm trigger has settled on the rail
- **Path Parameters**: `triggerId` (64-char hex string)
#### Confirm Trigger Rejected
- **Method**: `POST`
- **Path**: `/v1/orchestrator/triggers/{triggerId}/confirm-rejected`
- **FQDN**: `https://orchestrator.api.d-bis.org/v1/orchestrator/triggers/{triggerId}/confirm-rejected`
- **Description**: Confirm trigger was rejected on the rail
- **Path Parameters**: `triggerId` (64-char hex string)
### ISO-20022 Router
#### ISO Router Endpoints
- **Base Path**: `/v1/iso`
- **FQDN**: `https://orchestrator.api.d-bis.org/v1/iso`
- **Description**: ISO-20022 message routing endpoints (internal use)
### Health Check
#### Health Check
- **Method**: `GET`
- **Path**: `/health`
- **FQDN**: `https://orchestrator.api.d-bis.org/health`
- **Description**: Health check endpoint
---
## Packet Service
Base Path: `/v1/packets`
### Packet Management
#### Generate Packet
- **Method**: `POST`
- **Path**: `/v1/packets`
- **FQDN**: `https://packets.api.d-bis.org/v1/packets`
- **Description**: Generate a non-scheme integration packet (PDF + sidecars)
#### List Packets
- **Method**: `GET`
- **Path**: `/v1/packets`
- **FQDN**: `https://packets.api.d-bis.org/v1/packets`
- **Description**: List packets with optional filtering
- **Query Parameters**: `triggerId`, `status`, `channel`, `limit`, `offset`
#### Get Packet
- **Method**: `GET`
- **Path**: `/v1/packets/{packetId}`
- **FQDN**: `https://packets.api.d-bis.org/v1/packets/{packetId}`
- **Description**: Get packet metadata
- **Path Parameters**: `packetId` (64-char hex string)
#### Download Packet
- **Method**: `GET`
- **Path**: `/v1/packets/{packetId}/download`
- **FQDN**: `https://packets.api.d-bis.org/v1/packets/{packetId}/download`
- **Description**: Download packet file (PDF, XML, etc.)
- **Path Parameters**: `packetId` (64-char hex string)
#### Dispatch Packet
- **Method**: `POST`
- **Path**: `/v1/packets/{packetId}/dispatch`
- **FQDN**: `https://packets.api.d-bis.org/v1/packets/{packetId}/dispatch`
- **Description**: Dispatch packet via email/AS4/portal
- **Path Parameters**: `packetId` (64-char hex string)
#### Acknowledge Packet
- **Method**: `POST`
- **Path**: `/v1/packets/{packetId}/ack`
- **FQDN**: `https://packets.api.d-bis.org/v1/packets/{packetId}/ack`
- **Description**: Record an acknowledgement/receipt for a packet
- **Path Parameters**: `packetId` (64-char hex string)
### Health Check
#### Health Check
- **Method**: `GET`
- **Path**: `/health`
- **FQDN**: `https://packets.api.d-bis.org/health`
- **Description**: Health check endpoint
---
## Authentication
All endpoints require authentication unless otherwise specified. The API supports:
- **OAuth2** (Client Credentials flow) - Primary authentication method
- **mTLS** - For high-trust adapters (ISO inbound endpoints)
- **API Key** - For internal services (optional)
### Required Roles
- `TOKEN_DEPLOYER` - Deploy new tokens
- `ISSUER` - Mint and burn tokens
- `ENFORCEMENT` - Clawback and force transfer
- `DEBT_AUTHORITY` - Manage liens
- `COMPLIANCE` - Manage compliance registry
- `POLICY_OPERATOR` - Configure token policies and manage triggers
- `BRIDGE_OPERATOR` - Manage bridge operations
---
## Request/Response Format
- **Content-Type**: `application/json`
- **Response Format**: JSON
- **Error Format**:
```json
{
"code": "ERROR_CODE",
"message": "Human-readable error message",
"reasonCode": "REASON_CODE",
"details": {},
"requestId": "request-id"
}
```
---
## Rate Limiting
Rate limits are applied per API key/client credentials. Contact support for rate limit information.
---
## Versioning
All endpoints are versioned using the `/v1` prefix. Future versions will use `/v2`, `/v3`, etc.
---
## Support
For API support, contact: api-support@d-bis.org
---
**Last Updated**: 2024-01-XX
**API Version**: 1.0.0