{
  "openapi": "3.1.0",
  "info": {
    "title": "YembiPay",
    "description": "Controlled settlement infrastructure under active hardening. Adapter implementation does not attest provider or rail readiness; remote V2 value movement remains disabled until its explicit launch gates pass.",
    "version": "2.0.0"
  },
  "paths": {
    "/v2/settle": {
      "post": {
        "tags": [
          "v2-settlements"
        ],
        "summary": "Simulate a universal settlement in the local sandbox",
        "description": "Local-sandbox-only settlement simulation. Remote runtimes return 503 before payment collection or value movement while pre-collection compliance and durable provider/rail gates remain incomplete. The sandbox returns a settlement_id for testing the durable workflow; it does not attest production provider, blockchain, or bank-rail readiness.",
        "operationId": "initiate_settlement_v2_v2_settle_post",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SettleRequestV2"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SettleResponseV2"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "A caller-generated key that permanently identifies this settlement request within the authenticated organization.",
            "schema": {
              "type": "string",
              "minLength": 16,
              "maxLength": 128,
              "pattern": "^[A-Za-z0-9._:-]+$"
            }
          }
        ]
      }
    },
    "/v2/settle/{settlement_id}": {
      "get": {
        "tags": [
          "v2-settlements"
        ],
        "summary": "Poll settlement status",
        "description": "Get the current status of a settlement. Poll this endpoint for async payments (ACH/wire).",
        "operationId": "get_settlement_status_v2_v2_settle__settlement_id__get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "settlement_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64,
              "title": "Settlement Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Response Get Settlement Status V2 V2 Settle  Settlement Id  Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v2/estimate": {
      "post": {
        "tags": [
          "v2-settlements"
        ],
        "summary": "Get fee + FX breakdown",
        "description": "Calculate the full cost breakdown for a settlement before committing. Returns input fees, platform fees, FX rate, and delivery estimate. Rate lock expires in 30 seconds \u2014 use this for display only.",
        "operationId": "estimate_v2_v2_estimate_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EstimateRequestV2"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EstimateResponseV2"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKeyHeader": []
          }
        ]
      }
    },
    "/v2/payment-methods": {
      "get": {
        "tags": [
          "v2-settlements"
        ],
        "summary": "List payment input adapter capabilities",
        "description": "Returns code implementation state separately from value-movement admission. This response does not attest provider or rail readiness.",
        "operationId": "list_methods_v2_v2_payment_methods_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Response List Methods V2 V2 Payment Methods Get"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKeyHeader": []
          }
        ]
      }
    },
    "/v2/webhooks/stripe": {
      "post": {
        "tags": [
          "webhooks-inbound"
        ],
        "summary": "Stripe Webhook",
        "description": "Handle inbound Stripe webhook events.\n\nVerifies the Stripe-Signature header, then synchronously validates and\ncommits supported durable input evidence before returning 200. Remote\ndispute events return 503 until durable dispute accounting exists so Stripe\nwill retry instead of treating volatile state as accepted.",
        "operationId": "stripe_webhook_v2_webhooks_stripe_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/v2/webhooks/modern-treasury": {
      "post": {
        "tags": [
          "webhooks-inbound"
        ],
        "summary": "Modern Treasury Webhook",
        "description": "Handle inbound Modern Treasury webhook events.\n\nVerifies X-Signature HMAC-SHA256 and applies Expected Payment evidence.",
        "operationId": "modern_treasury_webhook_v2_webhooks_modern_treasury_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/v2/plaid/link-token": {
      "post": {
        "tags": [
          "plaid"
        ],
        "summary": "Create Plaid Link Token",
        "description": "Create a local-sandbox Plaid Link simulation token.\n\nRemote environments return 502 until Plaid evidence is converted into the\nexact Stripe PaymentMethod authority required by the ACH adapter.",
        "operationId": "create_plaid_link_token_v2_plaid_link_token_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LinkTokenRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LinkTokenResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKeyHeader": []
          }
        ]
      }
    },
    "/v2/plaid/exchange": {
      "post": {
        "tags": [
          "plaid"
        ],
        "summary": "Exchange Plaid Token",
        "description": "Exchange a local simulated public token for an encrypted test token.\n\nCalled after the user completes Plaid Link. The encrypted access_token\nis returned to the caller for storage in their org profile. It must be\npassed as `plaid_account_token` in subsequent ACH settlement requests.\n\nThis response is simulation evidence and never authorizes remote ACH value.",
        "operationId": "exchange_plaid_token_v2_plaid_exchange_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExchangeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExchangeResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKeyHeader": []
          }
        ]
      }
    },
    "/consumer/auth/request-otp": {
      "post": {
        "tags": [
          "consumer-bff"
        ],
        "summary": "Request Otp Endpoint",
        "operationId": "request_otp_endpoint_consumer_auth_request_otp_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RequestOTPBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/consumer/auth/verify-otp": {
      "post": {
        "tags": [
          "consumer-bff"
        ],
        "summary": "Verify Otp Endpoint",
        "operationId": "verify_otp_endpoint_consumer_auth_verify_otp_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyOTPBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/consumer/me": {
      "get": {
        "tags": [
          "consumer-bff"
        ],
        "summary": "Me",
        "operationId": "me_consumer_me_get",
        "parameters": [
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 256
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MeResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/consumer/recipients": {
      "get": {
        "tags": [
          "consumer-bff"
        ],
        "summary": "List Recipients",
        "operationId": "list_recipients_consumer_recipients_get",
        "parameters": [
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 256
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/app__api__consumer__routes__RecipientResponse"
                  },
                  "title": "Response List Recipients Consumer Recipients Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "consumer-bff"
        ],
        "summary": "Add Recipient",
        "operationId": "add_recipient_consumer_recipients_post",
        "parameters": [
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 256
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecipientBody"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app__api__consumer__routes__RecipientResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/consumer/quote": {
      "post": {
        "tags": [
          "consumer-bff"
        ],
        "summary": "Quote",
        "operationId": "quote_consumer_quote_post",
        "parameters": [
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 256
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuoteBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuoteResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/consumer/transfers": {
      "post": {
        "tags": [
          "consumer-bff"
        ],
        "summary": "Create Transfer",
        "operationId": "create_transfer_consumer_transfers_post",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 16,
              "maxLength": 128,
              "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]+$",
              "title": "Idempotency-Key"
            }
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 256
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TransferBody"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransferResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "consumer-bff"
        ],
        "summary": "List Transfers",
        "operationId": "list_transfers_consumer_transfers_get",
        "parameters": [
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 256
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TransferResponse"
                  },
                  "title": "Response List Transfers Consumer Transfers Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/consumer/transfers/{transfer_id}": {
      "get": {
        "tags": [
          "consumer-bff"
        ],
        "summary": "Get Transfer",
        "operationId": "get_transfer_consumer_transfers__transfer_id__get",
        "parameters": [
          {
            "name": "transfer_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Transfer Id"
            }
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 256
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransferResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/orgs": {
      "post": {
        "tags": [
          "organizations"
        ],
        "summary": "Create Organization",
        "description": "Create a new organization and get your first API key.\n\nThis is the onboarding entry point \u2014 no auth required.\nThe response includes a raw API key that is shown ONCE.",
        "operationId": "create_organization_v1_orgs_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateOrganizationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/orgs/{org_id}": {
      "get": {
        "tags": [
          "organizations"
        ],
        "summary": "Get Organization",
        "operationId": "get_organization_v1_orgs__org_id__get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "org_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Org Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/orgs/{org_id}/keys": {
      "post": {
        "tags": [
          "organizations"
        ],
        "summary": "Create Api Key",
        "description": "Generate a new API key for your org.",
        "operationId": "create_api_key_v1_orgs__org_id__keys_post",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "org_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Org Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateApiKeyRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "organizations"
        ],
        "summary": "List Api Keys",
        "operationId": "list_api_keys_v1_orgs__org_id__keys_get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "org_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Org Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/orgs/keys/{key_id}/rotate": {
      "post": {
        "tags": [
          "organizations"
        ],
        "summary": "Rotate Api Key",
        "description": "Rotate an API key \u2014 old key immediately invalid, new key returned.",
        "operationId": "rotate_api_key_v1_orgs_keys__key_id__rotate_post",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "key_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Key Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/orgs/keys/{key_id}": {
      "delete": {
        "tags": [
          "organizations"
        ],
        "summary": "Revoke Api Key",
        "description": "Permanently revoke an API key.",
        "operationId": "revoke_api_key_v1_orgs_keys__key_id__delete",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "key_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Key Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/recipients": {
      "post": {
        "tags": [
          "recipients"
        ],
        "summary": "Create Recipient",
        "description": "Register a new recipient (vendor/contractor) for payments.",
        "operationId": "create_recipient_v1_recipients_post",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRecipientRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app__schemas__recipient__RecipientResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "recipients"
        ],
        "summary": "List Recipients",
        "description": "List all recipients for the authenticated organization.",
        "operationId": "list_recipients_v1_recipients_get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 100,
              "minimum": 1,
              "default": 50,
              "title": "Limit"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 1000000,
              "minimum": 0,
              "default": 0,
              "title": "Offset"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/app__schemas__recipient__RecipientResponse"
                  },
                  "title": "Response List Recipients V1 Recipients Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/recipients/{recipient_id}": {
      "get": {
        "tags": [
          "recipients"
        ],
        "summary": "Get Recipient",
        "description": "Get a single recipient owned by the authenticated organization.",
        "operationId": "get_recipient_v1_recipients__recipient_id__get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "recipient_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Recipient Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app__schemas__recipient__RecipientResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "recipients"
        ],
        "summary": "Update Recipient",
        "description": "Update mutable fields on a recipient (name, bank, mobile details).\n\nOnly fields present in the request body are changed.",
        "operationId": "update_recipient_v1_recipients__recipient_id__put",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "recipient_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Recipient Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateRecipientRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app__schemas__recipient__RecipientResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "recipients"
        ],
        "summary": "Deactivate Recipient",
        "description": "Soft-delete a recipient by deactivating it.\n\nThe record is retained for audit and historical settlement integrity;\nits is_active flag is set to False.",
        "operationId": "deactivate_recipient_v1_recipients__recipient_id__delete",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "recipient_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Recipient Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app__schemas__recipient__RecipientResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/kyc/verify": {
      "post": {
        "tags": [
          "KYC/KYB"
        ],
        "summary": "Start Verification",
        "description": "Initiate KYC/KYB verification for a recipient.\n\nBody: {recipient_id, org_id, verification_type?, document_type?, document_country?}\n\nThis manual mock exists only in the local sandbox. Remote runtimes return\n503 and must use the Sumsub applicant endpoint.",
        "operationId": "start_verification_v1_kyc_verify_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StartVerificationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKeyHeader": []
          }
        ]
      }
    },
    "/v1/kyc/{verification_id}/complete": {
      "post": {
        "tags": [
          "KYC/KYB"
        ],
        "summary": "Complete Verification Endpoint",
        "description": "Complete a verification (approve or reject).\n\nThis manual decision hook exists only in the local sandbox. Remote provider\ndecisions are accepted exclusively through the signed Sumsub webhook.\n\nBody: {status: \"verified\"|\"rejected\", verified_name?, rejection_reason?}",
        "operationId": "complete_verification_endpoint_v1_kyc__verification_id__complete_post",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "verification_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Verification Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CompleteVerificationRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/kyc/status/{recipient_id}": {
      "get": {
        "tags": [
          "KYC/KYB"
        ],
        "summary": "Check Verification",
        "description": "Check the KYC/KYB verification status of a recipient.",
        "operationId": "check_verification_v1_kyc_status__recipient_id__get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "recipient_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Recipient Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/kyc/sumsub/applicant": {
      "post": {
        "tags": [
          "KYC/KYB"
        ],
        "summary": "Create Sumsub Applicant",
        "description": "Create a Sumsub applicant and initiate KYC verification.\n\nCaller-supplied email, phone, and country fields are retained only for API\ncompatibility and are not provider identity authority. The locked recipient\nprofile supplies contact data. This integration does not fetch or reconcile\nprovider-confirmed legal-name or document-country attributes.\n\nReturns the Sumsub applicant ID and an SDK access token for the\nfrontend to render the verification widget.",
        "operationId": "create_sumsub_applicant_v1_kyc_sumsub_applicant_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSumsubApplicantRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKeyHeader": []
          }
        ]
      }
    },
    "/v1/wallets": {
      "post": {
        "tags": [
          "wallets"
        ],
        "summary": "Create Wallet",
        "description": "Create local-only simulated multisig wallet metadata.\n\nRemote runtimes fail closed because hashing signer addresses neither deploys\na Safe nor creates MPC key shares.",
        "operationId": "create_wallet_v1_wallets_post",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateWalletRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WalletResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "wallets"
        ],
        "summary": "List Wallets",
        "description": "List all Safe-Wallets for the authenticated organization.",
        "operationId": "list_wallets_v1_wallets_get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 100,
              "minimum": 1,
              "default": 50,
              "title": "Limit"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 1000000,
              "minimum": 0,
              "default": 0,
              "title": "Offset"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WalletResponse"
                  },
                  "title": "Response List Wallets V1 Wallets Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/wallets/{wallet_id}": {
      "get": {
        "tags": [
          "wallets"
        ],
        "summary": "Get Wallet",
        "description": "Get a single Safe-Wallet owned by the authenticated organization.",
        "operationId": "get_wallet_v1_wallets__wallet_id__get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "wallet_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Wallet Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WalletResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/fees/estimate": {
      "post": {
        "tags": [
          "fees"
        ],
        "summary": "Simulate fees using local static fixtures",
        "description": "Local-sandbox-only static simulation. Remote runtimes return 503. The response is non-executable and is not an FX quote or authorization.",
        "operationId": "get_fee_estimate_v1_fees_estimate_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FeeEstimateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FeeEstimateResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKeyHeader": []
          }
        ]
      }
    },
    "/v1/caribbean/estimate": {
      "post": {
        "tags": [
          "caribbean-offramp"
        ],
        "summary": "Estimate Caribbean Offramp",
        "description": "Get a non-executable local-sandbox estimate.\n\nStatic fixture rates must never be presented as a remote executable quote.",
        "operationId": "estimate_caribbean_offramp_v1_caribbean_estimate_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OfframpEstimateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OfframpEstimateResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKeyHeader": []
          }
        ]
      }
    },
    "/v1/caribbean/settle": {
      "post": {
        "tags": [
          "caribbean-offramp"
        ],
        "summary": "Settle Caribbean Offramp",
        "description": "Simulate a Caribbean USDC offramp in the local sandbox.\n\nThis legacy admission route is fail-closed outside the local sandbox and\ndoes not currently execute JamClear, Safe-tt, ECCB, blockchain, or bank-rail\nvalue movement. Production callers must use the durable v2 settlement flow\nafter its recipient-bound compliance and provider gates are enabled.",
        "operationId": "settle_caribbean_offramp_v1_caribbean_settle_post",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 16,
                  "maxLength": 128,
                  "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]+$"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Unique key to prevent duplicate settlements",
              "title": "Idempotency-Key"
            },
            "description": "Unique key to prevent duplicate settlements"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CaribbeanOfframpRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CaribbeanOfframpResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/caribbean/certificate/{cert_id}": {
      "get": {
        "tags": [
          "caribbean-offramp"
        ],
        "summary": "Download Certificate",
        "description": "Stream the exact immutable certificate owned by the caller.",
        "operationId": "download_certificate_v1_caribbean_certificate__cert_id__get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "cert_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 37,
              "maxLength": 37,
              "pattern": "^CERT-[0-9A-F]{32}$",
              "title": "Cert Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/caribbean/certificate/{cert_id}/verify": {
      "get": {
        "tags": [
          "caribbean-offramp"
        ],
        "summary": "Verify Certificate Endpoint",
        "description": "Verify one persisted owner-bound certificate and its stored anchor.",
        "operationId": "verify_certificate_endpoint_v1_caribbean_certificate__cert_id__verify_get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "cert_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 37,
              "maxLength": 37,
              "pattern": "^CERT-[0-9A-F]{32}$",
              "title": "Cert Id"
            }
          },
          {
            "name": "settlement_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64,
              "title": "Settlement Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/caribbean/corridors": {
      "get": {
        "tags": [
          "caribbean-offramp"
        ],
        "summary": "List Supported Corridors",
        "description": "List corridor implementation posture without asserting live readiness.",
        "operationId": "list_supported_corridors_v1_caribbean_corridors_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "APIKeyHeader": []
          }
        ]
      }
    },
    "/v1/caribbean/settlements": {
      "get": {
        "tags": [
          "caribbean-offramp"
        ],
        "summary": "List Settlements",
        "description": "List settlements for the authenticated organization, newest first.\n\nPaginated via ``limit`` and ``offset`` query parameters. Only settlements\nowned by the API key's organization are returned.",
        "operationId": "list_settlements_v1_caribbean_settlements_get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 100,
              "minimum": 1,
              "default": 50,
              "title": "Limit"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 1000000,
              "minimum": 0,
              "default": 0,
              "title": "Offset"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SettlementResponse"
                  },
                  "title": "Response List Settlements V1 Caribbean Settlements Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/caribbean/settlements/{settlement_id}": {
      "get": {
        "tags": [
          "caribbean-offramp"
        ],
        "summary": "Get Settlement",
        "description": "Fetch a single settlement by its business key, org-scoped.",
        "operationId": "get_settlement_v1_caribbean_settlements__settlement_id__get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "settlement_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64,
              "title": "Settlement Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SettlementResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/transfers": {
      "post": {
        "tags": [
          "transfers"
        ],
        "summary": "Initiate Transfer",
        "description": "Reject the removed direct treasury-transfer execution path.",
        "operationId": "initiate_transfer_v1_transfers_post",
        "deprecated": true,
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 16,
                  "maxLength": 128,
                  "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]+$"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Idempotency-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TransferRequest"
              }
            }
          }
        },
        "responses": {
          "410": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "transfers"
        ],
        "summary": "List Transfers",
        "description": "List transfers for the authenticated organization, newest first.",
        "operationId": "list_transfers_v1_transfers_get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 200,
              "minimum": 1,
              "default": 50,
              "title": "Limit"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0,
              "title": "Offset"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LedgerEntryResponse"
                  },
                  "title": "Response List Transfers V1 Transfers Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/transfers/{transfer_id}": {
      "get": {
        "tags": [
          "transfers"
        ],
        "summary": "Get Transfer",
        "description": "Fetch one organization-scoped transfer shadow-ledger entry.",
        "operationId": "get_transfer_v1_transfers__transfer_id__get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "transfer_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Transfer Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LedgerEntryResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/approvals": {
      "post": {
        "tags": [
          "approvals"
        ],
        "summary": "Create Approval",
        "description": "Create an inactive approval record.\n\nCreating a record does not create a transfer.  No public vote endpoint or\nbound execution consumer exists, so M-of-N status cannot trigger execution.",
        "operationId": "create_approval_v1_approvals_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateApprovalRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApprovalCreateResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKeyHeader": []
          }
        ]
      }
    },
    "/v1/approvals/pending/{org_id}": {
      "get": {
        "tags": [
          "approvals"
        ],
        "summary": "List Pending Approvals",
        "description": "List pending approval records; these are not queued transfers.",
        "operationId": "list_pending_approvals_v1_approvals_pending__org_id__get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "org_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Org Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PendingApprovalResponse"
                  },
                  "title": "Response List Pending Approvals V1 Approvals Pending  Org Id  Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/approvals/{request_id}/votes": {
      "get": {
        "tags": [
          "approvals"
        ],
        "summary": "List Votes",
        "description": "List all votes for an approval request (audit trail).",
        "operationId": "list_votes_v1_approvals__request_id__votes_get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "request_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Request Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ApprovalVoteResponse"
                  },
                  "title": "Response List Votes V1 Approvals  Request Id  Votes Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/batch/payroll": {
      "post": {
        "tags": [
          "batch payroll"
        ],
        "summary": "Run Batch Payroll",
        "description": "Reject the removed direct batch token-transfer execution path.",
        "operationId": "run_batch_payroll_v1_batch_payroll_post",
        "deprecated": true,
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 16,
                  "maxLength": 128,
                  "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]+$"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Idempotency-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchPayrollRequest"
              }
            }
          }
        },
        "responses": {
          "410": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/batch": {
      "get": {
        "tags": [
          "batch payroll"
        ],
        "summary": "List Batches",
        "description": "List organization-scoped batch payroll records, newest first.",
        "operationId": "list_batches_v1_batch_get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 200,
              "minimum": 1,
              "default": 50,
              "title": "Limit"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0,
              "title": "Offset"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BatchRunResponse"
                  },
                  "title": "Response List Batches V1 Batch Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/batch/{batch_id}": {
      "get": {
        "tags": [
          "batch payroll"
        ],
        "summary": "Get Batch",
        "description": "Fetch one organization-scoped batch payroll record.",
        "operationId": "get_batch_v1_batch__batch_id__get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "batch_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Batch Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchRunResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/schedules": {
      "post": {
        "tags": [
          "payroll schedules"
        ],
        "summary": "Create Payroll Schedule",
        "description": "Create an inactive payroll schedule draft.\n\nBody:\n```json\n{\n  \"org_id\": \"org-001\",\n  \"name\": \"LATAM Biweekly Payroll\",\n  \"frequency\": \"biweekly\",\n  \"day_value\": 4,\n  \"payment_template\": [\n    {\"recipient_id\": \"rec-001\", \"amount_usdc\": 2400.0, \"memo\": \"Salary\"},\n    {\"recipient_id\": \"rec-002\", \"amount_usdc\": 1800.0, \"memo\": \"Salary\"}\n  ]\n}\n```\n\nFrequencies: weekly, biweekly, monthly, custom.\nday_value: For monthly = day of month (1-28). For weekly/biweekly = day of week (0=Mon, 4=Fri).",
        "operationId": "create_payroll_schedule_v1_schedules_post",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePayrollScheduleRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "payroll schedules"
        ],
        "summary": "Get Schedules",
        "description": "List all payroll schedules for an organization.",
        "operationId": "get_schedules_v1_schedules_get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "org_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Org Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/schedules/{schedule_id}/pause": {
      "patch": {
        "tags": [
          "payroll schedules"
        ],
        "summary": "Pause Schedule",
        "description": "Pause a recurring payroll schedule.",
        "operationId": "pause_schedule_v1_schedules__schedule_id__pause_patch",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "schedule_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Schedule Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/schedules/{schedule_id}/resume": {
      "patch": {
        "tags": [
          "payroll schedules"
        ],
        "summary": "Resume Schedule",
        "description": "Fail closed because no durable schedule execution workflow exists.",
        "operationId": "resume_schedule_v1_schedules__schedule_id__resume_patch",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "schedule_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Schedule Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/schedules/{schedule_id}": {
      "get": {
        "tags": [
          "payroll schedules"
        ],
        "summary": "Get Schedule",
        "description": "Fetch a single payroll schedule by id, scoped to the caller's org.",
        "operationId": "get_schedule_v1_schedules__schedule_id__get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "schedule_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Schedule Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayrollScheduleResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "payroll schedules"
        ],
        "summary": "Update Schedule",
        "description": "Update mutable fields of a payroll schedule.\n\nAll body fields are optional \u2014 only the fields provided are applied:\n- name: schedule label\n- frequency: weekly, biweekly, monthly, custom\n- day_value: day of month (1-28) or day of week (0=Mon, 4=Fri)\n- payment_template: list of {recipient_id, amount_usdc, memo}\n- is_active: false to pause, true to resume\n\nChanging frequency or day_value recomputes next_run_at for active schedules.",
        "operationId": "update_schedule_v1_schedules__schedule_id__put",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "schedule_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Schedule Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePayrollScheduleRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayrollScheduleResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "payroll schedules"
        ],
        "summary": "Delete Schedule",
        "description": "Soft-delete (deactivate) a payroll schedule.\n\nThe schedule is not removed \u2014 its `is_active` flag is set to False and its\nnext run is cleared so the scheduler never picks it up again. History is\nretained for audit purposes.",
        "operationId": "delete_schedule_v1_schedules__schedule_id__delete",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "schedule_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Schedule Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayrollScheduleResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/compliance/{wallet_address}": {
      "get": {
        "tags": [
          "compliance"
        ],
        "summary": "Screen wallet sanctions and token address-list eligibility",
        "description": "Return an operational admission decision for a wallet address.\n\nRuns:\n- OFAC sanctions list lookup\n- the configured stablecoin contract's ``isBlacklisted`` address-list check\n- deterministic risk signaling from those verified screening outcomes\n\n``isBlacklisted`` is an issuer-controlled token-transfer eligibility signal.\nIt is not a wallet registry and this endpoint does not determine GENIUS Act\nstatus, licensing, registration, or legal compliance. The deprecated\n``genius_act_registered`` response field is retained only for compatibility.\nLocal sandbox responses use ``simulation_only``, set that deprecated field\nto null, and cannot authorize real value movement.",
        "operationId": "get_compliance_status_v1_compliance__wallet_address__get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "wallet_address",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 42,
              "maxLength": 42,
              "pattern": "^0x[0-9a-fA-F]{40}$",
              "title": "Wallet Address"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComplianceCheckResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/ofac/ingest": {
      "post": {
        "tags": [
          "OFAC SDN"
        ],
        "summary": "Ingest Sdn List",
        "description": "Download and ingest the latest OFAC SDN list from US Treasury.\n\nThis endpoint should be called by a daily cron job in production.\nParses the official CSV and upserts ~20,000+ entries into PostgreSQL.",
        "operationId": "ingest_sdn_list_v1_ofac_ingest_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "APIKeyHeader": []
          }
        ]
      }
    },
    "/v1/ofac/stats": {
      "get": {
        "tags": [
          "OFAC SDN"
        ],
        "summary": "Sdn Stats",
        "description": "Return stats about the loaded OFAC SDN database.",
        "operationId": "sdn_stats_v1_ofac_stats_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "APIKeyHeader": []
          }
        ]
      }
    },
    "/v1/ofac/screen/name": {
      "get": {
        "tags": [
          "OFAC SDN"
        ],
        "summary": "Screen Name",
        "description": "Screen an entity name against the OFAC SDN list.\n\nReturns matching entries with similarity scores.\nUses normalized fuzzy matching with configurable threshold. Returns 409 for\nbounded-matcher cases that require manual review; indeterminate screening is\nnever represented as a clear result.",
        "operationId": "screen_name_v1_ofac_screen_name_get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 2,
              "maxLength": 256,
              "title": "Name"
            }
          },
          {
            "name": "threshold",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number",
              "maximum": 1.0,
              "minimum": 0.5,
              "default": 0.7,
              "title": "Threshold"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/ofac/screen/wallet/{wallet_address}": {
      "get": {
        "tags": [
          "OFAC SDN"
        ],
        "summary": "Deep Screen Wallet",
        "description": "Screen a wallet and optional entity against the active OFAC dataset.\n\nChecks wallet address against SDN crypto addresses and optionally\nscreens an entity name with the bounded fuzzy matcher. Indeterminate,\nstale, or unavailable evidence never produces a clear decision. This is an\noperational screening result, not a legal compliance determination.",
        "operationId": "deep_screen_wallet_v1_ofac_screen_wallet__wallet_address__get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "wallet_address",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 42,
              "maxLength": 42,
              "pattern": "^0x[0-9a-fA-F]{40}$",
              "title": "Wallet Address"
            }
          },
          {
            "name": "entity_name",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                },
                {
                  "type": "null"
                }
              ],
              "title": "Entity Name"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/kill-switch/freeze": {
      "post": {
        "tags": [
          "kill-switch"
        ],
        "summary": "Freeze Wallet",
        "description": "Freeze a wallet \u2014 all transfers to/from this address are blocked.",
        "operationId": "freeze_wallet_v1_kill_switch_freeze_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FreezeWalletRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKeyHeader": []
          }
        ]
      }
    },
    "/v1/kill-switch/unfreeze/{freeze_id}": {
      "post": {
        "tags": [
          "kill-switch"
        ],
        "summary": "Lift Freeze",
        "description": "Lift a wallet freeze \u2014 requires compliance officer authorization.",
        "operationId": "lift_freeze_v1_kill_switch_unfreeze__freeze_id__post",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "freeze_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Freeze Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LiftFreezeRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/kill-switch/check/{wallet_address}": {
      "get": {
        "tags": [
          "kill-switch"
        ],
        "summary": "Check Wallet",
        "description": "Check if a wallet is frozen.",
        "operationId": "check_wallet_v1_kill_switch_check__wallet_address__get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "wallet_address",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 42,
              "maxLength": 42,
              "pattern": "^0x[0-9a-fA-F]{40}$",
              "title": "Wallet Address"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/kill-switch/freezes": {
      "get": {
        "tags": [
          "kill-switch"
        ],
        "summary": "List Freezes",
        "description": "List all active wallet freezes.",
        "operationId": "list_freezes_v1_kill_switch_freezes_get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "wallet_address",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 42,
                  "maxLength": 42,
                  "pattern": "^0x[0-9a-fA-F]{40}$"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Wallet Address"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/kill-switch/pause": {
      "post": {
        "tags": [
          "kill-switch"
        ],
        "summary": "Activate Global Pause",
        "description": "EMERGENCY: Halt ALL transfers system-wide.",
        "operationId": "activate_global_pause_v1_kill_switch_pause_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GlobalPauseRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKeyHeader": []
          }
        ]
      }
    },
    "/v1/kill-switch/resume/{pause_id}": {
      "post": {
        "tags": [
          "kill-switch"
        ],
        "summary": "Deactivate Global Pause",
        "description": "Resume transfers after an emergency pause.",
        "operationId": "deactivate_global_pause_v1_kill_switch_resume__pause_id__post",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "pause_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Pause Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeactivatePauseRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/kill-switch/status": {
      "get": {
        "tags": [
          "kill-switch"
        ],
        "summary": "System Status",
        "description": "Get overall kill switch status \u2014 is the system paused?",
        "operationId": "system_status_v1_kill_switch_status_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "APIKeyHeader": []
          }
        ]
      }
    },
    "/v1/accounting/connect": {
      "post": {
        "tags": [
          "local sandbox accounting simulation"
        ],
        "summary": "Connect Accounting",
        "description": "Create a development-only simulated accounting connection.\n\nBody: {org_id, provider, access_token, refresh_token, realm_id?}",
        "operationId": "connect_accounting_v1_accounting_connect_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConnectAccountingRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKeyHeader": []
          }
        ]
      }
    },
    "/v1/accounting/connection/{org_id}": {
      "get": {
        "tags": [
          "local sandbox accounting simulation"
        ],
        "summary": "Get Accounting Connection",
        "description": "Check for a local simulated accounting connection.",
        "operationId": "get_accounting_connection_v1_accounting_connection__org_id__get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "org_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Org Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/accounting/invoices/sync": {
      "post": {
        "tags": [
          "local sandbox accounting simulation"
        ],
        "summary": "Sync Invoices Endpoint",
        "description": "Insert development-only simulated provider invoices.\n\nBody: {org_id, invoices: [{external_id, vendor_name, amount_usd, due_date?}]}",
        "operationId": "sync_invoices_endpoint_v1_accounting_invoices_sync_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SyncInvoicesRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKeyHeader": []
          }
        ]
      }
    },
    "/v1/accounting/reconcile/{org_id}": {
      "post": {
        "tags": [
          "local sandbox accounting simulation"
        ],
        "summary": "Reconcile Endpoint",
        "description": "Reconcile simulated invoices against local shadow-ledger entries.",
        "operationId": "reconcile_endpoint_v1_accounting_reconcile__org_id__post",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "org_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Org Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/accounting/reconciliation/{org_id}": {
      "get": {
        "tags": [
          "local sandbox accounting simulation"
        ],
        "summary": "Reconciliation Status",
        "description": "Get a summary for the local accounting simulation.",
        "operationId": "reconciliation_status_v1_accounting_reconciliation__org_id__get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "org_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Org Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/proofs/generate": {
      "post": {
        "tags": [
          "local sandbox audit commitments"
        ],
        "summary": "Generate Commitment",
        "description": "Generate an unaudited local Merkle commitment for a period.\n\nBody: {org_id, period}\nPeriod format: \"2026-Q1\" (quarterly) or \"2026-02\" (monthly)\n\nThis provides no privacy, attestation, or independent verification. It is\nonly a development checksum over local database rows.",
        "operationId": "generate_commitment_v1_proofs_generate_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GenerateCommitmentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GeneratedAuditCommitmentResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKeyHeader": []
          }
        ]
      }
    },
    "/v1/proofs/verify/{proof_id}": {
      "get": {
        "tags": [
          "local sandbox audit commitments"
        ],
        "summary": "Check Commitment",
        "description": "Check internal consistency of a local unaudited commitment.",
        "operationId": "check_commitment_v1_proofs_verify__proof_id__get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "proof_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Proof Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuditCommitmentCheckResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/proofs/{org_id}": {
      "get": {
        "tags": [
          "local sandbox audit commitments"
        ],
        "summary": "List Org Commitments",
        "description": "List local unaudited commitments for the authenticated organization.",
        "operationId": "list_org_commitments_v1_proofs__org_id__get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "org_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Org Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AuditCommitmentListItem"
                  },
                  "title": "Response List Org Commitments V1 Proofs  Org Id  Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/billing/usage/{org_id}": {
      "get": {
        "tags": [
          "billing"
        ],
        "summary": "Get Usage",
        "description": "Get usage metrics for a billing period (defaults to current month).",
        "operationId": "get_usage_v1_billing_usage__org_id__get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "org_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Org Id"
            }
          },
          {
            "name": "period",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 7,
                  "maxLength": 7,
                  "pattern": "^[0-9]{4}-(?:0[1-9]|1[0-2])$"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Period"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BillingUsageResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/billing/invoices/generate": {
      "post": {
        "tags": [
          "billing"
        ],
        "summary": "Generate Invoice",
        "description": "Generate one draft snapshot for a closed monthly billing period.",
        "operationId": "generate_invoice_v1_billing_invoices_generate_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GenerateInvoiceRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BillingInvoiceResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKeyHeader": []
          }
        ]
      }
    },
    "/v1/billing/invoices/{invoice_id}/issue": {
      "post": {
        "tags": [
          "billing"
        ],
        "summary": "Issue Invoice",
        "description": "Finalize a draft invoice for retrieval; this does not attest delivery.",
        "operationId": "issue_invoice_v1_billing_invoices__invoice_id__issue_post",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "invoice_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Invoice Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BillingInvoiceStatusResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/billing/invoices/{invoice_id}/paid": {
      "post": {
        "tags": [
          "billing"
        ],
        "summary": "Mark Paid",
        "description": "Unavailable until verified provider evidence proves invoice payment.",
        "operationId": "mark_paid_v1_billing_invoices__invoice_id__paid_post",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "invoice_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Invoice Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BillingInvoiceStatusResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/billing/invoices/{org_id}": {
      "get": {
        "tags": [
          "billing"
        ],
        "summary": "List Invoices",
        "description": "List one bounded page of invoices for an org.",
        "operationId": "list_invoices_v1_billing_invoices__org_id__get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "org_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Org Id"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 100,
              "minimum": 1,
              "default": 50,
              "title": "Limit"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 10000,
              "minimum": 0,
              "default": 0,
              "title": "Offset"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BillingInvoiceListItemResponse"
                  },
                  "title": "Response List Invoices V1 Billing Invoices  Org Id  Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/dashboard/{org_id}/summary": {
      "get": {
        "tags": [
          "dashboard"
        ],
        "summary": "Org Summary",
        "description": "Dashboard home screen \u2014 key metrics at a glance.\n\nReturns: total transactions, volume, blocked count, recipient count,\npending commercial invoice credits. Monetary aggregates are exact decimal\nstrings, not binary floating-point values.",
        "operationId": "org_summary_v1_dashboard__org_id__summary_get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "org_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Org Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/dashboard/{org_id}/compliance-report": {
      "get": {
        "tags": [
          "dashboard"
        ],
        "summary": "Compliance Report",
        "description": "Operational screening-evidence report for compliance review.\n\nThe reported rate covers only confirmed rows with certificate evidence and\nblocked rows. Unresolved lifecycle states are disclosed separately and are\nnever counted as compliant. Blocked transaction amounts are canonical\nsix-decimal strings. This is not an audit or legal attestation.",
        "operationId": "compliance_report_v1_dashboard__org_id__compliance_report_get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "org_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Org Id"
            }
          },
          {
            "name": "period",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 7,
                  "maxLength": 7,
                  "pattern": "^[0-9]{4}-(?:0[1-9]|1[0-2])$"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter by month (YYYY-MM)",
              "title": "Period"
            },
            "description": "Filter by month (YYYY-MM)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/dashboard/{org_id}/volume-by-country": {
      "get": {
        "tags": [
          "dashboard"
        ],
        "summary": "Volume By Country",
        "description": "Payment volume broken down by recipient country.\n\nShows which corridors have the most volume \u2014 useful for\ncorridor-specific fee optimization and compliance prioritization. Monetary\nvolume is returned as canonical six-decimal text.",
        "operationId": "volume_by_country_v1_dashboard__org_id__volume_by_country_get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "org_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Org Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/dashboard/{org_id}/rebates": {
      "get": {
        "tags": [
          "dashboard"
        ],
        "summary": "Rebate History",
        "description": "Monthly commercial invoice-credit history.\n\nExact decimal strings disclose the accrued volume, configured rate,\ncalculated credit, and whether that credit is pending or was atomically\napplied to the matching invoice. This is not payout or payment evidence.",
        "operationId": "rebate_history_v1_dashboard__org_id__rebates_get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "org_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Org Id"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 36,
              "minimum": 1,
              "default": 12,
              "title": "Limit"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/ledger/entry/{entry_id}": {
      "get": {
        "tags": [
          "ledger"
        ],
        "summary": "Get Transfer Status",
        "description": "Get the status of a single transfer by ledger entry ID.",
        "operationId": "get_transfer_status_v1_ledger_entry__entry_id__get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "entry_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Entry Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LedgerEntryResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/ledger/{org_id}": {
      "get": {
        "tags": [
          "ledger"
        ],
        "summary": "Get Org Ledger",
        "description": "Return recent Shadow Ledger entries for an organization.\n\nThis is an internal operational projection that maps provider and chain\nevidence to organization records. It is not a GAAP attestation, audited\nfinancial statement, or independent proof that value moved.",
        "operationId": "get_org_ledger_v1_ledger__org_id__get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "org_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Org Id"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 200,
              "minimum": 1,
              "default": 50,
              "title": "Limit"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LedgerEntryResponse"
                  },
                  "title": "Response Get Org Ledger V1 Ledger  Org Id  Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/audit-log/{org_id}": {
      "get": {
        "tags": [
          "audit-log"
        ],
        "summary": "Get Audit Log",
        "description": "Query the audit log for an organization.",
        "operationId": "get_audit_log_v1_audit_log__org_id__get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "org_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Org Id"
            }
          },
          {
            "name": "action",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 64
                },
                {
                  "type": "null"
                }
              ],
              "title": "Action"
            }
          },
          {
            "name": "resource_type",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 64
                },
                {
                  "type": "null"
                }
              ],
              "title": "Resource Type"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 500,
              "minimum": 1,
              "default": 100,
              "title": "Limit"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 1000000,
              "minimum": 0,
              "default": 0,
              "title": "Offset"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/audit-log/{org_id}/count": {
      "get": {
        "tags": [
          "audit-log"
        ],
        "summary": "Count Audit Entries",
        "description": "Count audit log entries for an org.",
        "operationId": "count_audit_entries_v1_audit_log__org_id__count_get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "org_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Org Id"
            }
          },
          {
            "name": "action",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 64
                },
                {
                  "type": "null"
                }
              ],
              "title": "Action"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/audit-log/{org_id}/integrity": {
      "get": {
        "tags": [
          "audit-log"
        ],
        "summary": "Verify Audit Integrity",
        "description": "Verify the internal audit-log hash chain.\n\nWalks the stored chain and verifies each link and digest. A mismatch is an\nintegrity failure requiring investigation; this check may support a reviewed\ncontrol program but is not a SOC 2 certification or tampering attribution.",
        "operationId": "verify_audit_integrity_v1_audit_log__org_id__integrity_get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "org_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Org Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/webhooks": {
      "get": {
        "tags": [
          "webhooks"
        ],
        "summary": "List Webhooks",
        "description": "List all webhook subscriptions for an organization.\n\nReturns both active and paused subscriptions.",
        "operationId": "list_webhooks_v1_webhooks_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/WebhookResponse"
                  },
                  "type": "array",
                  "title": "Response List Webhooks V1 Webhooks Get"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKeyHeader": []
          }
        ]
      },
      "post": {
        "tags": [
          "webhooks"
        ],
        "summary": "Register Webhook",
        "description": "Register a webhook URL to receive payment status notifications.\n\nEvents delivered:\n- settlement.created, settlement.completed, settlement.failed\n- transfer.submitted, transfer.confirmed, transfer.failed, transfer.blocked\n- offramp.initiated, offramp.completed\n- batch.completed\n- system.wallet_frozen, system.depeg_warning, system.service_resumed\n\nEach delivery includes an HMAC-SHA256 signature in the\nX-YembiPay-Signature header so you can verify authenticity.",
        "operationId": "register_webhook_v1_webhooks_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateWebhookRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookCreateResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKeyHeader": []
          }
        ]
      }
    },
    "/v1/webhooks/{webhook_id}": {
      "get": {
        "tags": [
          "webhooks"
        ],
        "summary": "Get Webhook",
        "description": "Get details of a specific webhook subscription.",
        "operationId": "get_webhook_v1_webhooks__webhook_id__get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "webhook_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Webhook Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "webhooks"
        ],
        "summary": "Update Webhook",
        "description": "Update a webhook subscription \u2014 pause, resume, or change URL.\n\nBody fields (all optional):\n- is_active: false to pause, true to resume\n- url: new endpoint URL",
        "operationId": "update_webhook_v1_webhooks__webhook_id__patch",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "webhook_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Webhook Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateWebhookRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "webhooks"
        ],
        "summary": "Delete Webhook",
        "description": "Delete a webhook subscription permanently.\n\nDelivery history is retained for audit purposes.",
        "operationId": "delete_webhook_v1_webhooks__webhook_id__delete",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "webhook_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Webhook Id"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/webhooks/{webhook_id}/deliveries": {
      "get": {
        "tags": [
          "webhooks"
        ],
        "summary": "List Deliveries",
        "description": "Get delivery history for a webhook subscription.\n\nReturns the most recent deliveries with status codes and timestamps.",
        "operationId": "list_deliveries_v1_webhooks__webhook_id__deliveries_get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "webhook_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Webhook Id"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 100,
              "minimum": 1,
              "default": 50,
              "title": "Limit"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/aml/check": {
      "post": {
        "tags": [
          "aml"
        ],
        "summary": "Run Aml Check",
        "description": "Preview current velocity capacity without consuming it or creating alerts.",
        "operationId": "run_aml_check_v1_aml_check_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AMLCheckRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AMLCheckResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKeyHeader": []
          }
        ]
      }
    },
    "/v1/aml/alerts/{org_id}": {
      "get": {
        "tags": [
          "aml"
        ],
        "summary": "List Alerts",
        "description": "List AML alerts for an organization.",
        "operationId": "list_alerts_v1_aml_alerts__org_id__get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "org_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Org Id"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 32
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 200,
              "minimum": 1,
              "default": 50,
              "title": "Limit"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/aml/alerts/{alert_id}/review": {
      "post": {
        "tags": [
          "aml"
        ],
        "summary": "Review Alert",
        "description": "Review and update an AML alert status.",
        "operationId": "review_alert_v1_aml_alerts__alert_id__review_post",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "alert_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Alert Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReviewAlertRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/aml/alerts/{alert_id}/reviews": {
      "get": {
        "tags": [
          "aml"
        ],
        "summary": "List Alert Review History",
        "description": "List digest-only, append-only AML review evidence for one owned alert.",
        "operationId": "list_alert_review_history_v1_aml_alerts__alert_id__reviews_get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "alert_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Alert Id"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 200,
              "minimum": 1,
              "default": 100,
              "title": "Limit"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/aml/sar": {
      "post": {
        "tags": [
          "aml"
        ],
        "summary": "Create Sar Filing",
        "description": "Create an internal Suspicious Activity Report (SAR) draft.",
        "operationId": "create_sar_filing_v1_aml_sar_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSARRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKeyHeader": []
          }
        ]
      }
    },
    "/v1/aml/sar/{sar_id}/submit": {
      "post": {
        "tags": [
          "aml"
        ],
        "summary": "Submit Sar Filing",
        "description": "Return 503 until authenticated FinCEN e-filing is integrated.",
        "operationId": "submit_sar_filing_v1_aml_sar__sar_id__submit_post",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "sar_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Sar Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/aml/sar/{org_id}": {
      "get": {
        "tags": [
          "aml"
        ],
        "summary": "List Sar Filings",
        "description": "List internal SAR drafts; this endpoint does not attest external filing.",
        "operationId": "list_sar_filings_v1_aml_sar__org_id__get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "org_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Org Id"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 200,
              "minimum": 1,
              "default": 50,
              "title": "Limit"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/aml/velocity-limits": {
      "post": {
        "tags": [
          "aml"
        ],
        "summary": "Set Velocity Limits",
        "description": "Set or update velocity limits for an org or recipient.",
        "operationId": "set_velocity_limits_v1_aml_velocity_limits_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetVelocityLimitRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VelocityLimitResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKeyHeader": []
          }
        ]
      }
    },
    "/v1/treasury/balance/{org_id}": {
      "get": {
        "tags": [
          "treasury"
        ],
        "summary": "Get Balance",
        "description": "Get treasury balance for an organization.",
        "operationId": "get_balance_v1_treasury_balance__org_id__get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "org_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,35}$",
              "title": "Org Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TreasuryBalanceResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/treasury/check-funds/{org_id}": {
      "get": {
        "tags": [
          "treasury"
        ],
        "summary": "Check Funds",
        "description": "Check if an org has sufficient funds for a transfer.",
        "operationId": "check_funds_v1_treasury_check_funds__org_id__get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "org_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,35}$",
              "title": "Org Id"
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": true,
            "schema": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "string"
                }
              ],
              "gt": 0,
              "le": "100000.000000",
              "max_digits": 12,
              "decimal_places": 6,
              "x-yembipay-max-input-characters": 64,
              "title": "Amount"
            }
          },
          {
            "name": "fee",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "string"
                }
              ],
              "ge": 0,
              "le": "100000.000000",
              "max_digits": 12,
              "decimal_places": 6,
              "x-yembipay-max-input-characters": 64,
              "default": "0",
              "title": "Fee"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TreasuryFundsCheckResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/treasury/transactions/{org_id}": {
      "get": {
        "tags": [
          "treasury"
        ],
        "summary": "List Transactions",
        "description": "Get treasury transaction history for an org.",
        "operationId": "list_transactions_v1_treasury_transactions__org_id__get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "org_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,35}$",
              "title": "Org Id"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 200,
              "minimum": 1,
              "default": 50,
              "title": "Limit"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TreasuryTransactionListResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/users/invite": {
      "post": {
        "tags": [
          "users"
        ],
        "summary": "Invite User",
        "description": "Invite a user to an organization.",
        "operationId": "invite_user_v1_users_invite_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InviteUserRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKeyHeader": []
          }
        ]
      }
    },
    "/v1/users/{org_id}": {
      "get": {
        "tags": [
          "users"
        ],
        "summary": "List Users",
        "description": "List all users for an organization.",
        "operationId": "list_users_v1_users__org_id__get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "org_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "Org Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/users/{user_id}/role": {
      "patch": {
        "tags": [
          "users"
        ],
        "summary": "Update Role",
        "description": "Update a user's role.",
        "operationId": "update_role_v1_users__user_id__role_patch",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "User Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateRoleRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/users/{user_id}": {
      "delete": {
        "tags": [
          "users"
        ],
        "summary": "Deactivate User",
        "description": "Deactivate a user.",
        "operationId": "deactivate_user_v1_users__user_id__delete",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 36,
              "title": "User Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/users/login": {
      "post": {
        "tags": [
          "users"
        ],
        "summary": "Login",
        "description": "Verify a local-development user inside the API-key tenant boundary.",
        "operationId": "login_v1_users_login_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKeyHeader": []
          }
        ]
      }
    },
    "/v1/users/check-permission": {
      "post": {
        "tags": [
          "users"
        ],
        "summary": "Check Permission",
        "description": "Check if a role has permission for an action.",
        "operationId": "check_permission_v1_users_check_permission_post",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "role",
            "in": "query",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/UserRole"
            }
          },
          {
            "name": "action",
            "in": "query",
            "required": true,
            "schema": {
              "enum": [
                "manage_org",
                "manage_users",
                "manage_keys",
                "manage_billing",
                "view_dashboard",
                "initiate_transfers",
                "manage_compliance",
                "view_ledger",
                "manage_aml",
                "manage_treasury"
              ],
              "type": "string",
              "title": "Action"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/portal/token": {
      "post": {
        "tags": [
          "recipient-portal"
        ],
        "summary": "Create Portal Token",
        "description": "Generate a portal access token for a recipient.",
        "operationId": "create_portal_token_v1_portal_token_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePortalTokenRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKeyHeader": []
          }
        ]
      }
    },
    "/v1/portal/me": {
      "get": {
        "tags": [
          "recipient-portal"
        ],
        "summary": "Portal Me",
        "description": "Get recipient info via portal token.",
        "operationId": "portal_me_v1_portal_me_get",
        "parameters": [
          {
            "name": "X-Portal-Token",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 52,
              "maxLength": 52,
              "pattern": "^rpt_[0-9a-f]{48}$",
              "title": "X-Portal-Token"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/portal/payments": {
      "get": {
        "tags": [
          "recipient-portal"
        ],
        "summary": "Portal Payments",
        "description": "Get payment history for a recipient via portal token.",
        "operationId": "portal_payments_v1_portal_payments_get",
        "parameters": [
          {
            "name": "X-Portal-Token",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 52,
              "maxLength": 52,
              "pattern": "^rpt_[0-9a-f]{48}$",
              "title": "X-Portal-Token"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PortalPaymentsResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/regulatory/report": {
      "get": {
        "tags": [
          "regulatory"
        ],
        "summary": "Regulatory Report",
        "description": "Generate a UTC calendar-to-date operational evidence snapshot.",
        "operationId": "regulatory_report_v1_regulatory_report_get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "period",
            "in": "query",
            "required": false,
            "schema": {
              "enum": [
                "daily",
                "weekly",
                "monthly"
              ],
              "type": "string",
              "description": "Report period: daily, weekly, monthly",
              "default": "monthly",
              "title": "Period"
            },
            "description": "Report period: daily, weekly, monthly"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/regulatory/volume-status": {
      "get": {
        "tags": [
          "regulatory"
        ],
        "summary": "Volume Status",
        "description": "Return conservative, durable admitted-volume evidence.",
        "operationId": "volume_status_v1_regulatory_volume_status_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "APIKeyHeader": []
          }
        ]
      }
    },
    "/v1/regulatory/client-assets": {
      "get": {
        "tags": [
          "regulatory"
        ],
        "summary": "Client Asset Segregation",
        "description": "Return custody evidence only when independently reconciled.",
        "operationId": "client_asset_segregation_v1_regulatory_client_assets_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "APIKeyHeader": []
          }
        ]
      }
    },
    "/v1/regulatory/client-assets/verify": {
      "get": {
        "tags": [
          "regulatory"
        ],
        "summary": "Verify Asset Segregation",
        "description": "Fail closed unless independent custody evidence can be reconciled.",
        "operationId": "verify_asset_segregation_v1_regulatory_client_assets_verify_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "APIKeyHeader": []
          }
        ]
      }
    },
    "/v1/regulatory/corridors/compliance": {
      "get": {
        "tags": [
          "regulatory"
        ],
        "summary": "Corridor Compliance Summary",
        "description": "Compliance rules summary for all Caribbean corridors.\n\nReturns jurisdiction-specific requirements for regulator review.",
        "operationId": "corridor_compliance_summary_v1_regulatory_corridors_compliance_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "APIKeyHeader": []
          }
        ]
      }
    },
    "/v1/task-quarantine": {
      "get": {
        "tags": [
          "task-quarantine"
        ],
        "summary": "List Task Quarantine",
        "operationId": "list_task_quarantine_v1_task_quarantine_get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 200,
              "minimum": 1,
              "default": 100,
              "title": "Limit"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/task-quarantine/{task_id}": {
      "get": {
        "tags": [
          "task-quarantine"
        ],
        "summary": "Get Task Quarantine",
        "operationId": "get_task_quarantine_v1_task_quarantine__task_id__get",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "title": "Task Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/task-quarantine/{task_id}/replay": {
      "post": {
        "tags": [
          "task-quarantine"
        ],
        "summary": "Replay Task Quarantine",
        "operationId": "replay_task_quarantine_v1_task_quarantine__task_id__replay_post",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "title": "Task Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReplayTaskDeliveryRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/kyc/sumsub/webhook": {
      "post": {
        "tags": [
          "KYC Webhooks"
        ],
        "summary": "Sumsub Webhook",
        "description": "Handle Sumsub verification webhooks.\n\nSumsub sends webhooks when applicant status changes:\n- applicantReviewed: Final decision (GREEN/RED)\n- applicantPending: Under review\n- applicantCreated: New applicant\n- applicantOnHold: Needs manual review\n\nSignature verification uses the exact raw body and provider-selected HMAC\nalgorithm. Provider timestamps are applied monotonically per applicant.",
        "operationId": "sumsub_webhook_v1_kyc_sumsub_webhook_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/v1/leads": {
      "post": {
        "tags": [
          "leads"
        ],
        "summary": "Create Lead",
        "description": "Persist a landing-page lead. No auth required (public form).",
        "operationId": "create_lead_v1_leads_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateLeadRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LeadResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/health": {
      "get": {
        "summary": "Health",
        "operationId": "health_health_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/health/deep": {
      "get": {
        "summary": "Deep Health",
        "description": "Readiness check for durable dependencies and safety controls.",
        "operationId": "deep_health_health_deep_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "APIKeyHeader": []
          }
        ]
      }
    },
    "/health/workers": {
      "get": {
        "summary": "Worker Health",
        "description": "Check Celery worker health via broker ping.",
        "operationId": "worker_health_health_workers_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "APIKeyHeader": []
          }
        ]
      }
    },
    "/v1/sandbox/reset": {
      "post": {
        "summary": "Reset Sandbox",
        "description": "Reset sandbox test data. Local sandbox only.",
        "operationId": "reset_sandbox_v1_sandbox_reset_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "APIKeyHeader": []
          }
        ]
      }
    },
    "/v1/system/version": {
      "get": {
        "summary": "System Version V1",
        "description": "Return the release identity already validated at process startup.",
        "operationId": "system_version_v1_v1_system_version_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "APIKeyHeader": []
          }
        ]
      }
    },
    "/v1/system/metrics": {
      "get": {
        "summary": "System Metrics",
        "description": "Return an internal implementation inventory, not an assurance report.",
        "operationId": "system_metrics_v1_system_metrics_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "APIKeyHeader": []
          }
        ]
      }
    },
    "/verify/{cert_hash}": {
      "get": {
        "summary": "Public Certificate Verification",
        "description": "Public certificate verification \u2014 no authentication required.\n\nAnyone with a certificate can verify it against the on-chain anchor.",
        "operationId": "public_certificate_verification_verify__cert_hash__get",
        "parameters": [
          {
            "name": "cert_hash",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "title": "Cert Hash"
            }
          },
          {
            "name": "settlement_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64,
              "title": "Settlement Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AMLCheckAlertResponse": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "type": {
            "type": "string",
            "title": "Type"
          },
          "severity": {
            "type": "string",
            "title": "Severity"
          },
          "title": {
            "type": "string",
            "title": "Title"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "type",
          "severity",
          "title"
        ],
        "title": "AMLCheckAlertResponse",
        "description": "Alert summary retained for forward-compatible preview responses."
      },
      "AMLCheckRequest": {
        "properties": {
          "org_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,35}$",
            "title": "Org Id"
          },
          "recipient_id": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 36,
                "minLength": 1,
                "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,35}$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recipient Id"
          },
          "recipient_country": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2,
                "minLength": 2,
                "pattern": "^[A-Z]{2}$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recipient Country"
          },
          "amount_usdc": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "string"
              }
            ],
            "title": "Amount Usdc",
            "decimal_places": 6,
            "gt": 0,
            "le": "100000.000000",
            "max_digits": 12,
            "x-yembipay-max-input-characters": 64
          },
          "input_method": {
            "type": "string",
            "maxLength": 32,
            "minLength": 1,
            "title": "Input Method"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "org_id",
          "amount_usdc",
          "input_method"
        ],
        "title": "AMLCheckRequest"
      },
      "AMLCheckResponse": {
        "properties": {
          "blocked": {
            "type": "boolean",
            "title": "Blocked"
          },
          "preview": {
            "type": "boolean",
            "const": true,
            "title": "Preview"
          },
          "alert_count": {
            "type": "integer",
            "minimum": 0.0,
            "title": "Alert Count"
          },
          "alerts": {
            "items": {
              "$ref": "#/components/schemas/AMLCheckAlertResponse"
            },
            "type": "array",
            "title": "Alerts"
          },
          "velocity": {
            "$ref": "#/components/schemas/AMLVelocityPreviewResponse"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "blocked",
          "preview",
          "alert_count",
          "alerts",
          "velocity"
        ],
        "title": "AMLCheckResponse"
      },
      "AMLVelocityPreviewResponse": {
        "properties": {
          "daily_total": {
            "type": "string",
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{6}$",
            "title": "Daily Total",
            "description": "Exact USDC decimal string with six fractional digits",
            "examples": [
              "1250.000001"
            ]
          },
          "weekly_total": {
            "type": "string",
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{6}$",
            "title": "Weekly Total",
            "description": "Exact USDC decimal string with six fractional digits",
            "examples": [
              "1250.000001"
            ]
          },
          "monthly_total": {
            "type": "string",
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{6}$",
            "title": "Monthly Total",
            "description": "Exact USDC decimal string with six fractional digits",
            "examples": [
              "1250.000001"
            ]
          },
          "daily_count": {
            "type": "integer",
            "minimum": 0.0,
            "title": "Daily Count"
          },
          "allowed": {
            "type": "boolean",
            "title": "Allowed"
          },
          "input_method": {
            "type": "string",
            "title": "Input Method"
          },
          "breaches": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Breaches"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "daily_total",
          "weekly_total",
          "monthly_total",
          "daily_count",
          "allowed",
          "input_method",
          "breaches"
        ],
        "title": "AMLVelocityPreviewResponse"
      },
      "ApprovalCreateResponse": {
        "properties": {
          "id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Id"
          },
          "org_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Org Id"
          },
          "amount_usdc": {
            "type": "string",
            "pattern": "^(?:0|[1-9][0-9]{0,11})\\.[0-9]{6}$",
            "title": "Amount Usdc"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "required_approvals": {
            "type": "integer",
            "maximum": 20.0,
            "minimum": 2.0,
            "title": "Required Approvals"
          },
          "current_approvals": {
            "type": "integer",
            "maximum": 20.0,
            "minimum": 0.0,
            "title": "Current Approvals"
          },
          "expires_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          },
          "execution_admission": {
            "type": "string",
            "const": "disabled_no_bound_execution",
            "title": "Execution Admission"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "org_id",
          "amount_usdc",
          "status",
          "required_approvals",
          "current_approvals",
          "expires_at",
          "execution_admission"
        ],
        "title": "ApprovalCreateResponse"
      },
      "ApprovalVoteResponse": {
        "properties": {
          "signer_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Signer Id"
          },
          "signer_role": {
            "type": "string",
            "maxLength": 64,
            "minLength": 1,
            "title": "Signer Role"
          },
          "decision": {
            "type": "string",
            "title": "Decision"
          },
          "comment": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 1000
              },
              {
                "type": "null"
              }
            ],
            "title": "Comment"
          },
          "voted_at": {
            "type": "string",
            "format": "date-time",
            "title": "Voted At"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "signer_id",
          "signer_role",
          "decision",
          "voted_at"
        ],
        "title": "ApprovalVoteResponse"
      },
      "AuditCommitmentCheckResponse": {
        "properties": {
          "proof_type": {
            "type": "string",
            "const": "unaudited_merkle_commitment",
            "title": "Proof Type"
          },
          "commitment_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Commitment Id"
          },
          "period": {
            "type": "string",
            "pattern": "^(?:[0-9]{4}-(?:0[1-9]|1[0-2])|[0-9]{4}-Q[1-4])$",
            "title": "Period"
          },
          "is_internally_consistent": {
            "type": "boolean",
            "title": "Is Internally Consistent"
          },
          "transaction_count": {
            "type": "integer",
            "minimum": 0.0,
            "title": "Transaction Count"
          },
          "compliance_pass_count": {
            "type": "integer",
            "minimum": 0.0,
            "title": "Compliance Pass Count"
          },
          "merkle_root": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$",
            "title": "Merkle Root"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "proof_type",
          "commitment_id",
          "period",
          "is_internally_consistent",
          "transaction_count",
          "compliance_pass_count",
          "merkle_root"
        ],
        "title": "AuditCommitmentCheckResponse",
        "description": "Internal consistency result for one local commitment."
      },
      "AuditCommitmentListItem": {
        "properties": {
          "proof_type": {
            "type": "string",
            "const": "unaudited_merkle_commitment",
            "title": "Proof Type"
          },
          "commitment_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Commitment Id"
          },
          "period": {
            "type": "string",
            "pattern": "^(?:[0-9]{4}-(?:0[1-9]|1[0-2])|[0-9]{4}-Q[1-4])$",
            "title": "Period"
          },
          "transaction_count": {
            "type": "integer",
            "minimum": 0.0,
            "title": "Transaction Count"
          },
          "compliance_pass_count": {
            "type": "integer",
            "minimum": 0.0,
            "title": "Compliance Pass Count"
          },
          "generated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Generated At"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "proof_type",
          "commitment_id",
          "period",
          "transaction_count",
          "compliance_pass_count",
          "generated_at"
        ],
        "title": "AuditCommitmentListItem",
        "description": "Bounded list representation for one local commitment."
      },
      "AuditCommitmentPublicSummary": {
        "properties": {
          "org_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Org Id"
          },
          "period": {
            "type": "string",
            "pattern": "^(?:[0-9]{4}-(?:0[1-9]|1[0-2])|[0-9]{4}-Q[1-4])$",
            "title": "Period"
          },
          "transaction_count": {
            "type": "integer",
            "minimum": 0.0,
            "title": "Transaction Count"
          },
          "total_volume_usdc": {
            "type": "string",
            "pattern": "^[0-9]+\\.[0-9]{6}$",
            "title": "Total Volume Usdc"
          },
          "compliance_pass_count": {
            "type": "integer",
            "minimum": 0.0,
            "title": "Compliance Pass Count"
          },
          "blocked_count": {
            "type": "integer",
            "minimum": 0.0,
            "title": "Blocked Count"
          },
          "merkle_root": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$",
            "title": "Merkle Root"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "org_id",
          "period",
          "transaction_count",
          "total_volume_usdc",
          "compliance_pass_count",
          "blocked_count",
          "merkle_root"
        ],
        "title": "AuditCommitmentPublicSummary",
        "description": "Exact public fields committed by the local checksum."
      },
      "BatchPaymentItem": {
        "properties": {
          "recipient_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,35}$",
            "title": "Recipient Id",
            "description": "Recipient ID from the recipients table"
          },
          "amount_usdc": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "string"
              }
            ],
            "title": "Amount Usdc",
            "decimal_places": 6,
            "gt": 0,
            "le": "100000.000000",
            "max_digits": 12,
            "x-yembipay-max-input-characters": 64
          },
          "memo": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 256,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Memo",
            "description": "Invoice number or note"
          },
          "travel_rule": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TravelRuleData"
              },
              {
                "type": "null"
              }
            ],
            "description": "Required if amount >= $3,000"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "recipient_id",
          "amount_usdc"
        ],
        "title": "BatchPaymentItem",
        "description": "A single payment within a batch."
      },
      "BatchPayrollRequest": {
        "properties": {
          "sender_org_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,35}$",
            "title": "Sender Org Id"
          },
          "payments": {
            "items": {
              "$ref": "#/components/schemas/BatchPaymentItem"
            },
            "type": "array",
            "maxItems": 500,
            "minItems": 1,
            "title": "Payments"
          },
          "idempotency_key": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 128,
                "minLength": 16,
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]+$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Idempotency Key",
            "description": "Prevents duplicate batch submissions on retry"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "sender_org_id",
          "payments"
        ],
        "title": "BatchPayrollRequest",
        "description": "Pay multiple recipients in a single API call.\n\nThe CFO submits one request with all payments for a pay period.\nEach item is processed independently \u2014 one failure doesn't block the rest."
      },
      "BatchRunResponse": {
        "properties": {
          "batch_id": {
            "type": "string",
            "title": "Batch Id"
          },
          "org_id": {
            "type": "string",
            "title": "Org Id"
          },
          "total_payments": {
            "type": "integer",
            "title": "Total Payments"
          },
          "succeeded": {
            "type": "integer",
            "title": "Succeeded"
          },
          "failed": {
            "type": "integer",
            "title": "Failed"
          },
          "blocked": {
            "type": "integer",
            "title": "Blocked"
          },
          "total_usdc": {
            "type": "string",
            "pattern": "^(?:0|[1-9][0-9]{0,63})\\.[0-9]{6}$",
            "title": "Total Usdc"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          }
        },
        "type": "object",
        "required": [
          "batch_id",
          "org_id",
          "total_payments",
          "succeeded",
          "failed",
          "blocked",
          "total_usdc",
          "status",
          "created_at"
        ],
        "title": "BatchRunResponse",
        "description": "Persisted summary of a batch payroll run (GET /batch, GET /batch/{id})."
      },
      "BillingInvoiceListItemResponse": {
        "properties": {
          "id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Id"
          },
          "period": {
            "type": "string",
            "maxLength": 7,
            "minLength": 7,
            "pattern": "^[0-9]{4}-(?:0[1-9]|1[0-2])$",
            "title": "Period"
          },
          "subscription_fee": {
            "type": "string",
            "maxLength": 32,
            "minLength": 8,
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{6}$",
            "title": "Subscription Fee",
            "description": "Exact non-negative USDC decimal string with six fractional digits"
          },
          "transaction_fees": {
            "type": "string",
            "maxLength": 32,
            "minLength": 8,
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{6}$",
            "title": "Transaction Fees",
            "description": "Exact non-negative USDC decimal string with six fractional digits"
          },
          "transaction_count": {
            "type": "integer",
            "minimum": 0.0,
            "title": "Transaction Count"
          },
          "total_due": {
            "type": "string",
            "maxLength": 32,
            "minLength": 8,
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{6}$",
            "title": "Total Due",
            "description": "Exact non-negative USDC decimal string with six fractional digits"
          },
          "status": {
            "type": "string",
            "enum": [
              "draft",
              "issued"
            ],
            "title": "Status"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "period",
          "subscription_fee",
          "transaction_fees",
          "transaction_count",
          "total_due",
          "status"
        ],
        "title": "BillingInvoiceListItemResponse",
        "description": "Exact bounded invoice-list projection."
      },
      "BillingInvoiceResponse": {
        "properties": {
          "id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Id"
          },
          "org_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Org Id"
          },
          "period": {
            "type": "string",
            "maxLength": 7,
            "minLength": 7,
            "pattern": "^[0-9]{4}-(?:0[1-9]|1[0-2])$",
            "title": "Period"
          },
          "subscription_fee": {
            "type": "string",
            "maxLength": 32,
            "minLength": 8,
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{6}$",
            "title": "Subscription Fee",
            "description": "Exact non-negative USDC decimal string with six fractional digits"
          },
          "transaction_fees": {
            "type": "string",
            "maxLength": 32,
            "minLength": 8,
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{6}$",
            "title": "Transaction Fees",
            "description": "Exact non-negative USDC decimal string with six fractional digits"
          },
          "transaction_count": {
            "type": "integer",
            "minimum": 0.0,
            "title": "Transaction Count"
          },
          "total_volume_usdc": {
            "type": "string",
            "maxLength": 32,
            "minLength": 8,
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{6}$",
            "title": "Total Volume Usdc",
            "description": "Exact non-negative USDC decimal string with six fractional digits"
          },
          "rebate_credit": {
            "type": "string",
            "maxLength": 32,
            "minLength": 8,
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{6}$",
            "title": "Rebate Credit",
            "description": "Exact non-negative USDC decimal string with six fractional digits"
          },
          "subtotal": {
            "type": "string",
            "maxLength": 32,
            "minLength": 8,
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{6}$",
            "title": "Subtotal",
            "description": "Exact non-negative USDC decimal string with six fractional digits"
          },
          "total_due": {
            "type": "string",
            "maxLength": 32,
            "minLength": 8,
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{6}$",
            "title": "Total Due",
            "description": "Exact non-negative USDC decimal string with six fractional digits"
          },
          "status": {
            "type": "string",
            "enum": [
              "draft",
              "issued"
            ],
            "title": "Status"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "org_id",
          "period",
          "subscription_fee",
          "transaction_fees",
          "transaction_count",
          "total_volume_usdc",
          "rebate_credit",
          "subtotal",
          "total_due",
          "status"
        ],
        "title": "BillingInvoiceResponse",
        "description": "Exact immutable invoice snapshot returned after generation."
      },
      "BillingInvoiceStatusResponse": {
        "properties": {
          "id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Id"
          },
          "status": {
            "type": "string",
            "enum": [
              "draft",
              "issued"
            ],
            "title": "Status"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "status"
        ],
        "title": "BillingInvoiceStatusResponse",
        "description": "Non-monetary invoice transition projection."
      },
      "BillingUsageResponse": {
        "properties": {
          "org_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Org Id"
          },
          "period": {
            "type": "string",
            "maxLength": 7,
            "minLength": 7,
            "pattern": "^[0-9]{4}-(?:0[1-9]|1[0-2])$",
            "title": "Period"
          },
          "transaction_count": {
            "type": "integer",
            "minimum": 0.0,
            "title": "Transaction Count"
          },
          "total_volume_usdc": {
            "type": "string",
            "maxLength": 32,
            "minLength": 8,
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{6}$",
            "title": "Total Volume Usdc",
            "description": "Exact non-negative USDC decimal string with six fractional digits"
          },
          "total_fees_usdc": {
            "type": "string",
            "maxLength": 32,
            "minLength": 8,
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{6}$",
            "title": "Total Fees Usdc",
            "description": "Exact non-negative USDC decimal string with six fractional digits"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "org_id",
          "period",
          "transaction_count",
          "total_volume_usdc",
          "total_fees_usdc"
        ],
        "title": "BillingUsageResponse",
        "description": "Exact usage projection for one organization and billing period."
      },
      "CaribbeanOfframpRequest": {
        "properties": {
          "amount_usdc": {
            "anyOf": [
              {
                "type": "number",
                "maximum": 100000.0,
                "exclusiveMinimum": 0.0
              },
              {
                "type": "string"
              }
            ],
            "title": "Amount Usdc",
            "description": "Amount in USDC to send",
            "x-yembipay-max-input-characters": 64
          },
          "sender_org_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,35}$",
            "title": "Sender Org Id",
            "description": "Sending organization ID"
          },
          "sender_wallet": {
            "type": "string",
            "maxLength": 42,
            "minLength": 42,
            "pattern": "^0x[a-fA-F0-9]{40}$",
            "title": "Sender Wallet",
            "description": "Sender USDC wallet address"
          },
          "recipient_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,35}$",
            "title": "Recipient Id",
            "description": "Internal recipient identifier"
          },
          "recipient_account": {
            "type": "string",
            "maxLength": 64,
            "minLength": 1,
            "title": "Recipient Account",
            "description": "Recipient bank account number"
          },
          "recipient_bank_code": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 64,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Recipient Bank Code",
            "description": "Bank SWIFT/routing code"
          },
          "country_code": {
            "type": "string",
            "maxLength": 2,
            "minLength": 2,
            "pattern": "^[A-Z]{2}$",
            "title": "Country Code",
            "description": "ISO 3166-1 alpha-2 country code (JM, TT, GY, etc.)"
          },
          "reference": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 256,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Reference",
            "description": "Invoice or payment reference"
          },
          "originator_name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 256,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Originator Name",
            "description": "Originator full name (Travel Rule)"
          },
          "originator_address": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 512,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Originator Address",
            "description": "Originator address (Travel Rule)"
          },
          "beneficiary_name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 256,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Beneficiary Name",
            "description": "Beneficiary full name (Travel Rule)"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "amount_usdc",
          "sender_org_id",
          "sender_wallet",
          "recipient_id",
          "recipient_account",
          "country_code"
        ],
        "title": "CaribbeanOfframpRequest",
        "description": "Request to settle USDC into a Caribbean bank account."
      },
      "CaribbeanOfframpResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success"
          },
          "ledger_entry_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ledger Entry Id"
          },
          "tx_hash": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tx Hash"
          },
          "compliance_cert_id": {
            "type": "string",
            "title": "Compliance Cert Id"
          },
          "compliance_status": {
            "type": "string",
            "title": "Compliance Status"
          },
          "amount_usdc": {
            "type": "string",
            "pattern": "^(?:0|[1-9][0-9]{0,11})\\.[0-9]{6}$",
            "title": "Amount Usdc"
          },
          "amount_local": {
            "type": "string",
            "pattern": "^(?:0|[1-9][0-9]{0,63})\\.[0-9]{2}$",
            "title": "Amount Local"
          },
          "local_currency": {
            "type": "string",
            "title": "Local Currency"
          },
          "fx_rate": {
            "type": "string",
            "pattern": "^(?:0|[1-9][0-9]{0,17})(?:\\.[0-9]{1,18})?$",
            "title": "Fx Rate"
          },
          "offramp_fee_usdc": {
            "type": "string",
            "pattern": "^(?:0|[1-9][0-9]{0,11})\\.[0-9]{6}$",
            "title": "Offramp Fee Usdc"
          },
          "settlement_rail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Settlement Rail"
          },
          "settlement_channel": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Settlement Channel"
          },
          "deposit_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Deposit Id"
          },
          "certificate_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Certificate Url"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "message": {
            "type": "string",
            "title": "Message"
          }
        },
        "type": "object",
        "required": [
          "success",
          "compliance_cert_id",
          "compliance_status",
          "amount_usdc",
          "amount_local",
          "local_currency",
          "fx_rate",
          "offramp_fee_usdc",
          "settlement_rail",
          "settlement_channel",
          "deposit_id",
          "status",
          "message"
        ],
        "title": "CaribbeanOfframpResponse",
        "description": "Response confirming a Caribbean off-ramp settlement."
      },
      "CollectionExecutionMode": {
        "type": "string",
        "enum": [
          "unspecified",
          "simulation",
          "provider_test",
          "live"
        ],
        "title": "CollectionExecutionMode",
        "description": "How an input collection was executed.\n\n``UNSPECIFIED`` preserves compatibility with adapters that have not yet been\nmigrated to explicit provider-mode reporting. ACH never returns it."
      },
      "CompleteVerificationRequest": {
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "verified",
              "rejected"
            ],
            "title": "Status"
          },
          "verified_name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 256,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Verified Name"
          },
          "rejection_reason": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 4000,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Rejection Reason"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "status"
        ],
        "title": "CompleteVerificationRequest",
        "description": "Body for completing a verification (approve or reject)."
      },
      "ComplianceCheckResponse": {
        "properties": {
          "wallet_address": {
            "type": "string",
            "title": "Wallet Address"
          },
          "is_compliant": {
            "type": "boolean",
            "title": "Is Compliant",
            "description": "Operational screening admission result. This is not a legal opinion, license, registration, or determination of GENIUS Act compliance."
          },
          "is_sanctioned": {
            "type": "boolean",
            "title": "Is Sanctioned"
          },
          "genius_act_registered": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Genius Act Registered",
            "description": "Deprecated compatibility field. True means only that the configured stablecoin contract returned isBlacklisted(address) == false during an external check; null means not checked or not applicable. It does not mean the wallet, customer, YembiPay, or the token issuer is registered, licensed, or legally compliant under the GENIUS Act.",
            "deprecated": true
          },
          "stablecoin_issuer_address_eligible": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Stablecoin Issuer Address Eligible",
            "description": "Result of the configured token contract's issuer-controlled address list: true when isBlacklisted(address) returned false, false when it returned true, and null when not checked or unverifiable. This is a token-transfer eligibility signal, not a legal-compliance conclusion."
          },
          "stablecoin_issuer_address_screening": {
            "type": "string",
            "enum": [
              "eligible",
              "blocked",
              "unavailable",
              "not_verified",
              "not_applicable"
            ],
            "title": "Stablecoin Issuer Address Screening",
            "description": "Status of the configured stablecoin contract address-list check. Local sandbox execution is always not_verified.",
            "default": "not_applicable"
          },
          "legal_compliance_determination": {
            "type": "boolean",
            "const": false,
            "title": "Legal Compliance Determination",
            "description": "Always false. This screening response does not attest to GENIUS Act status, money-transmitter licensing, DASP registration, or any other legal authorization.",
            "default": false
          },
          "screening_status": {
            "type": "string",
            "enum": [
              "pass",
              "simulation_only",
              "block",
              "hold",
              "unavailable"
            ],
            "title": "Screening Status",
            "description": "Operational admission status for this screening attempt."
          },
          "risk_score": {
            "type": "integer",
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Risk Score",
            "description": "Compliance signal score retained for API compatibility: 0 means no blocking signal in the checks performed, 85 means a high-similarity SDN name requires review, and 100 means blocked/unverifiable. Inspect screening_status and evidence scope; it is never a legal conclusion or a random wallet-address hash.",
            "default": 0
          },
          "details": {
            "type": "string",
            "title": "Details"
          },
          "ofac_dataset_generation": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ofac Dataset Generation"
          },
          "ofac_dataset_attempt_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ofac Dataset Attempt Id"
          },
          "ofac_dataset_sha256": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ofac Dataset Sha256"
          },
          "ofac_dataset_verified_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ofac Dataset Verified At"
          },
          "ofac_dataset_fresh_until": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ofac Dataset Fresh Until"
          },
          "ofac_dataset_scope": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "active_versioned_generation",
                  "local_legacy_unverified"
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Ofac Dataset Scope"
          }
        },
        "type": "object",
        "required": [
          "wallet_address",
          "is_compliant",
          "is_sanctioned",
          "genius_act_registered",
          "screening_status",
          "details"
        ],
        "title": "ComplianceCheckResponse"
      },
      "ConnectAccountingRequest": {
        "properties": {
          "org_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Org Id"
          },
          "provider": {
            "type": "string",
            "enum": [
              "quickbooks",
              "xero"
            ],
            "title": "Provider"
          },
          "access_token": {
            "type": "string",
            "maxLength": 8192,
            "minLength": 1,
            "title": "Access Token"
          },
          "refresh_token": {
            "type": "string",
            "maxLength": 8192,
            "minLength": 1,
            "title": "Refresh Token"
          },
          "realm_id": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 64,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Realm Id"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "org_id",
          "provider",
          "access_token",
          "refresh_token"
        ],
        "title": "ConnectAccountingRequest",
        "description": "Create a local simulated accounting connection from test tokens."
      },
      "CreateApiKeyRequest": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 128,
            "minLength": 1,
            "title": "Name"
          },
          "scope": {
            "type": "string",
            "enum": [
              "full",
              "transfers",
              "read_only",
              "compliance"
            ],
            "title": "Scope"
          },
          "environment": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "sandbox",
                  "regulatory_sandbox",
                  "live"
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Environment"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "name",
          "scope"
        ],
        "title": "CreateApiKeyRequest",
        "description": "Generate an additional API key for an organization."
      },
      "CreateApprovalRequest": {
        "properties": {
          "org_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,35}$",
            "title": "Org Id"
          },
          "recipient_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,35}$",
            "title": "Recipient Id"
          },
          "recipient_wallet": {
            "type": "string",
            "maxLength": 42,
            "minLength": 42,
            "pattern": "^0x[0-9a-fA-F]{40}$",
            "title": "Recipient Wallet"
          },
          "amount_usdc": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "string"
              }
            ],
            "title": "Amount Usdc",
            "decimal_places": 6,
            "gt": 0,
            "le": "100000.000000",
            "max_digits": 12,
            "x-yembipay-max-input-characters": 64
          },
          "memo": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 1000
              },
              {
                "type": "null"
              }
            ],
            "title": "Memo"
          },
          "required_approvals": {
            "type": "integer",
            "maximum": 20.0,
            "minimum": 2.0,
            "title": "Required Approvals",
            "default": 2
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "org_id",
          "recipient_id",
          "recipient_wallet",
          "amount_usdc"
        ],
        "title": "CreateApprovalRequest",
        "description": "Create an approval record without creating or binding a transfer."
      },
      "CreateLeadRequest": {
        "properties": {
          "email": {
            "type": "string",
            "maxLength": 256,
            "minLength": 3,
            "pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$",
            "title": "Email"
          },
          "name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 256
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "company": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 256
              },
              {
                "type": "null"
              }
            ],
            "title": "Company"
          },
          "message": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Message"
          },
          "source": {
            "type": "string",
            "maxLength": 64,
            "title": "Source",
            "default": "landing"
          }
        },
        "type": "object",
        "required": [
          "email"
        ],
        "title": "CreateLeadRequest",
        "description": "Public landing-page form submission.\n\nNo auth \u2014 this is a marketing form. Field limits act as basic abuse\nguards against oversized payloads."
      },
      "CreateOrganizationRequest": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 256,
            "minLength": 1,
            "title": "Name"
          },
          "slug": {
            "type": "string",
            "maxLength": 64,
            "minLength": 1,
            "pattern": "^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$",
            "title": "Slug"
          },
          "email": {
            "type": "string",
            "maxLength": 254,
            "minLength": 3,
            "pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$",
            "title": "Email"
          },
          "country": {
            "type": "string",
            "maxLength": 2,
            "minLength": 2,
            "pattern": "^[A-Z]{2}$",
            "title": "Country"
          },
          "tier": {
            "type": "string",
            "enum": [
              "free",
              "starter",
              "growth",
              "enterprise"
            ],
            "title": "Tier",
            "default": "free"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "name",
          "slug",
          "email",
          "country"
        ],
        "title": "CreateOrganizationRequest",
        "description": "Create a new organization and issue its first API key."
      },
      "CreatePayrollScheduleRequest": {
        "properties": {
          "org_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Org Id"
          },
          "name": {
            "type": "string",
            "maxLength": 128,
            "minLength": 1,
            "title": "Name"
          },
          "frequency": {
            "type": "string",
            "enum": [
              "weekly",
              "biweekly",
              "monthly",
              "custom"
            ],
            "title": "Frequency"
          },
          "day_value": {
            "type": "integer",
            "maximum": 28.0,
            "minimum": 0.0,
            "title": "Day Value"
          },
          "payment_template": {
            "items": {
              "$ref": "#/components/schemas/BatchPaymentItem"
            },
            "type": "array",
            "maxItems": 500,
            "minItems": 1,
            "title": "Payment Template"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "org_id",
          "name",
          "frequency",
          "day_value",
          "payment_template"
        ],
        "title": "CreatePayrollScheduleRequest",
        "description": "Create a recurring payroll schedule.\n\nFrequencies: weekly, biweekly, monthly, custom.\nday_value: For monthly = day of month (1-28). For weekly/biweekly = day of\nweek (0=Mon, 4=Fri)."
      },
      "CreatePortalTokenRequest": {
        "properties": {
          "recipient_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Recipient Id"
          },
          "org_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Org Id"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "recipient_id",
          "org_id"
        ],
        "title": "CreatePortalTokenRequest"
      },
      "CreateRecipientRequest": {
        "properties": {
          "org_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Org Id"
          },
          "legal_name": {
            "type": "string",
            "maxLength": 256,
            "minLength": 1,
            "title": "Legal Name"
          },
          "email": {
            "type": "string",
            "maxLength": 256,
            "minLength": 3,
            "pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$",
            "title": "Email"
          },
          "country_code": {
            "type": "string",
            "maxLength": 2,
            "minLength": 2,
            "pattern": "^[A-Za-z]{2}$",
            "title": "Country Code"
          },
          "payout_method": {
            "type": "string",
            "enum": [
              "usdc_wallet",
              "local_bank",
              "mobile_money"
            ],
            "title": "Payout Method",
            "default": "local_bank"
          },
          "wallet_address": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 42,
                "minLength": 42,
                "pattern": "^0x[0-9a-fA-F]{40}$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Wallet Address"
          },
          "bank_name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 256
              },
              {
                "type": "null"
              }
            ],
            "title": "Bank Name"
          },
          "bank_account_number": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 64
              },
              {
                "type": "null"
              }
            ],
            "title": "Bank Account Number"
          },
          "bank_routing_code": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 64
              },
              {
                "type": "null"
              }
            ],
            "title": "Bank Routing Code"
          },
          "bank_currency": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 3,
                "minLength": 3,
                "pattern": "^[A-Za-z]{3}$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bank Currency"
          },
          "mobile_provider": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 64
              },
              {
                "type": "null"
              }
            ],
            "title": "Mobile Provider"
          },
          "mobile_number": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 32
              },
              {
                "type": "null"
              }
            ],
            "title": "Mobile Number"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "org_id",
          "legal_name",
          "email",
          "country_code"
        ],
        "title": "CreateRecipientRequest"
      },
      "CreateSARRequest": {
        "properties": {
          "org_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Org Id"
          },
          "alert_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Alert Id"
          },
          "subject_type": {
            "type": "string",
            "enum": [
              "recipient",
              "org"
            ],
            "title": "Subject Type",
            "description": "recipient | org"
          },
          "subject_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Subject Id"
          },
          "subject_name": {
            "type": "string",
            "maxLength": 256,
            "minLength": 1,
            "title": "Subject Name"
          },
          "narrative": {
            "type": "string",
            "maxLength": 10000,
            "minLength": 10,
            "title": "Narrative"
          },
          "amount_involved_usdc": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "string"
              }
            ],
            "title": "Amount Involved Usdc",
            "decimal_places": 6,
            "gt": 0,
            "le": "1000000000.000000",
            "max_digits": 16,
            "x-yembipay-max-input-characters": 64
          },
          "date_range_start": {
            "type": "string",
            "format": "date-time",
            "title": "Date Range Start"
          },
          "date_range_end": {
            "type": "string",
            "format": "date-time",
            "title": "Date Range End"
          },
          "prepared_by": {
            "type": "string",
            "maxLength": 64,
            "minLength": 1,
            "title": "Prepared By",
            "description": "Deprecated caller reference; prepared_by is bound to the authenticated API-key principal and draft creation is not regulatory filing"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "org_id",
          "alert_id",
          "subject_type",
          "subject_id",
          "subject_name",
          "narrative",
          "amount_involved_usdc",
          "date_range_start",
          "date_range_end",
          "prepared_by"
        ],
        "title": "CreateSARRequest"
      },
      "CreateSumsubApplicantRequest": {
        "properties": {
          "recipient_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Recipient Id"
          },
          "org_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Org Id"
          },
          "verification_type": {
            "type": "string",
            "enum": [
              "kyc",
              "kyb"
            ],
            "title": "Verification Type",
            "default": "kyc"
          },
          "email": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 254,
                "minLength": 3,
                "pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email",
            "description": "Deprecated compatibility input; the locked recipient profile is the only provider identity authority"
          },
          "phone": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 32,
                "minLength": 7
              },
              {
                "type": "null"
              }
            ],
            "title": "Phone",
            "description": "Deprecated compatibility input; the locked recipient profile is the only provider identity authority"
          },
          "country": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 3,
                "minLength": 2,
                "pattern": "^[A-Za-z]{2,3}$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Country",
            "description": "Deprecated compatibility input; it is not provider authority and this integration does not reconcile provider document jurisdiction"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "recipient_id",
          "org_id"
        ],
        "title": "CreateSumsubApplicantRequest",
        "description": "Body for creating a Sumsub applicant and initiating KYC verification."
      },
      "CreateWalletRequest": {
        "properties": {
          "org_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Org Id",
            "description": "Organization ID that owns this wallet"
          },
          "label": {
            "type": "string",
            "maxLength": 128,
            "minLength": 1,
            "title": "Label",
            "description": "Human-readable label (e.g. 'LATAM Payroll')"
          },
          "signer_addresses": {
            "items": {
              "type": "string",
              "maxLength": 42,
              "minLength": 42,
              "pattern": "^0x[0-9a-fA-F]{40}$"
            },
            "type": "array",
            "maxItems": 20,
            "minItems": 2,
            "title": "Signer Addresses",
            "description": "Ethereum addresses of MPC key-share holders (min 2)"
          },
          "required_signatures": {
            "type": "integer",
            "maximum": 20.0,
            "minimum": 2.0,
            "title": "Required Signatures",
            "description": "Number of signers required to approve a transfer",
            "default": 2
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "org_id",
          "label",
          "signer_addresses"
        ],
        "title": "CreateWalletRequest"
      },
      "CreateWebhookRequest": {
        "properties": {
          "org_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Org Id"
          },
          "url": {
            "type": "string",
            "maxLength": 512,
            "minLength": 1,
            "title": "Url",
            "description": "HTTPS endpoint to receive events"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "org_id",
          "url"
        ],
        "title": "CreateWebhookRequest"
      },
      "DeactivatePauseRequest": {
        "properties": {},
        "additionalProperties": false,
        "type": "object",
        "title": "DeactivatePauseRequest",
        "description": "Resume transfers after an emergency pause."
      },
      "EstimateRequestV2": {
        "properties": {
          "payment_method": {
            "type": "string",
            "maxLength": 32,
            "minLength": 1,
            "pattern": "^[a-z][a-z0-9_]{0,31}$",
            "title": "Payment Method"
          },
          "amount": {
            "anyOf": [
              {
                "type": "number",
                "exclusiveMinimum": 0.0
              },
              {
                "type": "string"
              }
            ],
            "title": "Amount",
            "x-yembipay-max-input-characters": 64
          },
          "input_currency": {
            "type": "string",
            "maxLength": 8,
            "minLength": 2,
            "pattern": "^[A-Z][A-Z0-9]{1,7}$",
            "title": "Input Currency",
            "default": "USD"
          },
          "corridor": {
            "type": "string",
            "maxLength": 2,
            "minLength": 2,
            "pattern": "^[A-Z]{2}$",
            "title": "Corridor"
          },
          "card_metadata": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Card Metadata"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "payment_method",
          "amount",
          "corridor"
        ],
        "title": "EstimateRequestV2",
        "description": "Request a fee + FX breakdown before settling."
      },
      "EstimateResponseV2": {
        "properties": {
          "payment_method": {
            "type": "string",
            "title": "Payment Method"
          },
          "amount_usd": {
            "type": "string",
            "title": "Amount Usd"
          },
          "input_fee_usd": {
            "type": "string",
            "title": "Input Fee Usd"
          },
          "input_fee_note": {
            "type": "string",
            "title": "Input Fee Note"
          },
          "platform_fee_usd": {
            "type": "string",
            "title": "Platform Fee Usd"
          },
          "platform_fee_note": {
            "type": "string",
            "title": "Platform Fee Note"
          },
          "net_amount_usd": {
            "type": "string",
            "title": "Net Amount Usd"
          },
          "fx_rate": {
            "type": "string",
            "title": "Fx Rate"
          },
          "amount_local": {
            "type": "string",
            "title": "Amount Local"
          },
          "local_currency": {
            "type": "string",
            "title": "Local Currency"
          },
          "corridor": {
            "type": "string",
            "title": "Corridor"
          },
          "rate_lock_expires_in_seconds": {
            "type": "integer",
            "title": "Rate Lock Expires In Seconds"
          },
          "hold_days": {
            "type": "integer",
            "title": "Hold Days"
          },
          "total_cost_usd": {
            "type": "string",
            "title": "Total Cost Usd"
          }
        },
        "type": "object",
        "required": [
          "payment_method",
          "amount_usd",
          "input_fee_usd",
          "input_fee_note",
          "platform_fee_usd",
          "platform_fee_note",
          "net_amount_usd",
          "fx_rate",
          "amount_local",
          "local_currency",
          "corridor",
          "rate_lock_expires_in_seconds",
          "hold_days",
          "total_cost_usd"
        ],
        "title": "EstimateResponseV2",
        "description": "Detailed fee breakdown for display before settlement."
      },
      "ExchangeRequest": {
        "properties": {
          "org_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Org Id"
          },
          "public_token": {
            "type": "string",
            "maxLength": 2048,
            "minLength": 1,
            "title": "Public Token"
          },
          "account_id": {
            "type": "string",
            "maxLength": 128,
            "minLength": 1,
            "title": "Account Id"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "org_id",
          "public_token",
          "account_id"
        ],
        "title": "ExchangeRequest"
      },
      "ExchangeResponse": {
        "properties": {
          "access_token_encrypted": {
            "type": "string",
            "title": "Access Token Encrypted"
          },
          "account_id": {
            "type": "string",
            "title": "Account Id"
          },
          "institution_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Institution Name"
          },
          "linked_at": {
            "type": "string",
            "title": "Linked At"
          }
        },
        "type": "object",
        "required": [
          "access_token_encrypted",
          "account_id",
          "linked_at"
        ],
        "title": "ExchangeResponse"
      },
      "FeeEstimateRequest": {
        "properties": {
          "amount_usdc": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "string"
              }
            ],
            "title": "Amount Usdc",
            "decimal_places": 6,
            "gt": 0,
            "le": "100000.000000",
            "max_digits": 12,
            "x-yembipay-max-input-characters": 64
          },
          "recipient_country": {
            "type": "string",
            "maxLength": 2,
            "minLength": 2,
            "pattern": "^[A-Za-z]{2}$",
            "title": "Recipient Country"
          },
          "payout_method": {
            "type": "string",
            "enum": [
              "usdc_wallet",
              "local_bank",
              "mobile_money"
            ],
            "title": "Payout Method",
            "default": "local_bank"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "amount_usdc",
          "recipient_country"
        ],
        "title": "FeeEstimateRequest"
      },
      "FeeEstimateResponse": {
        "properties": {
          "quote_type": {
            "type": "string",
            "const": "static_simulation",
            "title": "Quote Type",
            "default": "static_simulation"
          },
          "executable": {
            "type": "boolean",
            "const": false,
            "title": "Executable",
            "default": false
          },
          "rate_source": {
            "anyOf": [
              {
                "type": "string",
                "const": "static_fixture"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rate Source"
          },
          "amount_usdc": {
            "type": "string",
            "maxLength": 32,
            "minLength": 8,
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{6}$",
            "title": "Amount Usdc",
            "description": "Exact non-negative USDC decimal string with six fractional digits"
          },
          "recipient_country": {
            "type": "string",
            "title": "Recipient Country"
          },
          "payout_method": {
            "type": "string",
            "enum": [
              "usdc_wallet",
              "local_bank",
              "mobile_money"
            ],
            "title": "Payout Method"
          },
          "platform_fee_usdc": {
            "type": "string",
            "maxLength": 32,
            "minLength": 8,
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{6}$",
            "title": "Platform Fee Usdc",
            "description": "Static YembiPay platform-fee simulation"
          },
          "gas_fee_usdc": {
            "type": "string",
            "maxLength": 32,
            "minLength": 8,
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{6}$",
            "title": "Gas Fee Usdc",
            "description": "Static Base L2 gas-cost simulation"
          },
          "offramp_fee_usdc": {
            "type": "string",
            "maxLength": 32,
            "minLength": 8,
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{6}$",
            "title": "Offramp Fee Usdc",
            "description": "Static off-ramp fee deducted from the transfer principal"
          },
          "fees_charged_on_top_usdc": {
            "type": "string",
            "maxLength": 32,
            "minLength": 8,
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{6}$",
            "title": "Fees Charged On Top Usdc",
            "description": "Platform and gas fees added to the sender debit"
          },
          "fees_deducted_from_principal_usdc": {
            "type": "string",
            "maxLength": 32,
            "minLength": 8,
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{6}$",
            "title": "Fees Deducted From Principal Usdc",
            "description": "Off-ramp fees deducted before calculating recipient proceeds"
          },
          "total_fee_usdc": {
            "type": "string",
            "maxLength": 32,
            "minLength": 8,
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{6}$",
            "title": "Total Fee Usdc",
            "description": "All simulated fees, regardless of how each fee is funded"
          },
          "total_cost_usdc": {
            "type": "string",
            "maxLength": 32,
            "minLength": 8,
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{6}$",
            "title": "Total Cost Usdc",
            "description": "Simulated sender debit: amount plus fees charged on top. Fees deducted from principal are not charged a second time."
          },
          "recipient_net_usdc": {
            "type": "string",
            "maxLength": 32,
            "minLength": 8,
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{6}$",
            "title": "Recipient Net Usdc",
            "description": "Transfer principal remaining after any off-ramp deduction"
          },
          "estimated_local_amount": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 40,
                "minLength": 4,
                "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{2}$",
                "description": "Exact simulated local-currency amount with two fractional digits"
              },
              {
                "type": "null"
              }
            ],
            "title": "Estimated Local Amount",
            "description": "Static local-currency proceeds; absent for a USDC-wallet payout"
          },
          "local_currency": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 3,
                "minLength": 3
              },
              {
                "type": "null"
              }
            ],
            "title": "Local Currency",
            "description": "ISO 4217 currency code; absent for a USDC-wallet payout"
          },
          "fx_rate": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 48,
                "minLength": 1,
                "pattern": "^(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                "description": "Exact positive decimal representation of the static fixture rate"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fx Rate",
            "description": "Static USD-to-local fixture rate; absent for a USDC-wallet payout"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "amount_usdc",
          "recipient_country",
          "payout_method",
          "platform_fee_usdc",
          "gas_fee_usdc",
          "offramp_fee_usdc",
          "fees_charged_on_top_usdc",
          "fees_deducted_from_principal_usdc",
          "total_fee_usdc",
          "total_cost_usdc",
          "recipient_net_usdc"
        ],
        "title": "FeeEstimateResponse",
        "description": "A static local simulation, never an executable or expiring FX quote."
      },
      "FreezeWalletRequest": {
        "properties": {
          "wallet_address": {
            "type": "string",
            "maxLength": 42,
            "minLength": 42,
            "pattern": "^0x[0-9a-fA-F]{40}$",
            "title": "Wallet Address"
          },
          "reason": {
            "type": "string",
            "enum": [
              "ofac_hit",
              "manual_review",
              "suspicious_activity",
              "law_enforcement",
              "kyc_failure"
            ],
            "title": "Reason"
          },
          "org_id": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 36,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Org Id"
          },
          "details": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Details"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "wallet_address",
          "reason"
        ],
        "title": "FreezeWalletRequest",
        "description": "Freeze a wallet \u2014 all transfers to/from this address are blocked."
      },
      "GenerateCommitmentRequest": {
        "properties": {
          "org_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Org Id"
          },
          "period": {
            "type": "string",
            "maxLength": 7,
            "minLength": 7,
            "pattern": "^(?:[0-9]{4}-(?:0[1-9]|1[0-2])|[0-9]{4}-Q[1-4])$",
            "title": "Period"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "org_id",
          "period"
        ],
        "title": "GenerateCommitmentRequest",
        "description": "Generate an unaudited Merkle commitment for a period.\n\nPeriod format: \"2026-Q1\" (quarterly) or \"2026-02\" (monthly).\nThis provides no privacy, attestation, or independent verification."
      },
      "GenerateInvoiceRequest": {
        "properties": {
          "org_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Org Id"
          },
          "period": {
            "type": "string",
            "maxLength": 7,
            "minLength": 7,
            "pattern": "^[0-9]{4}-(?:0[1-9]|1[0-2])$",
            "title": "Period"
          },
          "tier": {
            "type": "string",
            "enum": [
              "free",
              "starter",
              "growth",
              "enterprise"
            ],
            "title": "Tier",
            "description": "Compatibility assertion checked against the organization's authoritative persisted tier; it cannot select invoice pricing."
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "org_id",
          "period",
          "tier"
        ],
        "title": "GenerateInvoiceRequest",
        "description": "Body for generating a monthly invoice for an org."
      },
      "GeneratedAuditCommitmentResponse": {
        "properties": {
          "proof_type": {
            "type": "string",
            "const": "unaudited_merkle_commitment",
            "title": "Proof Type"
          },
          "commitment_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Commitment Id"
          },
          "period": {
            "type": "string",
            "pattern": "^(?:[0-9]{4}-(?:0[1-9]|1[0-2])|[0-9]{4}-Q[1-4])$",
            "title": "Period"
          },
          "transaction_count": {
            "type": "integer",
            "minimum": 0.0,
            "title": "Transaction Count"
          },
          "total_volume_usdc": {
            "type": "string",
            "pattern": "^[0-9]+\\.[0-9]{6}$",
            "title": "Total Volume Usdc"
          },
          "compliance_pass_count": {
            "type": "integer",
            "minimum": 0.0,
            "title": "Compliance Pass Count"
          },
          "blocked_count": {
            "type": "integer",
            "minimum": 0.0,
            "title": "Blocked Count"
          },
          "merkle_root": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$",
            "title": "Merkle Root"
          },
          "public_summary": {
            "$ref": "#/components/schemas/AuditCommitmentPublicSummary"
          },
          "summary_checksum_sha256": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$",
            "title": "Summary Checksum Sha256"
          },
          "generated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Generated At"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "proof_type",
          "commitment_id",
          "period",
          "transaction_count",
          "total_volume_usdc",
          "compliance_pass_count",
          "blocked_count",
          "merkle_root",
          "public_summary",
          "summary_checksum_sha256",
          "generated_at"
        ],
        "title": "GeneratedAuditCommitmentResponse",
        "description": "One local, unaudited Merkle commitment."
      },
      "GlobalPauseRequest": {
        "properties": {
          "reason": {
            "type": "string",
            "maxLength": 2000,
            "minLength": 1,
            "title": "Reason"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "reason"
        ],
        "title": "GlobalPauseRequest",
        "description": "EMERGENCY: Halt ALL transfers system-wide."
      },
      "HTTPValidationError": {
        "properties": {
          "detail": {
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
          }
        },
        "type": "object",
        "title": "HTTPValidationError"
      },
      "InviteUserRequest": {
        "properties": {
          "org_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Org Id"
          },
          "email": {
            "type": "string",
            "maxLength": 254,
            "minLength": 3,
            "pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$",
            "title": "Email"
          },
          "full_name": {
            "type": "string",
            "maxLength": 256,
            "minLength": 1,
            "title": "Full Name"
          },
          "role": {
            "$ref": "#/components/schemas/UserRole",
            "description": "owner | admin | finance | compliance | viewer"
          },
          "password": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 72,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Password"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "org_id",
          "email",
          "full_name",
          "role"
        ],
        "title": "InviteUserRequest"
      },
      "InvoiceSyncItem": {
        "properties": {
          "external_id": {
            "type": "string",
            "maxLength": 128,
            "minLength": 1,
            "title": "External Id"
          },
          "vendor_name": {
            "type": "string",
            "maxLength": 256,
            "minLength": 1,
            "title": "Vendor Name"
          },
          "amount_usd": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "string"
              }
            ],
            "title": "Amount Usd",
            "decimal_places": 6,
            "gt": 0,
            "le": "1000000000.000000",
            "max_digits": 16,
            "x-yembipay-max-input-characters": 64
          },
          "currency": {
            "type": "string",
            "maxLength": 3,
            "minLength": 3,
            "pattern": "^[A-Z]{3}$",
            "title": "Currency",
            "default": "USD"
          },
          "due_date": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 10,
                "minLength": 10,
                "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Due Date"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "external_id",
          "vendor_name",
          "amount_usd"
        ],
        "title": "InvoiceSyncItem",
        "description": "One bounded invoice accepted by the local simulation."
      },
      "LeadResponse": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "status": {
            "type": "string",
            "title": "Status"
          }
        },
        "type": "object",
        "required": [
          "id",
          "status"
        ],
        "title": "LeadResponse"
      },
      "LedgerEntryResponse": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "tx_hash": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tx Hash"
          },
          "amount_usdc": {
            "type": "string",
            "pattern": "^(?:0|[1-9][0-9]{0,11})\\.[0-9]{6}$",
            "title": "Amount Usdc",
            "description": "Exact canonical USDC amount with six decimal places"
          },
          "sender_org_id": {
            "type": "string",
            "title": "Sender Org Id"
          },
          "recipient_id": {
            "type": "string",
            "title": "Recipient Id"
          },
          "recipient_wallet": {
            "type": "string",
            "title": "Recipient Wallet"
          },
          "compliance_cert_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Compliance Cert Id"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "error_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Reason"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "tx_hash",
          "amount_usdc",
          "sender_org_id",
          "recipient_id",
          "recipient_wallet",
          "compliance_cert_id",
          "status",
          "error_reason",
          "created_at",
          "updated_at"
        ],
        "title": "LedgerEntryResponse",
        "description": "A persisted transfer as stored in the shadow ledger.\n\nThe transfer id returned by ``POST /transfers`` is the ledger entry id."
      },
      "LiftFreezeRequest": {
        "properties": {
          "lift_reason": {
            "type": "string",
            "maxLength": 2000,
            "minLength": 1,
            "title": "Lift Reason"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "lift_reason"
        ],
        "title": "LiftFreezeRequest",
        "description": "Lift a wallet freeze \u2014 requires compliance officer authorization."
      },
      "LinkTokenRequest": {
        "properties": {
          "org_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Org Id"
          },
          "user_client_id": {
            "type": "string",
            "maxLength": 128,
            "minLength": 1,
            "title": "User Client Id",
            "default": "default"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "org_id"
        ],
        "title": "LinkTokenRequest"
      },
      "LinkTokenResponse": {
        "properties": {
          "link_token": {
            "type": "string",
            "title": "Link Token"
          },
          "expiration": {
            "type": "string",
            "title": "Expiration"
          },
          "request_id": {
            "type": "string",
            "title": "Request Id"
          }
        },
        "type": "object",
        "required": [
          "link_token",
          "expiration",
          "request_id"
        ],
        "title": "LinkTokenResponse"
      },
      "LoginRequest": {
        "properties": {
          "email": {
            "type": "string",
            "maxLength": 254,
            "minLength": 3,
            "pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$",
            "title": "Email"
          },
          "password": {
            "type": "string",
            "maxLength": 72,
            "minLength": 1,
            "title": "Password"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "email",
          "password"
        ],
        "title": "LoginRequest"
      },
      "MeResponse": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "phone": {
            "type": "string",
            "title": "Phone"
          },
          "full_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Full Name"
          },
          "kyc_status": {
            "type": "string",
            "title": "Kyc Status"
          },
          "kyc_tier": {
            "type": "string",
            "title": "Kyc Tier"
          },
          "daily_limit_usd": {
            "type": "number",
            "title": "Daily Limit Usd"
          }
        },
        "type": "object",
        "required": [
          "id",
          "phone",
          "full_name",
          "kyc_status",
          "kyc_tier",
          "daily_limit_usd"
        ],
        "title": "MeResponse"
      },
      "OfframpEstimateRequest": {
        "properties": {
          "amount_usdc": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "string"
              }
            ],
            "title": "Amount Usdc",
            "decimal_places": 6,
            "gt": 0,
            "le": "100000.000000",
            "max_digits": 12,
            "x-yembipay-max-input-characters": 64
          },
          "country_code": {
            "type": "string",
            "maxLength": 2,
            "minLength": 2,
            "pattern": "^[A-Z]{2}$",
            "title": "Country Code"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "amount_usdc",
          "country_code"
        ],
        "title": "OfframpEstimateRequest",
        "description": "Request for a fee/FX estimate before committing."
      },
      "OfframpEstimateResponse": {
        "properties": {
          "amount_usdc": {
            "type": "string",
            "pattern": "^(?:0|[1-9][0-9]{0,11})\\.[0-9]{6}$",
            "title": "Amount Usdc"
          },
          "local_currency": {
            "type": "string",
            "title": "Local Currency"
          },
          "fx_rate": {
            "type": "string",
            "pattern": "^(?:0|[1-9][0-9]{0,17})(?:\\.[0-9]{1,18})?$",
            "title": "Fx Rate"
          },
          "offramp_fee_usdc": {
            "type": "string",
            "pattern": "^(?:0|[1-9][0-9]{0,11})\\.[0-9]{6}$",
            "title": "Offramp Fee Usdc"
          },
          "offramp_fee_pct": {
            "type": "string",
            "pattern": "^(?:0|1)\\.[0-9]{6}$",
            "title": "Offramp Fee Pct"
          },
          "estimated_local_amount": {
            "type": "string",
            "pattern": "^(?:0|[1-9][0-9]{0,63})\\.[0-9]{2}$",
            "title": "Estimated Local Amount"
          },
          "settlement_rail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Settlement Rail"
          },
          "is_caribbean": {
            "type": "boolean",
            "title": "Is Caribbean"
          },
          "quote_type": {
            "type": "string",
            "title": "Quote Type",
            "default": "static_local_simulation"
          },
          "executable": {
            "type": "boolean",
            "title": "Executable",
            "default": false
          }
        },
        "type": "object",
        "required": [
          "amount_usdc",
          "local_currency",
          "fx_rate",
          "offramp_fee_usdc",
          "offramp_fee_pct",
          "estimated_local_amount",
          "settlement_rail",
          "is_caribbean"
        ],
        "title": "OfframpEstimateResponse",
        "description": "Non-executable local-sandbox estimate using static fixture pricing."
      },
      "PayrollScheduleResponse": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "org_id": {
            "type": "string",
            "title": "Org Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "frequency": {
            "type": "string",
            "title": "Frequency"
          },
          "day_value": {
            "type": "integer",
            "title": "Day Value"
          },
          "payment_template": {
            "items": {},
            "type": "array",
            "title": "Payment Template"
          },
          "is_active": {
            "type": "boolean",
            "title": "Is Active"
          },
          "next_run_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Run At"
          },
          "last_run_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Run At"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "execution_admission": {
            "type": "string",
            "const": "disabled_pending_durable_dispatch",
            "title": "Execution Admission",
            "default": "disabled_pending_durable_dispatch"
          }
        },
        "type": "object",
        "required": [
          "id",
          "org_id",
          "name",
          "frequency",
          "day_value",
          "payment_template",
          "is_active",
          "created_at"
        ],
        "title": "PayrollScheduleResponse",
        "description": "Full representation of a payroll schedule."
      },
      "PendingApprovalResponse": {
        "properties": {
          "id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Id"
          },
          "amount_usdc": {
            "type": "string",
            "pattern": "^(?:0|[1-9][0-9]{0,11})\\.[0-9]{6}$",
            "title": "Amount Usdc"
          },
          "recipient_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Recipient Id"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "current_approvals": {
            "type": "integer",
            "maximum": 20.0,
            "minimum": 0.0,
            "title": "Current Approvals"
          },
          "required_approvals": {
            "type": "integer",
            "maximum": 20.0,
            "minimum": 2.0,
            "title": "Required Approvals"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "expires_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "amount_usdc",
          "recipient_id",
          "status",
          "current_approvals",
          "required_approvals",
          "created_at",
          "expires_at"
        ],
        "title": "PendingApprovalResponse"
      },
      "PortalPaymentResponse": {
        "properties": {
          "id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Id"
          },
          "amount_usdc": {
            "type": "string",
            "pattern": "^(?:0|[1-9][0-9]{0,11})\\.[0-9]{6}$",
            "title": "Amount Usdc",
            "description": "Exact canonical USDC amount with six decimal places"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "amount_usdc",
          "status",
          "created_at"
        ],
        "title": "PortalPaymentResponse",
        "description": "One exact-money item in recipient portal payment history."
      },
      "PortalPaymentsResponse": {
        "properties": {
          "recipient_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Recipient Id"
          },
          "count": {
            "type": "integer",
            "maximum": 50.0,
            "minimum": 0.0,
            "title": "Count"
          },
          "payments": {
            "items": {
              "$ref": "#/components/schemas/PortalPaymentResponse"
            },
            "type": "array",
            "maxItems": 50,
            "title": "Payments"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "recipient_id",
          "count",
          "payments"
        ],
        "title": "PortalPaymentsResponse",
        "description": "Recipient-scoped payment history with an explicit public contract."
      },
      "QuoteBody": {
        "properties": {
          "recipient_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 36,
            "title": "Recipient Id"
          },
          "total_debit_usd": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "string"
              }
            ],
            "title": "Total Debit Usd",
            "decimal_places": 6,
            "ge": "0.01",
            "le": "10000.0",
            "max_digits": 11,
            "x-yembipay-max-input-characters": 64
          },
          "corridor": {
            "type": "string",
            "maxLength": 5,
            "minLength": 5,
            "pattern": "^US-[A-Z]{2}$",
            "title": "Corridor"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "recipient_id",
          "total_debit_usd",
          "corridor"
        ],
        "title": "QuoteBody"
      },
      "QuoteResponse": {
        "properties": {
          "contract_version": {
            "type": "string",
            "title": "Contract Version"
          },
          "quote_authorization_id": {
            "type": "string",
            "title": "Quote Authorization Id"
          },
          "recipient_id": {
            "type": "string",
            "title": "Recipient Id"
          },
          "corridor": {
            "type": "string",
            "title": "Corridor"
          },
          "total_debit_usd": {
            "type": "number",
            "title": "Total Debit Usd"
          },
          "fee_usd": {
            "type": "number",
            "title": "Fee Usd"
          },
          "net_send_usd": {
            "type": "number",
            "title": "Net Send Usd"
          },
          "fx_rate": {
            "type": "number",
            "title": "Fx Rate"
          },
          "recipient_amount": {
            "type": "number",
            "title": "Recipient Amount"
          },
          "recipient_currency": {
            "type": "string",
            "title": "Recipient Currency"
          },
          "rate_source": {
            "type": "string",
            "title": "Rate Source"
          },
          "rate_source_as_of": {
            "type": "string",
            "title": "Rate Source As Of"
          },
          "rate_source_valid_until": {
            "type": "string",
            "title": "Rate Source Valid Until"
          },
          "quote_issued_at": {
            "type": "string",
            "title": "Quote Issued At"
          },
          "expires_at": {
            "type": "string",
            "title": "Expires At"
          },
          "environment": {
            "type": "string",
            "title": "Environment"
          },
          "pricing_mode": {
            "type": "string",
            "title": "Pricing Mode"
          },
          "is_simulation": {
            "type": "boolean",
            "title": "Is Simulation"
          }
        },
        "type": "object",
        "required": [
          "contract_version",
          "quote_authorization_id",
          "recipient_id",
          "corridor",
          "total_debit_usd",
          "fee_usd",
          "net_send_usd",
          "fx_rate",
          "recipient_amount",
          "recipient_currency",
          "rate_source",
          "rate_source_as_of",
          "rate_source_valid_until",
          "quote_issued_at",
          "expires_at",
          "environment",
          "pricing_mode",
          "is_simulation"
        ],
        "title": "QuoteResponse"
      },
      "RecipientBody": {
        "properties": {
          "full_name": {
            "type": "string",
            "maxLength": 255,
            "minLength": 1,
            "title": "Full Name"
          },
          "country_code": {
            "type": "string",
            "maxLength": 2,
            "minLength": 2,
            "pattern": "^[A-Za-z]{2}$",
            "title": "Country Code"
          },
          "bank_account": {
            "type": "string",
            "maxLength": 64,
            "minLength": 1,
            "title": "Bank Account"
          },
          "bank_code": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 64
              },
              {
                "type": "null"
              }
            ],
            "title": "Bank Code"
          },
          "relationship": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 64
              },
              {
                "type": "null"
              }
            ],
            "title": "Relationship"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "full_name",
          "country_code",
          "bank_account"
        ],
        "title": "RecipientBody"
      },
      "ReplayTaskDeliveryRequest": {
        "properties": {
          "reason": {
            "type": "string",
            "maxLength": 53,
            "minLength": 8,
            "title": "Reason",
            "description": "Opaque incident reference only, for example INC-2026-1234"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "reason"
        ],
        "title": "ReplayTaskDeliveryRequest"
      },
      "RequestOTPBody": {
        "properties": {
          "phone": {
            "type": "string",
            "maxLength": 64,
            "minLength": 8,
            "title": "Phone"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "phone"
        ],
        "title": "RequestOTPBody"
      },
      "ReviewAlertRequest": {
        "properties": {
          "reviewer_id": {
            "type": "string",
            "maxLength": 64,
            "minLength": 1,
            "title": "Reviewer Id",
            "description": "Deprecated caller reference; reviewed_by is bound to the authenticated API-key principal"
          },
          "status": {
            "type": "string",
            "enum": [
              "open",
              "under_review",
              "escalated",
              "dismissed"
            ],
            "title": "Status",
            "description": "open | under_review | escalated | dismissed"
          },
          "notes": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 4000,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Notes"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "reviewer_id",
          "status"
        ],
        "title": "ReviewAlertRequest"
      },
      "SessionResponse": {
        "properties": {
          "session_token": {
            "type": "string",
            "title": "Session Token"
          },
          "consumer_id": {
            "type": "string",
            "title": "Consumer Id"
          },
          "is_new": {
            "type": "boolean",
            "title": "Is New"
          }
        },
        "type": "object",
        "required": [
          "session_token",
          "consumer_id",
          "is_new"
        ],
        "title": "SessionResponse"
      },
      "SetVelocityLimitRequest": {
        "properties": {
          "org_id": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 36,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Org Id"
          },
          "recipient_id": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 36,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Recipient Id"
          },
          "max_daily_usdc": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "string"
              }
            ],
            "title": "Max Daily Usdc",
            "default": "50000",
            "decimal_places": 6,
            "gt": 0,
            "le": "100000000.000000",
            "max_digits": 15,
            "x-yembipay-max-input-characters": 64
          },
          "max_weekly_usdc": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "string"
              }
            ],
            "title": "Max Weekly Usdc",
            "default": "200000",
            "decimal_places": 6,
            "gt": 0,
            "le": "100000000.000000",
            "max_digits": 15,
            "x-yembipay-max-input-characters": 64
          },
          "max_monthly_usdc": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "string"
              }
            ],
            "title": "Max Monthly Usdc",
            "default": "500000",
            "decimal_places": 6,
            "gt": 0,
            "le": "100000000.000000",
            "max_digits": 15,
            "x-yembipay-max-input-characters": 64
          },
          "max_daily_count": {
            "type": "integer",
            "maximum": 10000.0,
            "minimum": 1.0,
            "title": "Max Daily Count",
            "default": 50
          },
          "max_single_usdc": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "string"
              }
            ],
            "title": "Max Single Usdc",
            "default": "50000",
            "decimal_places": 6,
            "gt": 0,
            "le": "100000000.000000",
            "max_digits": 15,
            "x-yembipay-max-input-characters": 64
          }
        },
        "additionalProperties": false,
        "type": "object",
        "title": "SetVelocityLimitRequest"
      },
      "SettleRequestV2": {
        "properties": {
          "payment_method": {
            "type": "string",
            "maxLength": 32,
            "minLength": 1,
            "pattern": "^[a-z][a-z0-9_]{0,31}$",
            "title": "Payment Method",
            "description": "Payment method: 'usdc', 'usdt', 'card', 'ach', 'wire'",
            "examples": [
              "usdc",
              "card",
              "ach"
            ]
          },
          "amount": {
            "anyOf": [
              {
                "type": "number",
                "exclusiveMinimum": 0.0
              },
              {
                "type": "string"
              }
            ],
            "title": "Amount",
            "x-yembipay-max-input-characters": 64
          },
          "input_currency": {
            "type": "string",
            "maxLength": 8,
            "minLength": 2,
            "pattern": "^[A-Z][A-Z0-9]{1,7}$",
            "title": "Input Currency",
            "description": "Currency of the input amount: 'USD', 'USDC', 'EUR'",
            "default": "USD"
          },
          "sender_org_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,35}$",
            "title": "Sender Org Id",
            "description": "Sending organization ID"
          },
          "sender_identifier": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 256,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Sender Identifier",
            "description": "Wallet address (crypto), omit for cards/ACH (Stripe handles it)"
          },
          "recipient_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,35}$",
            "title": "Recipient Id",
            "description": "YembiPay recipient ID"
          },
          "corridor": {
            "type": "string",
            "maxLength": 2,
            "minLength": 2,
            "pattern": "^[A-Z]{2}$",
            "title": "Corridor",
            "description": "Destination country code: 'JM', 'TT'"
          },
          "reference": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 256,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Reference",
            "description": "Your reference / invoice number"
          },
          "originator_name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 256,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Originator Name",
            "description": "Sender full legal name"
          },
          "originator_dob": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 10,
                "minLength": 10,
                "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Originator Dob",
            "description": "Sender date of birth: YYYY-MM-DD"
          },
          "originator_address": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 512,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Originator Address",
            "description": "Sender address"
          },
          "beneficiary_name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 256,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Beneficiary Name",
            "description": "Recipient full name"
          },
          "card_token": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 255,
                "minLength": 4,
                "pattern": "^pm_[A-Za-z0-9_]+$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Card Token",
            "description": "Stripe PaymentMethod ID (pm_...) \u2014 never send raw card numbers"
          },
          "card_metadata": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Card Metadata",
            "description": "Stripe card metadata (country, brand) for fee calculation"
          },
          "plaid_account_token": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 255,
                "minLength": 4,
                "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]+$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Plaid Account Token",
            "description": "Plaid bank account token from /v2/plaid/exchange"
          },
          "wire_reference": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 23,
                "minLength": 23,
                "pattern": "^YP-[A-Z2-7]{20}$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Wire Reference",
            "description": "Wire reference number (YP-XXXXXXXX format). If omitted, one will be generated and returned in the response."
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "payment_method",
          "amount",
          "sender_org_id",
          "recipient_id",
          "corridor"
        ],
        "title": "SettleRequestV2",
        "description": "Universal settle request \u2014 accepts any supported payment method."
      },
      "SettleResponseV2": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success"
          },
          "settlement_id": {
            "type": "string",
            "title": "Settlement Id"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "input_type": {
            "type": "string",
            "title": "Input Type"
          },
          "execution_mode": {
            "$ref": "#/components/schemas/CollectionExecutionMode"
          },
          "amount_usd": {
            "type": "string",
            "title": "Amount Usd"
          },
          "input_fee_usd": {
            "type": "string",
            "title": "Input Fee Usd"
          },
          "platform_fee_usd": {
            "type": "string",
            "title": "Platform Fee Usd"
          },
          "net_amount_usd": {
            "type": "string",
            "title": "Net Amount Usd"
          },
          "amount_local": {
            "type": "string",
            "title": "Amount Local"
          },
          "local_currency": {
            "type": "string",
            "title": "Local Currency"
          },
          "fx_rate": {
            "type": "string",
            "title": "Fx Rate"
          },
          "rate_lock_id": {
            "type": "string",
            "maxLength": 64,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9_-]+$",
            "title": "Rate Lock Id"
          },
          "rate_lock_expires_at": {
            "type": "string",
            "format": "date-time",
            "title": "Rate Lock Expires At"
          },
          "corridor": {
            "type": "string",
            "title": "Corridor"
          },
          "hold_until": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Hold Until"
          },
          "estimated_delivery": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Estimated Delivery"
          },
          "compliance_cert_id": {
            "type": "string",
            "title": "Compliance Cert Id"
          },
          "certificate_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Certificate Url"
          },
          "provider_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Provider Reference"
          },
          "wire_instructions": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Wire Instructions"
          },
          "message": {
            "type": "string",
            "title": "Message"
          }
        },
        "type": "object",
        "required": [
          "success",
          "settlement_id",
          "status",
          "input_type",
          "execution_mode",
          "amount_usd",
          "input_fee_usd",
          "platform_fee_usd",
          "net_amount_usd",
          "amount_local",
          "local_currency",
          "fx_rate",
          "rate_lock_id",
          "rate_lock_expires_at",
          "corridor",
          "compliance_cert_id",
          "message"
        ],
        "title": "SettleResponseV2",
        "description": "Universal settle response."
      },
      "SettlementChainExecution": {
        "properties": {
          "disposition": {
            "type": "string",
            "enum": [
              "confirmed",
              "reverted",
              "simulated",
              "mismatch"
            ],
            "title": "Disposition"
          },
          "tx_hash": {
            "type": "string",
            "pattern": "^0x[0-9a-f]{64}$",
            "title": "Tx Hash"
          },
          "chain_id": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 9007199254740991.0,
                "exclusiveMinimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Chain Id"
          },
          "transaction_target": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^0x[0-9a-f]{40}$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Transaction Target"
          },
          "token_contract": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^0x[0-9a-f]{40}$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Token Contract"
          },
          "controller_contract": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^0x[0-9a-f]{40}$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Controller Contract"
          },
          "amount_base_units": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^[1-9][0-9]{0,77}$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Amount Base Units"
          },
          "receipt_status": {
            "anyOf": [
              {
                "type": "integer",
                "enum": [
                  0,
                  1
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Receipt Status"
          },
          "block_number": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 9007199254740991.0,
                "exclusiveMinimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Block Number"
          },
          "block_hash": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^0x[0-9a-f]{64}$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Block Hash"
          },
          "transfer_log_index": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 255.0,
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Transfer Log Index"
          },
          "confirmations": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 10000.0,
                "exclusiveMinimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Confirmations"
          },
          "security_level": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "confirmations",
                  "safe",
                  "finalized"
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Security Level"
          },
          "security_head_number": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 9007199254740991.0,
                "exclusiveMinimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Security Head Number"
          },
          "security_head_hash": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^0x[0-9a-f]{64}$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Security Head Hash"
          },
          "evidence_sha256": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$",
            "title": "Evidence Sha256"
          },
          "block_timestamp": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Block Timestamp"
          },
          "observed_at": {
            "type": "string",
            "format": "date-time",
            "title": "Observed At"
          },
          "reason_code": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^[a-z][a-z0-9_]{0,63}$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reason Code"
          },
          "simulation_environment": {
            "anyOf": [
              {
                "type": "string",
                "const": "sandbox"
              },
              {
                "type": "null"
              }
            ],
            "title": "Simulation Environment"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "disposition",
          "tx_hash",
          "evidence_sha256",
          "observed_at"
        ],
        "title": "SettlementChainExecution",
        "description": "Secret-free projection of one strictly validated execution envelope."
      },
      "SettlementResponse": {
        "properties": {
          "settlement_id": {
            "type": "string",
            "title": "Settlement Id"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "corridor": {
            "type": "string",
            "title": "Corridor"
          },
          "amount_usdc": {
            "type": "string",
            "pattern": "^(?:0|[1-9][0-9]{0,11})\\.[0-9]{6}$",
            "title": "Amount Usdc",
            "description": "Exact canonical USDC amount with six decimal places"
          },
          "sender_org_id": {
            "type": "string",
            "title": "Sender Org Id"
          },
          "recipient_id": {
            "type": "string",
            "title": "Recipient Id"
          },
          "recipient_wallet": {
            "type": "string",
            "title": "Recipient Wallet"
          },
          "input_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Input Type"
          },
          "input_method": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Input Method"
          },
          "tx_hash": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^0x[0-9a-f]{64}$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tx Hash",
            "description": "Persisted transaction identity. This is unresolved unless chain_execution contains validated evidence."
          },
          "chain_execution": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SettlementChainExecution"
              },
              {
                "type": "null"
              }
            ],
            "description": "Validated execution/finality evidence, or null while a known transaction outcome remains unresolved."
          },
          "cert_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cert Id"
          },
          "fx_rate": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fx Rate"
          },
          "currency": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Currency"
          },
          "amount_local": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Amount Local"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "completed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "settlement_id",
          "status",
          "corridor",
          "amount_usdc",
          "sender_org_id",
          "recipient_id",
          "recipient_wallet",
          "created_at"
        ],
        "title": "SettlementResponse",
        "description": "Typed, org-scoped, integrity-checked view of a settlement row."
      },
      "StartVerificationRequest": {
        "properties": {
          "recipient_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Recipient Id"
          },
          "org_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Org Id"
          },
          "verification_type": {
            "type": "string",
            "enum": [
              "kyc",
              "kyb"
            ],
            "title": "Verification Type",
            "default": "kyc"
          },
          "document_type": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 32,
                "minLength": 1,
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Document Type"
          },
          "document_country": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2,
                "minLength": 2,
                "pattern": "^[A-Za-z]{2}$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Document Country"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "recipient_id",
          "org_id"
        ],
        "title": "StartVerificationRequest",
        "description": "Body for initiating KYC/KYB verification for a recipient."
      },
      "SyncInvoicesRequest": {
        "properties": {
          "org_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Org Id"
          },
          "invoices": {
            "items": {
              "$ref": "#/components/schemas/InvoiceSyncItem"
            },
            "type": "array",
            "maxItems": 500,
            "title": "Invoices"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "org_id",
          "invoices"
        ],
        "title": "SyncInvoicesRequest",
        "description": "Insert open invoices into the local simulation."
      },
      "TransferBody": {
        "properties": {
          "recipient_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 36,
            "title": "Recipient Id"
          },
          "quote_authorization_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 36,
            "pattern": "^cqa_[0-9a-f]{32}$",
            "title": "Quote Authorization Id"
          },
          "total_debit_usd": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "string"
              }
            ],
            "title": "Total Debit Usd",
            "decimal_places": 6,
            "ge": "0.01",
            "le": "10000.0",
            "max_digits": 11,
            "x-yembipay-max-input-characters": 64
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "recipient_id",
          "quote_authorization_id",
          "total_debit_usd"
        ],
        "title": "TransferBody"
      },
      "TransferRequest": {
        "properties": {
          "sender_org_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,35}$",
            "title": "Sender Org Id",
            "description": "Org initiating the payment"
          },
          "recipient_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,35}$",
            "title": "Recipient Id",
            "description": "Internal ID of the recipient/vendor"
          },
          "recipient_wallet": {
            "type": "string",
            "maxLength": 42,
            "minLength": 42,
            "pattern": "^0x[0-9a-fA-F]{40}$",
            "title": "Recipient Wallet",
            "description": "Destination wallet address (0x...)"
          },
          "amount_usdc": {
            "anyOf": [
              {
                "type": "number",
                "maximum": 100000.0,
                "exclusiveMinimum": 0.0
              },
              {
                "type": "string"
              }
            ],
            "title": "Amount Usdc",
            "description": "Amount in USDC",
            "x-yembipay-max-input-characters": 64
          },
          "travel_rule": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TravelRuleData"
              },
              {
                "type": "null"
              }
            ],
            "description": "Required for transfers >= $3,000 under the configured Travel Rule policy"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "sender_org_id",
          "recipient_id",
          "recipient_wallet",
          "amount_usdc"
        ],
        "title": "TransferRequest"
      },
      "TransferResponse": {
        "properties": {
          "contract_version": {
            "type": "string",
            "title": "Contract Version"
          },
          "id": {
            "type": "string",
            "title": "Id"
          },
          "recipient_id": {
            "type": "string",
            "title": "Recipient Id"
          },
          "corridor": {
            "type": "string",
            "title": "Corridor"
          },
          "total_debit_usd": {
            "type": "number",
            "title": "Total Debit Usd"
          },
          "fee_usd": {
            "type": "number",
            "title": "Fee Usd"
          },
          "net_send_usd": {
            "type": "number",
            "title": "Net Send Usd"
          },
          "fx_rate": {
            "type": "number",
            "title": "Fx Rate"
          },
          "recipient_amount": {
            "type": "number",
            "title": "Recipient Amount"
          },
          "recipient_currency": {
            "type": "string",
            "title": "Recipient Currency"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "settlement_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Settlement Id"
          },
          "created_at": {
            "type": "string",
            "title": "Created At"
          },
          "quote_authorization_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Quote Authorization Id"
          },
          "rate_source": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rate Source"
          },
          "rate_source_as_of": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rate Source As Of"
          },
          "rate_source_valid_until": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rate Source Valid Until"
          },
          "quote_issued_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Quote Issued At"
          },
          "expires_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          },
          "environment": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Environment"
          },
          "pricing_mode": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pricing Mode"
          },
          "is_simulation": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Simulation"
          }
        },
        "type": "object",
        "required": [
          "contract_version",
          "id",
          "recipient_id",
          "corridor",
          "total_debit_usd",
          "fee_usd",
          "net_send_usd",
          "fx_rate",
          "recipient_amount",
          "recipient_currency",
          "status",
          "settlement_id",
          "created_at",
          "quote_authorization_id",
          "rate_source",
          "rate_source_as_of",
          "rate_source_valid_until",
          "quote_issued_at",
          "expires_at",
          "environment",
          "pricing_mode",
          "is_simulation"
        ],
        "title": "TransferResponse"
      },
      "TravelRuleData": {
        "properties": {
          "amount_usdc": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "string"
              }
            ],
            "title": "Amount Usdc",
            "decimal_places": 6,
            "gt": 0,
            "le": "100000.000000",
            "max_digits": 12,
            "x-yembipay-max-input-characters": 64
          },
          "originator_name": {
            "type": "string",
            "maxLength": 256,
            "minLength": 1,
            "title": "Originator Name",
            "description": "Full legal name of the sending entity"
          },
          "originator_account": {
            "type": "string",
            "maxLength": 42,
            "minLength": 42,
            "pattern": "^0x[0-9a-fA-F]{40}$",
            "title": "Originator Account",
            "description": "Wallet address of the originator"
          },
          "originator_org_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,35}$",
            "title": "Originator Org Id",
            "description": "Internal org ID of the originator"
          },
          "originator_country": {
            "type": "string",
            "maxLength": 2,
            "minLength": 2,
            "pattern": "^[A-Z]{2}$",
            "title": "Originator Country",
            "description": "ISO 3166-1 alpha-2 country code"
          },
          "beneficiary_name": {
            "type": "string",
            "maxLength": 256,
            "minLength": 1,
            "title": "Beneficiary Name",
            "description": "Full legal name of the receiving entity/person"
          },
          "beneficiary_account": {
            "type": "string",
            "maxLength": 42,
            "minLength": 42,
            "pattern": "^0x[0-9a-fA-F]{40}$",
            "title": "Beneficiary Account",
            "description": "Wallet address of the beneficiary"
          },
          "beneficiary_country": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2,
                "minLength": 2,
                "pattern": "^[A-Z]{2}$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Beneficiary Country",
            "description": "ISO 3166-1 alpha-2"
          },
          "originating_vasp_id": {
            "type": "string",
            "maxLength": 64,
            "minLength": 1,
            "title": "Originating Vasp Id",
            "description": "DASP/VASP registration ID of the originating service"
          },
          "beneficiary_vasp_id": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 64,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Beneficiary Vasp Id",
            "description": "DASP/VASP registration ID of the beneficiary service"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "amount_usdc",
          "originator_name",
          "originator_account",
          "originator_org_id",
          "originator_country",
          "beneficiary_name",
          "beneficiary_account",
          "originating_vasp_id"
        ],
        "title": "TravelRuleData",
        "description": "IVMS101-style originator/beneficiary information.\n\nRequired for any USDC transfer >= $3,000 (FinCEN threshold)."
      },
      "TreasuryBalanceResponse": {
        "properties": {
          "org_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Org Id"
          },
          "available_balance": {
            "type": "string",
            "pattern": "^(?:0|[1-9][0-9]{0,63})\\.[0-9]{6}$",
            "title": "Available Balance"
          },
          "held_amount": {
            "type": "string",
            "pattern": "^(?:0|[1-9][0-9]{0,63})\\.[0-9]{6}$",
            "title": "Held Amount"
          },
          "total_deposited": {
            "type": "string",
            "pattern": "^(?:0|[1-9][0-9]{0,63})\\.[0-9]{6}$",
            "title": "Total Deposited"
          },
          "total_spent": {
            "type": "string",
            "pattern": "^(?:0|[1-9][0-9]{0,63})\\.[0-9]{6}$",
            "title": "Total Spent"
          },
          "total_fees": {
            "type": "string",
            "pattern": "^(?:0|[1-9][0-9]{0,63})\\.[0-9]{6}$",
            "title": "Total Fees"
          },
          "total_refunded": {
            "type": "string",
            "pattern": "^(?:0|[1-9][0-9]{0,63})\\.[0-9]{6}$",
            "title": "Total Refunded"
          },
          "total_rebates": {
            "type": "string",
            "pattern": "^(?:0|[1-9][0-9]{0,63})\\.[0-9]{6}$",
            "title": "Total Rebates"
          },
          "deposit_address": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 42,
                "minLength": 42,
                "pattern": "^0x[0-9a-fA-F]{40}$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Deposit Address"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "org_id",
          "available_balance",
          "held_amount",
          "total_deposited",
          "total_spent",
          "total_fees",
          "total_refunded",
          "total_rebates"
        ],
        "title": "TreasuryBalanceResponse"
      },
      "TreasuryFundsCheckResponse": {
        "properties": {
          "sufficient": {
            "type": "boolean",
            "title": "Sufficient"
          },
          "available": {
            "type": "string",
            "pattern": "^(?:0|[1-9][0-9]{0,63})\\.[0-9]{6}$",
            "title": "Available"
          },
          "required": {
            "type": "string",
            "pattern": "^(?:0|[1-9][0-9]{0,63})\\.[0-9]{6}$",
            "title": "Required"
          },
          "shortfall": {
            "type": "string",
            "pattern": "^(?:0|[1-9][0-9]{0,63})\\.[0-9]{6}$",
            "title": "Shortfall"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "sufficient",
          "available",
          "required",
          "shortfall"
        ],
        "title": "TreasuryFundsCheckResponse"
      },
      "TreasuryTransactionListResponse": {
        "properties": {
          "org_id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Org Id"
          },
          "count": {
            "type": "integer",
            "maximum": 200.0,
            "minimum": 0.0,
            "title": "Count"
          },
          "transactions": {
            "items": {
              "$ref": "#/components/schemas/TreasuryTransactionResponse"
            },
            "type": "array",
            "maxItems": 200,
            "title": "Transactions"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "org_id",
          "count",
          "transactions"
        ],
        "title": "TreasuryTransactionListResponse"
      },
      "TreasuryTransactionResponse": {
        "properties": {
          "id": {
            "type": "string",
            "maxLength": 36,
            "minLength": 1,
            "title": "Id"
          },
          "type": {
            "type": "string",
            "title": "Type"
          },
          "amount_usdc": {
            "type": "string",
            "pattern": "^(?:0|[1-9][0-9]{0,63})\\.[0-9]{6}$",
            "title": "Amount Usdc"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "reference_id": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 64
              },
              {
                "type": "null"
              }
            ],
            "title": "Reference Id"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "balance_after": {
            "type": "string",
            "pattern": "^(?:0|[1-9][0-9]{0,63})\\.[0-9]{6}$",
            "title": "Balance After"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "type",
          "amount_usdc",
          "status",
          "description",
          "balance_after",
          "created_at"
        ],
        "title": "TreasuryTransactionResponse"
      },
      "UpdatePayrollScheduleRequest": {
        "properties": {
          "name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 128,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "frequency": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "weekly",
                  "biweekly",
                  "monthly",
                  "custom"
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Frequency"
          },
          "day_value": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 28.0,
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Day Value"
          },
          "payment_template": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/BatchPaymentItem"
                },
                "type": "array",
                "maxItems": 500,
                "minItems": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Payment Template"
          },
          "is_active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Active"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "title": "UpdatePayrollScheduleRequest",
        "description": "Update mutable fields of a payroll schedule. All fields optional \u2014\nonly the fields provided are applied."
      },
      "UpdateRecipientRequest": {
        "properties": {
          "legal_name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 256,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Legal Name"
          },
          "email": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 256,
                "minLength": 3,
                "pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email"
          },
          "country_code": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2,
                "minLength": 2,
                "pattern": "^[A-Za-z]{2}$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Country Code"
          },
          "payout_method": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "usdc_wallet",
                  "local_bank",
                  "mobile_money"
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Payout Method"
          },
          "wallet_address": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 42,
                "minLength": 42,
                "pattern": "^0x[0-9a-fA-F]{40}$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Wallet Address"
          },
          "bank_name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 256
              },
              {
                "type": "null"
              }
            ],
            "title": "Bank Name"
          },
          "bank_account_number": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 64
              },
              {
                "type": "null"
              }
            ],
            "title": "Bank Account Number"
          },
          "bank_routing_code": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 64
              },
              {
                "type": "null"
              }
            ],
            "title": "Bank Routing Code"
          },
          "bank_currency": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 3,
                "minLength": 3,
                "pattern": "^[A-Za-z]{3}$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bank Currency"
          },
          "mobile_provider": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 64
              },
              {
                "type": "null"
              }
            ],
            "title": "Mobile Provider"
          },
          "mobile_number": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 32
              },
              {
                "type": "null"
              }
            ],
            "title": "Mobile Number"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "title": "UpdateRecipientRequest",
        "description": "Mutable recipient fields. All optional \u2014 only provided fields are applied."
      },
      "UpdateRoleRequest": {
        "properties": {
          "role": {
            "$ref": "#/components/schemas/UserRole"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "role"
        ],
        "title": "UpdateRoleRequest"
      },
      "UpdateWebhookRequest": {
        "properties": {
          "url": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 512,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Url",
            "description": "New endpoint URL"
          },
          "is_active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Active",
            "description": "Set false to pause, true to resume"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "title": "UpdateWebhookRequest"
      },
      "UserRole": {
        "type": "string",
        "enum": [
          "owner",
          "admin",
          "finance",
          "compliance",
          "viewer"
        ],
        "title": "UserRole"
      },
      "ValidationError": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          },
          "input": {
            "title": "Input"
          },
          "ctx": {
            "type": "object",
            "title": "Context"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "VelocityLimitResponse": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "org_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Org Id"
          },
          "recipient_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recipient Id"
          },
          "max_daily_usdc": {
            "type": "string",
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{6}$",
            "title": "Max Daily Usdc",
            "description": "Exact USDC decimal string with six fractional digits",
            "examples": [
              "1250.000001"
            ]
          },
          "max_weekly_usdc": {
            "type": "string",
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{6}$",
            "title": "Max Weekly Usdc",
            "description": "Exact USDC decimal string with six fractional digits",
            "examples": [
              "1250.000001"
            ]
          },
          "max_monthly_usdc": {
            "type": "string",
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{6}$",
            "title": "Max Monthly Usdc",
            "description": "Exact USDC decimal string with six fractional digits",
            "examples": [
              "1250.000001"
            ]
          },
          "max_daily_count": {
            "type": "integer",
            "maximum": 10000.0,
            "minimum": 1.0,
            "title": "Max Daily Count"
          },
          "max_single_usdc": {
            "type": "string",
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{6}$",
            "title": "Max Single Usdc",
            "description": "Exact USDC decimal string with six fractional digits",
            "examples": [
              "1250.000001"
            ]
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "org_id",
          "recipient_id",
          "max_daily_usdc",
          "max_weekly_usdc",
          "max_monthly_usdc",
          "max_daily_count",
          "max_single_usdc"
        ],
        "title": "VelocityLimitResponse"
      },
      "VerifyOTPBody": {
        "properties": {
          "phone": {
            "type": "string",
            "maxLength": 64,
            "minLength": 8,
            "title": "Phone"
          },
          "code": {
            "type": "string",
            "maxLength": 6,
            "minLength": 6,
            "pattern": "^[0-9]{6}$",
            "title": "Code"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "phone",
          "code"
        ],
        "title": "VerifyOTPBody"
      },
      "WalletResponse": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "org_id": {
            "type": "string",
            "title": "Org Id"
          },
          "wallet_address": {
            "type": "string",
            "title": "Wallet Address"
          },
          "label": {
            "type": "string",
            "title": "Label"
          },
          "signer_addresses": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Signer Addresses"
          },
          "required_signatures": {
            "type": "integer",
            "title": "Required Signatures"
          },
          "is_active": {
            "type": "boolean",
            "title": "Is Active"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "org_id",
          "wallet_address",
          "label",
          "signer_addresses",
          "required_signatures",
          "is_active",
          "created_at"
        ],
        "title": "WalletResponse"
      },
      "WebhookCreateResponse": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "org_id": {
            "type": "string",
            "title": "Org Id"
          },
          "url": {
            "type": "string",
            "title": "Url"
          },
          "is_active": {
            "type": "boolean",
            "title": "Is Active"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "secret": {
            "type": "string",
            "title": "Secret"
          }
        },
        "type": "object",
        "required": [
          "id",
          "org_id",
          "url",
          "is_active",
          "created_at",
          "secret"
        ],
        "title": "WebhookCreateResponse"
      },
      "WebhookResponse": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "org_id": {
            "type": "string",
            "title": "Org Id"
          },
          "url": {
            "type": "string",
            "title": "Url"
          },
          "is_active": {
            "type": "boolean",
            "title": "Is Active"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "org_id",
          "url",
          "is_active",
          "created_at"
        ],
        "title": "WebhookResponse"
      },
      "app__api__consumer__routes__RecipientResponse": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "full_name": {
            "type": "string",
            "title": "Full Name"
          },
          "country_code": {
            "type": "string",
            "title": "Country Code"
          },
          "bank_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bank Code"
          },
          "relationship": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Relationship"
          }
        },
        "type": "object",
        "required": [
          "id",
          "full_name",
          "country_code",
          "bank_code",
          "relationship"
        ],
        "title": "RecipientResponse"
      },
      "app__schemas__recipient__RecipientResponse": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "org_id": {
            "type": "string",
            "title": "Org Id"
          },
          "legal_name": {
            "type": "string",
            "title": "Legal Name"
          },
          "email": {
            "type": "string",
            "title": "Email"
          },
          "country_code": {
            "type": "string",
            "title": "Country Code"
          },
          "payout_method": {
            "type": "string",
            "title": "Payout Method"
          },
          "wallet_address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Wallet Address"
          },
          "bank_currency": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bank Currency"
          },
          "is_verified": {
            "type": "boolean",
            "title": "Is Verified"
          },
          "is_active": {
            "type": "boolean",
            "title": "Is Active"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "org_id",
          "legal_name",
          "email",
          "country_code",
          "payout_method",
          "wallet_address",
          "bank_currency",
          "is_verified",
          "is_active",
          "created_at"
        ],
        "title": "RecipientResponse"
      }
    },
    "securitySchemes": {
      "APIKeyHeader": {
        "type": "apiKey",
        "in": "header",
        "name": "X-API-Key"
      }
    }
  }
}