# Overview

> What SalesDogg is, how it is put together, and where to start.

SalesDogg is a subscription and in-app purchase backend. It sits between your product and the places people pay you (Stripe, Braintree, the App Store and Google Play) and answers one question reliably: **what does this user have access to right now?** Every provider is normalized into one model, one event stream and one API.

Everything a person can do, an agent can do. The REST API, the CLI and the MCP server are generated from the same OpenAPI document, output is JSON, and every error carries a `hint` saying what to do next.

## Start here

- [Getting started](/docs/getting-started): sign in, create a project, check access in five commands.
- [Set up with your agent](/agents): one prompt for Claude Code, Codex, Cursor and other agents, plus MCP setup for each.
- [Connect payment providers](/docs/payments): Stripe, Braintree, App Store and Google Play.
- [API reference](/docs/api): every endpoint with its CLI command and MCP tool.

## How it fits together

```
provider notification ──► verify + translate ──► compare with stored state ──► events ──► your webhooks
  (or a receipt from your app)                     (renewal? billing issue?)
                                                            │
                                    access check ◄── entitlements of active subscriptions
```

Store notifications and receipts become provider-neutral snapshots. SalesDogg compares each snapshot with what it already knows to decide what happened (an initial purchase, a renewal, a billing issue, a cancellation), records an event and sends it to your webhook endpoints. A renewal only counts once it is paid, so a declined renewal is a billing issue and never a renewal.

## For language models

This documentation is available as markdown: add `.md` to any page address, read [/llms.txt](/llms.txt) for an index, or [/llms-full.txt](/llms-full.txt) for everything in one file. The machine-readable API description is [/openapi.json](/openapi.json).
