KosmoKrator

data

Venmo Lua API for KosmoKrator Agents

Agent-facing Lua documentation and function reference for the Venmo KosmoKrator integration.

Lua Namespace

Agents call this integration through app.integrations.venmo.*. Use lua_read_doc("integrations.venmo") inside KosmoKrator to discover the same reference at runtime.

Call Lua from the Headless CLI

Use kosmo integrations:lua when a shell script, CI job, cron job, or another coding CLI should run a deterministic Venmo workflow without starting an interactive agent session.

Inline Lua call
kosmo integrations:lua --eval 'dump(app.integrations.venmo.list_payments({limit = 1, offset = 1, after = "example_after", before = "example_before"}))' --json
Read Lua docs headlessly
kosmo integrations:lua --eval 'print(docs.read("venmo"))' --json
kosmo integrations:lua --eval 'print(docs.read("venmo.list_payments"))' --json

Workflow file

Put repeatable logic in a Lua file, then execute it with JSON output for the calling process.

workflow.lua
local venmo = app.integrations.venmo
local result = venmo.list_payments({limit = 1, offset = 1, after = "example_after", before = "example_before"})

dump(result)
Run the workflow
kosmo integrations:lua workflow.lua --json
kosmo integrations:lua workflow.lua --force --json
Namespace note. integrations:lua exposes app.integrations.venmo, app.mcp.*, docs.*, json.*, and regex.*. Use app.integrations.venmo.default.* or app.integrations.venmo.work.* when you configured named credential accounts.

MCP-only Lua

If the script only needs configured MCP servers and does not need Venmo, use the narrower mcp:lua command.

MCP Lua command
# Use mcp:lua for MCP-only scripts; use integrations:lua for this integration namespace.
kosmo mcp:lua --eval 'dump(mcp.servers())' --json

Agent-Facing Lua Docs

This is the rendered version of the full Lua documentation exposed to agents when they inspect the integration namespace.

Venmo — Lua API Reference

Availability

This package targets the legacy Venmo Developer API at https://api.venmo.com/v1.

Venmo states that its Developer and Payouts APIs have been retired for new businesses. Existing businesses that were granted access in the past, generally before 2016, may retain access. New integrations should usually use PayPal Payouts to Venmo for payouts, or PayPal/Braintree Venmo checkout for purchase flows.

Authentication

Configure a legacy Venmo access_token. The token is sent as Authorization: Bearer <token>.

Do not expect this package to provide a new OAuth enrollment flow. Token acquisition is only available to already-approved legacy API users.

Payments

app.integrations.venmo.list_payments(...)

List payments for the authenticated legacy API account.

local result = app.integrations.venmo.list_payments({
    limit = 20,
    offset = 0,
})

Optional filters: limit, offset, after, and before.

app.integrations.venmo.get_payment(...)

Retrieve a legacy Venmo payment by ID.

local payment = app.integrations.venmo.get_payment({
    id = "1234567890",
})

app.integrations.venmo.create_payment(...)

Create a payment through a grandfathered Venmo Developer API token.

local payment = app.integrations.venmo.create_payment({
    amount = 25.00,
    user_id = "1234567890",
    note = "Dinner",
    audience = "private",
})

Audience values: private, friends, and public.

Users

app.integrations.venmo.list_users(...)

Search users by username, email, or phone number.

local result = app.integrations.venmo.list_users({
    query = "janesmith",
    limit = 10,
})

app.integrations.venmo.get_user(...)

Retrieve a user by ID.

local user = app.integrations.venmo.get_user({
    id = "1234567890",
})

Transactions

app.integrations.venmo.list_transactions(...)

List transactions with optional filtering.

local result = app.integrations.venmo.list_transactions({
    action = "pay",
    limit = 20,
})

Optional filters: limit, offset, after, before, and action.

Current User

app.integrations.venmo.get_current_user(...)

Get the authenticated legacy API user’s profile.

local me = app.integrations.venmo.get_current_user({})

Notes

  • Amounts are represented as dollar values by the legacy API.
  • The legacy API uses offset-based pagination.
  • This package intentionally documents the retired-access status. Treat failed setup for new Venmo accounts as expected vendor behavior, not a host bug.
  • For new payout use cases, evaluate PayPal Payouts to Venmo instead of this package.

Multi-Account Usage

app.integrations.venmo.list_payments({})
app.integrations.venmo.default.list_payments({})
app.integrations.venmo.legacy.list_payments({})

All functions are identical across accounts; only stored credentials differ.

Raw agent markdown
# Venmo — Lua API Reference

## Availability

This package targets the legacy Venmo Developer API at `https://api.venmo.com/v1`.

Venmo states that its Developer and Payouts APIs have been retired for new businesses. Existing businesses that were granted access in the past, generally before 2016, may retain access. New integrations should usually use PayPal Payouts to Venmo for payouts, or PayPal/Braintree Venmo checkout for purchase flows.

## Authentication

Configure a legacy Venmo `access_token`. The token is sent as `Authorization: Bearer <token>`.

Do not expect this package to provide a new OAuth enrollment flow. Token acquisition is only available to already-approved legacy API users.

## Payments

### `app.integrations.venmo.list_payments(...)`

List payments for the authenticated legacy API account.

```lua
local result = app.integrations.venmo.list_payments({
    limit = 20,
    offset = 0,
})
```

Optional filters: `limit`, `offset`, `after`, and `before`.

### `app.integrations.venmo.get_payment(...)`

Retrieve a legacy Venmo payment by ID.

```lua
local payment = app.integrations.venmo.get_payment({
    id = "1234567890",
})
```

### `app.integrations.venmo.create_payment(...)`

Create a payment through a grandfathered Venmo Developer API token.

```lua
local payment = app.integrations.venmo.create_payment({
    amount = 25.00,
    user_id = "1234567890",
    note = "Dinner",
    audience = "private",
})
```

Audience values: `private`, `friends`, and `public`.

## Users

### `app.integrations.venmo.list_users(...)`

Search users by username, email, or phone number.

```lua
local result = app.integrations.venmo.list_users({
    query = "janesmith",
    limit = 10,
})
```

### `app.integrations.venmo.get_user(...)`

Retrieve a user by ID.

```lua
local user = app.integrations.venmo.get_user({
    id = "1234567890",
})
```

## Transactions

### `app.integrations.venmo.list_transactions(...)`

List transactions with optional filtering.

```lua
local result = app.integrations.venmo.list_transactions({
    action = "pay",
    limit = 20,
})
```

Optional filters: `limit`, `offset`, `after`, `before`, and `action`.

## Current User

### `app.integrations.venmo.get_current_user(...)`

Get the authenticated legacy API user's profile.

```lua
local me = app.integrations.venmo.get_current_user({})
```

## Notes

- Amounts are represented as dollar values by the legacy API.
- The legacy API uses offset-based pagination.
- This package intentionally documents the retired-access status. Treat failed setup for new Venmo accounts as expected vendor behavior, not a host bug.
- For new payout use cases, evaluate PayPal Payouts to Venmo instead of this package.

## Multi-Account Usage

```lua
app.integrations.venmo.list_payments({})
app.integrations.venmo.default.list_payments({})
app.integrations.venmo.legacy.list_payments({})
```

All functions are identical across accounts; only stored credentials differ.
Metadata-derived Lua example
local result = app.integrations.venmo.list_payments({limit = 1, offset = 1, after = "example_after", before = "example_before"})
print(result)

Functions

list_payments Read

List Venmo payments with optional filtering. Supports pagination with limit and offset parameters.

Lua path
app.integrations.venmo.list_payments
Full name
venmo.venmo_list_payments
ParameterTypeRequiredDescription
limit integer no Number of payments to return (default 20).
offset integer no Offset for pagination.
after string no Only return payments after this timestamp (ISO 8601).
before string no Only return payments before this timestamp (ISO 8601).
get_payment Read

Retrieve a Venmo payment by ID. Returns full payment details including amount, status, note, sender, and recipient.

Lua path
app.integrations.venmo.get_payment
Full name
venmo.venmo_get_payment
ParameterTypeRequiredDescription
id string yes Venmo payment ID.
create_payment Write

Create a Venmo payment. Specify amount, recipient user ID, an optional note, and audience visibility.

Lua path
app.integrations.venmo.create_payment
Full name
venmo.venmo_create_payment
ParameterTypeRequiredDescription
amount number yes Payment amount in dollars (e.g., 25.00).
user_id string yes Recipient Venmo user ID.
note string yes Payment note or description.
audience string no Visibility: "private", "friends", or "public". Default: "friends".
list_users Read

List Venmo users with optional filtering. Supports search by username, email, or phone and pagination.

Lua path
app.integrations.venmo.list_users
Full name
venmo.venmo_list_users
ParameterTypeRequiredDescription
query string no Search query — username, email, or phone number.
limit integer no Number of users to return (default 20).
offset integer no Offset for pagination.
get_user Read

Retrieve a Venmo user by ID. Returns user profile details including username, display name, and profile picture.

Lua path
app.integrations.venmo.get_user
Full name
venmo.venmo_get_user
ParameterTypeRequiredDescription
id string yes Venmo user ID.
list_transactions Read

List Venmo transactions with optional filtering. Supports filtering by date range, action type, and pagination.

Lua path
app.integrations.venmo.list_transactions
Full name
venmo.venmo_list_transactions
ParameterTypeRequiredDescription
limit integer no Number of transactions to return (default 20).
offset integer no Offset for pagination.
after string no Only return transactions after this timestamp (ISO 8601).
before string no Only return transactions before this timestamp (ISO 8601).
action string no Filter by action type: "pay" or "charge".
get_current_user Read

Get the currently authenticated Venmo user. Returns the authenticated user's full profile including balance and account details.

Lua path
app.integrations.venmo.get_current_user
Full name
venmo.venmo_get_current_user
ParameterTypeRequiredDescription
No parameters.