# Investments

## POST /create-investment

> Create an investment

```json
{"openapi":"3.0.3","info":{"title":"Investhub API","version":"1.0.0"},"servers":[{"url":"https://{project}.supabase.co/functions/v1","variables":{"project":{"default":"your-project-ref","description":"Supabase project reference"}}}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Privy access token"}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}},"paths":{"/create-investment":{"post":{"operationId":"create_investment","summary":"Create an investment","tags":["Investments"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"See Edge Function source for exact request shape (e.g. interface XxxRequest in index.ts)"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## POST /pay-investment

> Complete payment for an investment

```json
{"openapi":"3.0.3","info":{"title":"Investhub API","version":"1.0.0"},"servers":[{"url":"https://{project}.supabase.co/functions/v1","variables":{"project":{"default":"your-project-ref","description":"Supabase project reference"}}}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Privy access token"}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}},"paths":{"/pay-investment":{"post":{"operationId":"pay_investment","summary":"Complete payment for an investment","tags":["Investments"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"See Edge Function source for exact request shape (e.g. interface XxxRequest in index.ts)"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## POST /process-crypto-payment

> Process crypto payment (e.g. MetaMask)

```json
{"openapi":"3.0.3","info":{"title":"Investhub API","version":"1.0.0"},"servers":[{"url":"https://{project}.supabase.co/functions/v1","variables":{"project":{"default":"your-project-ref","description":"Supabase project reference"}}}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Privy access token"}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}},"paths":{"/process-crypto-payment":{"post":{"operationId":"process_crypto_payment","summary":"Process crypto payment (e.g. MetaMask)","tags":["Investments"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"See Edge Function source for exact request shape (e.g. interface XxxRequest in index.ts)"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## POST /process-metamask-payment

> Process MetaMask payment

```json
{"openapi":"3.0.3","info":{"title":"Investhub API","version":"1.0.0"},"servers":[{"url":"https://{project}.supabase.co/functions/v1","variables":{"project":{"default":"your-project-ref","description":"Supabase project reference"}}}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Privy access token"}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}},"paths":{"/process-metamask-payment":{"post":{"operationId":"process_metamask_payment","summary":"Process MetaMask payment","tags":["Investments"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"See Edge Function source for exact request shape (e.g. interface XxxRequest in index.ts)"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## POST /sponsored-transaction

> Request sponsored (gasless) tx; returns 402 if insufficient credits

```json
{"openapi":"3.0.3","info":{"title":"Investhub API","version":"1.0.0"},"servers":[{"url":"https://{project}.supabase.co/functions/v1","variables":{"project":{"default":"your-project-ref","description":"Supabase project reference"}}}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Privy access token"}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}},"paths":{"/sponsored-transaction":{"post":{"operationId":"sponsored_transaction","summary":"Request sponsored (gasless) tx; returns 402 if insufficient credits","tags":["Investments"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"See Edge Function source for exact request shape (e.g. interface XxxRequest in index.ts)"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required (insufficient sponsorship credits)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## POST /get-user-investments

> List investments for the current user

```json
{"openapi":"3.0.3","info":{"title":"Investhub API","version":"1.0.0"},"servers":[{"url":"https://{project}.supabase.co/functions/v1","variables":{"project":{"default":"your-project-ref","description":"Supabase project reference"}}}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Privy access token"}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}},"paths":{"/get-user-investments":{"post":{"operationId":"get_user_investments","summary":"List investments for the current user","tags":["Investments"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"See Edge Function source for exact request shape (e.g. interface XxxRequest in index.ts)"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## POST /create-commitment

> Create commitment (guest flow)

```json
{"openapi":"3.0.3","info":{"title":"Investhub API","version":"1.0.0"},"servers":[{"url":"https://{project}.supabase.co/functions/v1","variables":{"project":{"default":"your-project-ref","description":"Supabase project reference"}}}],"security":[],"paths":{"/create-commitment":{"post":{"operationId":"create_commitment","summary":"Create commitment (guest flow)","tags":["Investments"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"See Edge Function source for exact request shape (e.g. interface XxxRequest in index.ts)"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"Error":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}
```

## POST /sync-tenant-investment

> Sync tenant investment data

```json
{"openapi":"3.0.3","info":{"title":"Investhub API","version":"1.0.0"},"servers":[{"url":"https://{project}.supabase.co/functions/v1","variables":{"project":{"default":"your-project-ref","description":"Supabase project reference"}}}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Privy access token"}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}},"paths":{"/sync-tenant-investment":{"post":{"operationId":"sync_tenant_investment","summary":"Sync tenant investment data","tags":["Investments"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"See Edge Function source for exact request shape (e.g. interface XxxRequest in index.ts)"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```
