Attensira never pays for a placement
No agent pays a site, a list owner or a creator on your behalf, and Attensira never holds or moves the money for a placement. When you agree a fee with a site, you pay the site directly, the way you pay any supplier. That is why the spend breakdown by kind (by_kind in get_costs and GET /v1/costs) still reads 0 for paid_placement: none of your Attensira budget is spent on it.
What we do keep is the record: the price you agreed, the budget line it is paid from, the disclosure the site agreed to, and whether the page actually shows it.
A fee you agree becomes a placement
On an outreach thread, a reply that asks for a fee becomes a drafted answer or a decision card (see Outreach rules). When you say Yes to the site’s price, signed in to Attensira, the answer goes out from your mailbox and the placement is recorded:- A Change in the outreach lane. It carries the price, the outreach budget line it is paid from, and the disclosure term written into the answer you sent. It is classed as irreversible, because it commits your money, so only a person moves it. Approving it publishes nothing: it tells you to pay the site, confirm the payment and record the page it is live on.
- The disclosure term. Every answer that agrees a fee asks for the same two things, in these words: Please put a visible “Sponsored” label next to the link and add rel=“sponsored” to the link itself.
- A counter is not an agreement. If you counter instead, nothing is recorded until the site accepts. When it does, record the placement on the thread in the app at the agreed price.
The outreach budget line
Paid placements are paid from one line: the outreach lane’s budget line, a monthly amount in dollars.- You set it, in the app. An agent or an API key can only propose a new amount, with
POST /v1/placement-budget/proposalsandlane: outreach; nothing changes until you set the line yourself, and a direct write from a key is refused withscope_denied. That route is not served yet: today it answers404. - It moves only when you confirm a payment. Agreeing a price, the page going live and the disclosure being verified do not move it. When you have paid the site, open the placement in the app and confirm the payment. That confirmation is what moves the line, it can only come from a signed-in person, and confirming twice counts once.
- What it shows. For the current month (UTC): the line, what you confirmed paying, what is left, and what is agreed but not yet paid. A price agreed above what is left is still recorded, and the placement says it was over the line.
We read the page before it counts
A paid placement counts as a receipt only once we have read the live page and found the disclosure on it. Both halves have to be there, on the link to your domain:rel="sponsored"on the link.nofollowalone is not enough.- A visible label next to it. “Sponsored”, “Paid partnership”, “Advertisement”, “Promoted” or similar, close to the link in its own paragraph or block, or as a short label line right before or after that block. A label somewhere else on the page (a menu’s “Become a sponsor”, a footer’s “Sponsored posts policy”) does not count, and neither does a negated one (“not a sponsored post”). A label hidden from readers with the
hiddenattribute,aria-hiddenor an inline style such asdisplay: nonedoes not count either.
GET /v1/changes), titled as a sponsored placement, so you can see it waiting, but it links no receipt: reading its receipt (GET /v1/receipts/{id}) answers 409 state_conflict and points you to the placement, where the last check of the page says what it found. It is also left out of the receipts list. A page we could not read proves nothing either way, and says so; so does a page that redirects off the site the fee was agreed with. Once verified, we read the page again every week; if the label comes down, the placement stops counting until it is back.
Tell us where the placement is live by recording the page on the placement (in the app, or POST /v1/placements/{id}/page, once those routes are served). The page must be on the site the fee was agreed with. We read it at once.
When the disclosure is missing
- We ask the site. The first read that finds the disclosure missing drafts a short note on the same thread, from your own mailbox, asking for the agreed label and
rel="sponsored". Like every thread message, it goes out when you say Send. It is never sent through Attensira’s own mail. - We keep reading. The page is read again every day.
- After seven days it is your step. If the disclosure is still missing seven days after we first found it missing, a step in your Inbox says what we found and gives you the words to send. If the thread has stopped (the site opted out or said no), the step comes at once.
- It closes itself. When a later read finds the disclosure, the placement is verified, the step closes and any request still waiting is withdrawn.
API and MCP
None of these REST routes is served yet: each answers
404 on webapp.attensira.com and on api.attensira.com until it is switched on. A placement’s receipt field is true only once its disclosure is verified, and payer is always customer.
Sites that list only for a fee are labelled
When a site that decides your answers is one we know lists products only for a fee, the agent says so instead of treating it as an editor to pitch:- In a plan or an answer about where to get listed, it shows as Paid placement on the site, not Get listed on, with the note not a free listing.
- It is never counted as a rival’s own list, and the plan does not tell you to find its editor, because no editor there can choose to include you for free.
If you pay for a placement, disclose it
A placement that was paid for, in money, a free account, a discount or anything else of value, must say so where the reader sees it. That is the FTC’s Endorsement Guides in the US, and the same rule in most other markets (for example the CAP Code in the UK and the EU’s Unfair Commercial Practices Directive). In practice:- A sponsored list or article says it is sponsored, near the top, in words a reader will notice (“Sponsored”, “Paid partnership”), not only in a footer.
- A link you paid for carries
rel="sponsored", which is also what Google asks for. - A creator you pay says so in the post itself, in the platform’s paid-partnership label where there is one.
Where disclosure is enforced in what the agent drafts
- Community replies. A reply the agent drafts that names your product must carry a plain disclosure line, such as “Disclosure: I work on Acme”. A draft without one is refused before it is filed. The agent drafts the reply; you post it from your own account. See Community answers.
- Your guardrails. A rule you write for every draft, such as “always disclose that we make the product”, holds every article, page fix, email, community reply and social post the agents write. See Guardrails.