FindPet Finance

Sign in to continue

Two-factor authentication

This account needs an authenticator app (Google Authenticator, 1Password, Authy…). It is required for every sign-in.

  1. In the app, add an account with this setup key: Open in app
  2. Enter the 6-digit code the app shows.

Enter the 6-digit code from your authenticator app.

Choose your password

You signed in with a temporary password. Pick your own — at least 12 characters.

FFindPet FINANCE
◫Overview ▤Invoices ▦Stores ▥Registrations & revenue ◴Billing runs ⚙Settings ♙Users ☷Audit log ?Help · EN/RU
FindPet Finance
TEST MODE Sending: …
Service period · New York time The month the registrations happened (New York time) — not the date an invoice was sent or paid.

Overview

What needs doing, and where the month stands. Each number says what it covers: the service month, or every month together.

Billing runInvoices
Nobody is billed

Service month

All periods

Work queue

How the app is set

Invoices

Every invoice of the service month, what to do with it, and what needs a person. Creating and sending a whole month is on Billing runs.

Billing runs

Needs attention

WhenWhat

Invoices

OrganizationStatusPaymentRegistrationsAmountStripePDF

Made by hand in Stripe — without a month, or sharing a month with an invoice of ours

An open invoice made in the Stripe Dashboard for a shop we bill is found every morning (or now: Find) and followed like ours — reminders, overdue, debtors. Its month is read from the memo (“May 2026”); if it can't be, set it here. The app never rebuilds such an invoice: change it in Stripe, or Void it.

OrganizationStatusAmountStripeMonth

Bank accounts with a failed ACH payment — billed at the standard rate until the mark is cleared

AccountWhyStatus

Stores

The shops we bill (the billing group, Settings): the service month's registrations and invoice, and what each owes now across all months.

Owed now is every invoice that went out and is not paid, all months together — ours and those made by hand in Stripe; drafts not sent yet are not counted. Past due counts days from the oldest unpaid invoice's due date: the shop is warned at 15 days and its deactivation is recommended at 30 (Settings → Debtors). History shows a shop month by month.

Nobody is billed

ShopRegistrationsInvoice for the monthPaidOwed nowPast due

Registrations & revenue

A pet transferred to a buyer is billed once per month to the organization that transferred it. Only the billing group is billed (Settings). Free: cancelled transfers, and re-transfers within 90 days of a transfer in an earlier month. Old script is what the previous counting script would have billed — Details show why each pet differs.

Nobody is billed Settings

In billing

OrganizationStripe customerTo billOld scriptPrice ACH / standardAmount ACH / standardCancelledFree re-transfers

Taken out of billing — in the group, not billed

OrganizationNoteWould billTransfers

Outside the billing group, with a billing profile — not billed

Saved before the group rule, or the organization's token changed. Unlink the Stripe customer here if another organization should pay with it.

OrganizationStripe customerNote

Billing runs

Invoice a service month: preview what would be created, create the drafts in Stripe, then send them. Running it twice never makes a second invoice for the same shop and month.

Preview — what Create drafts would make; nothing is written

OrganizationPaymentRegistrationsAmountNotes

Settings

Everyone sees these; only the owner changes them. Turning on something that acts by itself asks for a reason; turning it off is one click.

Billing group

Only organizations that share one API token are billed — the chain of Findpet shops. Shelters, test accounts and partners with a token of their own are never billed; a new shop added with the group's token is billed automatically. Tokens are never shown: a group is named by a short fingerprint of its token.

Only the owner can change this.

Invoice sending

What happens after the monthly run has created an invoice in Stripe.

Manual (default)
Invoices are created in Stripe as drafts. Nothing is emailed and nothing is charged until someone presses Send.
Automatic
Once an invoice's amount check passes, the app finalizes it and emails it or charges the saved payment method by itself.

Only the owner can change this.

Slack and reminders

Alerts go to the Stripe Invoices Slack channel at once, a summary every day at 07:00 New York. While invoicing runs in Stripe test mode every message is marked [TEST].

Slack

Loading…

Reminders to shops

Stripe re-sends each open invoice paid by e-mail (sent at least 7 days ago, not paused for its shop) on the reminder days at 06:00 New York.

Only the owner can change these.

Debtors

Counted from the due date of the organization's oldest unpaid invoice (ours or made by hand in Stripe). At the first limit the shop is warned: a banner on findpet.com says new pet transfers and registrations may be paused, and an alert goes to Slack. At the second, deactivation is recommended (an alert). Deactivating is always done by a person (Stores → the shop → Deactivate).

Warnings to shops

When a shop reaches a level, Stripe at once re-sends its past-due invoices (those paid by e-mail) — once per invoice and level. And while it stays at a level, each invoice you send to that shop carries a dated notice at the top: “PAST DUE … new pet transfers and registrations may be paused”. It is written when you press Send, from what Stripe shows at that moment (paid meanwhile — no notice). Shops with reminders paused get neither. (An invoice that has gone out cannot be changed in Stripe, so the notice is only in new ones.)

Only the owner can change these.

Prices

Per billable registration. The ACH Direct Debit price is a discount for paying by bank debit; the standard price is always the ACH price × 1.03. A shop's contract price or discount is set on Registrations & revenue (Pricing).

History

FromStandardACHACH failure feeSet byReason

New prices from a date

Only the owner can change prices.

Users

Who can sign in, with which role, and whether their 2FA is set up. Every sign-in needs the password and a code; a session ends after 60 minutes without activity.

UsernameRoleStatus2FACreated

Audit log

Every sign-in, view, change and Stripe action: who, when, the target and the reason given.

TimeUserActionTargetIPDetails

FindPet Finance — user guide

How to bill the pet shops every month, follow their payments, handle failed payments and debtors — step by step, with no technical knowledge needed.

Test mode. Right now every invoice is created in Stripe test mode: nobody is e-mailed or charged, and Slack messages start with [TEST]. Everything below works the same way once real billing is switched on — only then shops really get the invoices.

1. The basics

  • What we bill. A shop pays for each pet it transferred to a buyer in a month. The same pet is billed once a month. Free: a transfer cancelled in the same month, and a pet transferred again within 90 days of an earlier transfer.
  • Who we bill. Only the shops of the billing group (Settings → Billing group). Shelters, test accounts and partners are never billed.
  • Months are New York months (midnight to midnight, Eastern time). A month can be invoiced once it is over. This month of the registrations is the service month; it is not the day an invoice was sent or paid.
  • Prices. Standard price $9.785 per registration. Shops that pay by ACH Direct Debit (a saved US bank account) get the ACH price $9.50. A failed ACH payment adds a $10.00 fee. A shop may have its own contract price or discount.
  • Payment. A shop with a saved bank account or card is charged automatically when you send its invoice. Everybody else gets the invoice by e-mail with a link to pay online. E-mailed invoices are due in 15 days.
  • Four roles, each can do everything the one before it can:
    • viewer — sees everything, changes nothing;
    • operator — creates and sends invoices, sets the month of a hand-made one, resolves alerts;
    • finance_admin — also corrects: deletes, recreates and voids invoices, makes a pet billable by hand, deactivates a shop, edits a shop and its contract price or discount;
    • owner — also the base prices, every setting and the users.
    A button your role can't use is not shown at all.
  • Everything is recorded in the Audit log: who did what, when, and the reason they gave.

2. Signing in

  1. Open finance.findpet.com, enter your username and password, press Continue.
  2. Enter the 6-digit code from your authenticator app (Google Authenticator, 1Password, Authy…), press Verify.
  3. The very first time you get a temporary password from the owner: the app asks you to add the account to your authenticator app, then to choose your own password (at least 12 characters).

Forgot your password? Ask the owner for a temporary one (Users → Temp password). Lost your phone? Ask the owner to Reset 2FA. You are signed out after 60 minutes without activity.

3. Finding your way

The menu on the left (on a phone — the strip at the top; slide it sideways to see the rest):

PageWhat it is for
OverviewWhere the month stands and what needs doing (section 4).
InvoicesEvery invoice of the month: send, refresh, cancel, replace. At the top — Needs attention; lower down — invoices made by hand in Stripe and bank accounts with a failed ACH payment. The number next to it counts the alerts waiting.
StoresEvery shop we bill at a glance: the month's invoice, what it owes, how late it is; a shop's History (section 5).
Registrations & revenuePets to bill per shop and why; Make billable, contract prices, a shop's billing profile.
Billing runsInvoicing a whole month: Preview, Create drafts, Send all drafts.
SettingsBilling group, invoice sending, Slack and reminders, debtors, prices.
UsersWho can sign in and with which role (owner only).
Audit logEvery sign-in, view and change.
HelpThis guide, in English and Russian.

The top bar shows at a glance how the app is set: TEST MODE (nobody is charged), Sending: Manual / Automatic (a click opens Settings) and Last Stripe check — a click shows whether Stripe is talking to us: the last morning check, the last message from Stripe, messages waiting, Slack. Then your name and role, Change password and Sign out.

The period bar above Overview, Invoices, Stores, Registrations and Billing runs chooses the service month for all of them at once: ‹ Previous, the month list, Next ›. Current billing month jumps back to the month to invoice now — last month. The current month is marked “so far”: it is not over yet.

The address in the browser keeps the page and the month (for example #invoices?period=2026-08). Copy it to show a colleague exactly the same screen; the browser's Back button works; links from Slack open the right place.

Confirmation windows. Every button that changes something opens a window first: what exactly will happen, and a field for the reason where one is needed. The button at the bottom does it. Cancel, Esc or a click outside the window closes it, and nothing changes. If the app refuses (for example the invoice changed meanwhile), the reason is shown inside the window.

4. Overview: what needs doing

The first page after signing in. Each number says what it covers:

  • The service month (the period bar): registrations to bill; invoice amounts (drafts included, and how many are still drafts); paid; shops with registrations but no invoice yet.
  • All periods, as of now: owed now (sent and unpaid, every month together; drafts are not counted), shops past due, deactivated shops, alerts in Needs attention.

Work queue — what a person should do, with a View link to the place where it is done: Needs attention, drafts to send, payment problems, shops past due, shops not invoiced yet. How the app is set — test mode, invoice sending, reminders, warnings to shops, Slack, the last Stripe check.

5. Stores: every shop at a glance

Stores shows every shop we bill, for the service month (last month by default):

ColumnWhat it means
ShopName and org ID. Badges: Deactivated, Warned, Deactivation recommended, Taken out of billing.
RegistrationsPets to bill for that month (and how many transfers there were). A shop with none needs no invoice.
Invoice for the monthIts status (Draft, Open, Paid, Overdue…), the amount, the Stripe number (click it to open the invoice in Stripe). “made by hand in Stripe” — an invoice someone created in Stripe directly.
PaidWhat has been paid for that month.
Owed nowEverything the shop owes today, all months together: every invoice that went out and is not paid. Drafts that were never sent are not counted.
Past dueHow many days the shop's oldest unpaid invoice is past its due date.
  • Search by the shop's name or org ID; the filter shows only the shops that owe money, are past due, paid, did not pay, were not invoiced, or are deactivated.
  • History opens one shop month by month: registrations, every invoice (with the payment date, reminders sent, earlier versions), what it owes, how late it is, its price today. From there: Pricing, Billing profile, Deactivate / Reactivate.
  • The line at the bottom adds everything up.

6. Monthly invoicing, step by step

Do this in the first days of every month, for the month that just ended (Current billing month on the period bar).

Step 1 — check the registrations

  1. Open Registrations & revenue.
  2. Look at To bill for each shop. Old script is what the old counting script would have billed; a difference is explained in Details (for each pet: why it is billed or free).
  3. Use the search and the filter (Past due, Deactivated, Stripe customer not linked) to find shops quickly.

Step 2 — fix what needs fixing (before creating invoices)

  • A pet should be billed, but the rules made it free (for example a cancelled transfer that really happened): Details → the pet's row → Make billable → write why → Save. To take it back: Undo. Changes to months before last month ask you to confirm.
  • A shop has a contract price or a discount: Pricing (see section 12).
  • Link the shop to its Stripe customer (needed for real billing): Edit → Stripe customer id (starts with cus_, copy it from the customer page in Stripe) → Save. The app checks that the customer exists.
  • A shop must not be billed (closed store, separate agreement): Edit → untick Bill this organization → Save. It moves to “Taken out of billing”.
  • Pause the reminders for one shop (for example during a dispute): Edit → tick Pause payment reminders for this shop.

Step 3 — preview, create the drafts, send

  1. Open Billing runs and press Preview: what would be created, per shop, with the amount and how it will be paid. Nothing is written yet.
  2. Press Create drafts and confirm with Start. The app creates one draft per shop in Stripe and checks every draft against its own calculation to the cent. Wait until the progress line says it has finished (you may go to other pages meanwhile).
  3. Check the list on Invoices. A draft marked Problem differs from our calculation and is never sent: delete it (Delete) and press Create drafts again after fixing the cause.
  4. Send: Send on one invoice (Invoices), or Send all drafts (Billing runs). The window says how the shop will pay. Before sending, the app checks once more that nothing changed (pets, prices, the payment method). Shops with a saved bank account or card are charged; everyone else is e-mailed.
Manual or Automatic sending (Settings → Invoice sending, owner only). Manual (default): drafts wait until someone presses Send. Automatic: every clean draft is sent right after it is created. Going back to Manual stops the very next automatic send. The top bar always shows which one is on.

Running Create drafts twice never creates a second invoice for the same shop and month.

7. After sending: statuses and what to do

StatusMeaningWhat to do
DraftCreated, not sent.Send it (or Delete it).
ProblemThe Stripe draft differs from our numbers.Delete, fix, Create drafts again.
OpenSent, waiting for payment.Nothing; reminders go by themselves if they are on.
ACH processingA bank debit is on its way (up to about 4 business days).Wait. An alert comes if it takes more than 7 days.
PaidPaid.Nothing. The paid PDF is kept.
OverdueThe due date passed.Reminders; see Debtors.
Payment failedThe automatic charge failed.Usually a replacement is prepared automatically (section 8).
DisputedThe shop disputed the payment, or the bank returned it.See the alert in Needs attention.
UncollectibleMarked uncollectible in Stripe.It can still be paid; decide by hand.
VoidCancelled.The month can be invoiced again.
Replacing… / Creating…The app is working on it.Wait, then Refresh.
  • Statuses update by themselves: Stripe tells the app within seconds, and every morning at 05:00 (New York) the app re-checks everything. Refresh re-reads one invoice from Stripe now.
  • Timeline shows the whole story of an invoice: every status change, every message from Stripe, alerts, reminders, earlier versions.
  • PDF links download the invoice PDF (and the paid one).
  • Needs attention (top of the Invoices page; the Overview's work queue leads there too) lists what a person must look at. When it is handled, press Resolve and write what was done.

8. When a payment fails

  • A bank (ACH) payment failed or came back from the bank later: the app cancels the old invoice and prepares a replacement at the standard price plus the $10.00 fee, paid online by e-mail. The shop's bank account is marked (it gets the standard price until someone clears the mark).
  • A card was declined: a replacement with the same price, paid online by e-mail.
  • In Manual mode the replacement waits as a draft — Needs attention says “ready as a draft — press Send”. Check it and press Send. In Automatic mode it goes out by itself.
  • The app does this automatically once per invoice. If it happens again, or the shop disputed the payment itself, Needs attention asks you to decide by hand.
  • Bank accounts with a failed ACH payment (bottom of the Invoices page): when the shop's account is fine again, press Clear and write why — its invoices get the ACH price again.

9. Cancelling and rejecting

I want to…How
Throw away a draft that was never sentInvoices → Delete. Create drafts will make a new one.
Cancel an invoice that went out, with no new oneInvoices → Void + a reason. Only for open / unpaid invoices. The month is free again: Create drafts would invoice it anew.
Replace an invoice (other price, add or remove the fee, e-mail instead of charging)Invoices → Recreate: choose the rate (as the saved payment method gives / ACH / standard), how it is collected, the fee, write a reason. The preview shows the new amount. The old one is cancelled; the new one waits as a draft for Send.
Stop a replacement that is being madeInvoices → Cancel replacement + a reason (the month may stay unbilled — the app says so).
Undo “Make billable” on a petRegistrations & revenue → Details → Undo + a reason.
Cancel a contract price / discountPricing → Cancel (see section 12).
Stop billing a shopRegistrations & revenue → Edit → untick Bill this organization.
Stop a shop's remindersEdit → Pause payment reminders for this shop.
Close an alertInvoices → Needs attention → Resolve + what was done.
A paid invoice cannot be cancelled or replaced here (that needs a credit note in Stripe).

10. Invoices you create by hand in Stripe

Sometimes you make an invoice directly in the Stripe Dashboard — for example a month billed before this app existed, re-issued with the late fee. The app finds it and follows it like its own.

  1. In Stripe, create the invoice for the shop's Stripe customer, add the lines, and write the month and year in the memo, for example: Unpaid registrations for May 2026. You may also write a due date (“pay by June 15, 2026”) — a single date is not taken as the month. Send (finalize) it in Stripe.
  2. The app finds it within seconds (or at 05:00 the next morning). To look right now: Invoices → Find hand-made invoices.
  3. If the month was read from the memo, the invoice appears in that month with the badge hand-made. If not (no month, several months, or a month in the future), Needs attention asks you to set it: Invoices → “Made by hand in Stripe” → Set month → choose the month and write why.
  • From then on it gets reminders, counts as owed and for debtors, and shows on Stores and in the shop's History.
  • The app never changes it: no Recreate, no Send. To change it, edit it in Stripe (Stripe cancels it and makes a new version — the app then follows the new one), or cancel it here with Void.
  • If the app already has its own invoice for that shop and month, an alert says “two invoices bill the same month — void one of them”.
  • In test mode the shop's test customer is the one with the e-mail <org id>@example.com; it exists once the app has made at least one draft for that shop.

11. Debtors and deactivation

The app counts how many days a shop's oldest unpaid invoice is past due (ours and hand-made ones). Every morning:

  • from 15 days (Settings → Debtors) the shop is Warned: an alert in Slack, and the shop sees a banner on findpet.com that new pet transfers and registrations may be paused from a date;
  • from 30 days deactivation is recommended: an alert in Slack.

Deactivating is always your decision — the app never does it by itself.

  1. Stores → the shop's row → Deactivate (or History → Deactivate), write the reason.
  2. On findpet.com the shop can no longer transfer its pets to buyers or register new pets. It can still edit its pets and report a lost or found pet. A message goes to Slack.
  3. When it has paid: Reactivate + a reason. If a deactivated shop owes nothing any more, Slack reminds you every day to reactivate it.
Good to know.
  • While invoicing runs in test mode, a deactivation is a rehearsal: findpet.com ignores it.
  • The shop's part on findpet.com is ready but waits for the website's release.
  • Shops that send pets through the partner API are not blocked there yet.

Warnings to shops (Settings → Debtors, owner)

When this switch is On:

  • a shop that becomes Warned or “deactivation recommended” gets its past-due invoices re-sent by Stripe at once;
  • every invoice you send to that shop while it is at a level carries a dated notice at the top: “PAST DUE … new pet transfers and registrations may be paused … if you have paid since, please disregard this notice”. It is written when you press Send, from what Stripe shows at that moment: if the shop has paid in the meantime, there is no notice.

Shops with reminders paused (Edit) get neither. Off by default. An invoice that has already gone out can't get the notice: Stripe doesn't allow changing a sent invoice's text.

12. Prices

  • Base prices (Settings → Prices, owner): to change them, add new prices from a date. The old ones stay for the months before; the standard price is always the ACH price × 1.03.
  • A shop's contract price or discount (Registrations & revenue → Pricing, or Stores → History → Pricing; finance_admin or owner): name it, choose Contract price (the ACH price) or Discount %, the first day, the last day (or “No end date”), and the reason. The preview shows both prices. Two conditions of one shop can't overlap.
  • End — set the last day of a condition (it stays in the history).
  • Cancel — as if it never existed: every month in its dates is priced at the base price again. Not possible if an invoice already went out at that price (void or recreate it first, or set the last day instead). Drafts made at that price must be deleted and created again — the app lists them.
  • Changes that reach into months before this one ask you to confirm.

13. Reminders, Slack and the daily summary

  • Reminders to shops (Settings, owner): On — on the chosen days of the month (by default the 1st and the 15th) at 06:00 New York, Stripe re-sends every open invoice that was e-mailed at least 7 days ago. Shops with reminders paused are skipped. Off by default.
  • Slack (channel Stripe Invoices): alerts come at once; a daily summary at 07:00 New York: open, overdue and failed invoices, payments of the last 24 hours, debtors, whether the app is healthy. Every message links back to the right page of the app.

14. Settings — who can change what

SettingWhat it doesDefault
Billing groupWhich shops are billed (those sharing one API token).Nobody
Invoice sendingManual: drafts wait for Send. Automatic: sent right away.Manual
RemindersStripe re-sends open e-mailed invoices on the chosen days.Off, days 1 and 15
DebtorsDays past due for “Warned” and “Deactivation recommended”.15 and 30
Warnings to shopsRe-send past-due invoices when a level is reached; a dated PAST DUE notice in the invoices sent to that shop.Off
PricesBase prices from a date.$9.50 / $9.785 / $10.00

Only the owner changes settings. Turning something on that acts by itself (Automatic sending, reminders, warnings) asks for a reason; turning it off is one click.

15. Users (owner) and the Audit log

  • Add user: a username, a temporary password (at least 12 characters, valid 72 hours) and the role. Give the password privately; at the first sign-in they set up 2FA and choose their own password.
  • Temp password — the user forgot the password. Reset 2FA — the user lost the phone. Both give a new temporary password.
  • Role — choose another one in the user's row and confirm with Change the role; it applies at once. Your own role can't be changed here.
  • Audit log: every sign-in, view, change and Stripe action, with the user, the time and the reason.

16. Questions

Where did the Dashboard and the tabs go?
The Dashboard is now Stores; Preview, Create drafts and Send all drafts are on Billing runs; Needs attention is at the top of Invoices. The month is chosen once, on the period bar. Old links still open the right page.
Create drafts made nothing for a shop.
It had no pets to bill, it was taken out of billing, or it already has an invoice for that month (Billing runs → Preview shows why).
Send says something changed.
Pets, prices or the payment method changed after the draft was made. Delete the draft and press Create drafts again.
A shop says it paid, but the app shows Open.
Press Refresh. A bank payment can take a few days (ACH processing).
The shop should pay the ACH price, but gets the standard price.
It has no saved bank account with a mandate in Stripe, or its bank account is marked after a failed payment (Invoices → bank accounts → Clear).
A hand-made invoice doesn't show up.
Is it for the shop's Stripe customer, and sent (finalized) in Stripe? Press Find hand-made invoices. Without a month in the memo it waits under “Made by hand in Stripe” for Set month.
I don't see a button described here.
Your role can't use it (section 1). Ask the owner.
Why can't I change a sent invoice's text?
Stripe doesn't allow it; only Recreate (a new invoice) can.

17. Words used here

Service month
The New York month in which the pets were transferred — what an invoice is for.
ACH Direct Debit
Payment straight from a US bank account; cheaper price.
Draft / Finalize / Send
A draft can still change; finalizing gives it a number; sending charges the saved payment method or e-mails it.
Void
Cancelled invoice; cannot be paid.
Replacement / revision
A new invoice for the same month that replaces the cancelled one.
Dispute
The shop or its bank took the payment back.
Org ID
The shop's ID on findpet.com (for example AZX67GZC).
Billing group
The shops that share one API token — the ones we bill.

FindPet Finance — руководство пользователя

Как каждый месяц выставлять счета магазинам, следить за оплатами, разбираться с неудачными платежами и должниками — по шагам, без технических знаний.

Тестовый режим. Сейчас все счета создаются в Stripe в test mode: никому ничего не приходит и ничего не списывается, сообщения в Slack начинаются с [TEST]. Всё, что описано ниже, работает так же и после включения настоящего биллинга — только тогда магазины получают счета по-настоящему.

1. Основное

  • За что выставляем. Магазин платит за каждого питомца, которого он передал покупателю за месяц; один питомец — один раз в месяц. Бесплатно: передача, отменённая в том же месяце, и повторная передача того же питомца в течение 90 дней после предыдущей.
  • Кому выставляем. Только магазинам биллинговой группы (Settings → Billing group). Приюты, тестовые аккаунты и партнёры не выставляются никогда.
  • Месяц — по времени Нью-Йорка (с полуночи до полуночи по восточному времени). Счёт за месяц можно выставить, когда месяц закончился. Месяц регистраций называется сервисным месяцем (service month); это не день, когда счёт отправили или оплатили.
  • Цены. Стандартная цена — $9.785 за регистрацию. Магазины, которые платят через ACH Direct Debit (сохранённый банковский счёт в США), платят $9.50. За неудачный ACH-платёж добавляется штраф $10.00. У магазина может быть своя договорная цена или скидка.
  • Оплата. У магазина с сохранённым банковским счётом или картой деньги списываются автоматически, когда вы отправляете счёт. Остальные получают счёт письмом со ссылкой на оплату онлайн; срок оплаты — 15 дней.
  • Четыре роли, каждая может всё, что может предыдущая:
    • viewer — видит всё, ничего не меняет;
    • operator — создаёт и отправляет счета, ставит месяц ручному счёту, разбирает тревоги;
    • finance_admin — ещё исправляет: удаляет, пересоздаёт и аннулирует счета, делает питомца платным вручную, деактивирует магазин, правит магазин и его договорную цену или скидку;
    • owner — ещё базовые цены, все настройки и пользователей.
    Кнопок, которые вашей роли недоступны, вы просто не увидите.
  • Всё записывается в Audit log: кто, когда, что сделал и какую причину указал.

2. Вход

  1. Откройте finance.findpet.com, введите имя пользователя и пароль, нажмите Continue.
  2. Введите 6-значный код из приложения-аутентификатора (Google Authenticator, 1Password, Authy…), нажмите Verify.
  3. Первый вход — по временному паролю от owner'а: приложение попросит добавить аккаунт в аутентификатор, затем придумать свой пароль (не короче 12 символов).

Забыли пароль? Попросите у owner'а временный (Users → Temp password). Потеряли телефон? Попросите owner'а сделать Reset 2FA. После 60 минут бездействия приложение выходит из аккаунта само.

3. Как устроено приложение

Меню слева (на телефоне — полоса сверху, её можно листать вбок):

РазделДля чего
OverviewКак обстоят дела за месяц и что нужно сделать (раздел 4).
InvoicesВсе счета месяца: отправить, обновить, отменить, заменить. Вверху — Needs attention, ниже — счета, созданные вручную в Stripe, и банковские счета с неудачным ACH-платежом. Число рядом — сколько тревог ждёт.
StoresВсе магазины, которым мы выставляем: счёт за месяц, долг, просрочка; история магазина (раздел 5).
Registrations & revenueСколько питомцев к оплате у каждого магазина и почему; Make billable, договорные цены, биллинговый профиль магазина.
Billing runsВыставление за весь месяц: Preview, Create drafts, Send all drafts.
SettingsБиллинговая группа, отправка счетов, Slack и напоминания, должники, цены.
UsersКто может входить и с какой ролью (только owner).
Audit logКаждый вход, просмотр и изменение.
HelpЭто руководство, на английском и русском.

Верхняя панель сразу показывает, как настроено приложение: TEST MODE (ни с кого не списывается), Sending: Manual / Automatic (нажатие открывает Settings) и Last Stripe check — по нажатию видно, связан ли Stripe с нами: последняя утренняя сверка, последнее сообщение от Stripe, ожидающие сообщения, Slack. Дальше — ваше имя и роль, Change password и Sign out.

Панель периода над Overview, Invoices, Stores, Registrations и Billing runs выбирает сервисный месяц сразу для всех: ‹ Previous, список месяцев, Next ›. Current billing month возвращает к месяцу, который выставляем сейчас, — прошлому. Текущий месяц помечен «so far»: он ещё не закончился.

Адрес в браузере хранит раздел и месяц (например, #invoices?period=2026-08). Скопируйте его, чтобы коллега увидел ровно тот же экран; кнопка «Назад» браузера работает; ссылки из Slack открывают нужное место.

Окна подтверждения. Любая кнопка, которая что-то меняет, сначала открывает окно: что именно произойдёт и поле для причины, где она нужна. Кнопка внизу окна выполняет действие. Cancel, Esc или щелчок мимо окна закрывают его, и ничего не меняется. Если приложение отказало (например, счёт тем временем изменился), причина видна прямо в окне.

4. Overview: что нужно сделать

Первый экран после входа. Каждое число подписано, к чему оно относится:

  • Сервисный месяц (панель периода): регистрации к оплате; суммы счетов (вместе с черновиками — и сколько из них ещё черновики); оплачено; магазины с регистрациями, но без счёта.
  • Все периоды на сейчас: долг (отправлено и не оплачено за все месяцы вместе; черновики не считаются), магазины с просрочкой, деактивированные магазины, тревоги в Needs attention.

Work queue — что нужно сделать человеку, со ссылкой View туда, где это делается: Needs attention, черновики к отправке, проблемы с оплатой, просрочившие магазины, магазины без счёта. How the app is set — тестовый режим, отправка счетов, напоминания, предупреждения магазинам, Slack, последняя сверка со Stripe.

5. Stores: все магазины на одном экране

Stores показывает все магазины, которым мы выставляем счета, за сервисный месяц (по умолчанию — прошлый):

КолонкаЧто означает
ShopНазвание и org ID. Отметки: Deactivated (деактивирован), Warned (предупреждён), Deactivation recommended (рекомендована деактивация), Taken out of billing (выведен из биллинга).
RegistrationsСколько питомцев к оплате за месяц (и сколько всего было передач). Магазину без регистраций счёт не нужен.
Invoice for the monthСтатус счёта (Draft, Open, Paid, Overdue…), сумма и номер в Stripe (нажмите — откроется в Stripe). «made by hand in Stripe» — счёт, созданный вручную прямо в Stripe.
PaidСколько оплачено за этот месяц.
Owed nowСколько магазин должен сегодня за все месяцы вместе: все отправленные и неоплаченные счета. Неотправленные черновики не считаются.
Past dueНа сколько дней самый старый неоплаченный счёт магазина просрочен.
  • Поиск — по названию магазина или org ID; фильтр оставляет только тех, кто должен, просрочил, оплатил, не оплатил, кому ещё не выставлен счёт, или деактивированных.
  • History — история одного магазина по месяцам: регистрации, все счета (с датой оплаты, числом напоминаний, прежними версиями), долг, просрочка, цена сейчас. Оттуда же: Pricing, Billing profile, Deactivate / Reactivate.
  • Последняя строка таблицы — итог.

6. Ежемесячное выставление счетов по шагам

Делается в первые дни каждого месяца — за только что закончившийся месяц (Current billing month на панели периода).

Шаг 1 — проверить регистрации

  1. Откройте Registrations & revenue.
  2. Посмотрите колонку To bill (к оплате) по каждому магазину. Old script — сколько насчитал бы старый скрипт; разница объяснена в Details (по каждому питомцу — почему он платный или бесплатный).
  3. Поиск и фильтр (Past due, Deactivated, Stripe customer not linked) помогают быстро найти нужные магазины.

Шаг 2 — поправить то, что нужно (до создания счетов)

  • Питомца нужно выставить, а правила сделали его бесплатным (например, отменённая передача, которая на самом деле состоялась): Details → строка питомца → Make billable → напишите причину → Save. Отменить: Undo. Правка месяцев раньше прошлого потребует подтверждения.
  • У магазина договорная цена или скидка: Pricing (см. раздел 12).
  • Привязать магазин к его клиенту в Stripe (нужно для настоящего биллинга): Edit → Stripe customer id (начинается с cus_, скопируйте со страницы клиента в Stripe) → Save. Приложение проверит, что такой клиент есть.
  • Магазину не нужно выставлять счёт (магазин закрыт, отдельная договорённость): Edit → снимите галочку Bill this organization → Save. Магазин переедет в список «Taken out of billing».
  • Остановить напоминания одному магазину (например, пока идёт спор): Edit → галочка Pause payment reminders for this shop.

Шаг 3 — предпросмотр, черновики, отправка

  1. Откройте Billing runs и нажмите Preview: что будет создано по каждому магазину, на какую сумму и как будет оплачено. Пока ничего не записывается.
  2. Нажмите Create drafts и подтвердите кнопкой Start. Приложение создаст в Stripe по одному черновику на магазин и сверит каждый со своим расчётом до цента. Дождитесь, пока строка прогресса покажет, что всё готово (тем временем можно переходить в другие разделы).
  3. Проверьте список в Invoices. Черновик с отметкой Problem расходится с нашим расчётом и никогда не будет отправлен: удалите его (Delete) и, устранив причину, снова нажмите Create drafts.
  4. Отправьте: Send на одном счёте (Invoices) или Send all drafts — все сразу (Billing runs). Окно покажет, как магазин будет платить. Перед отправкой приложение ещё раз проверяет, что ничего не изменилось (питомцы, цены, способ оплаты). С магазинов с сохранённым банковским счётом или картой деньги списываются, остальным счёт уходит письмом.
Ручная или автоматическая отправка (Settings → Invoice sending, только owner). Manual (по умолчанию): черновики ждут, пока кто-то нажмёт Send. Automatic: каждый проверенный черновик отправляется сразу после создания. Возврат в Manual останавливает ближайшую же автоматическую отправку. Что включено сейчас, всегда видно на верхней панели.

Повторный Create drafts никогда не создаст второй счёт тому же магазину за тот же месяц.

7. После отправки: статусы и что делать

СтатусЧто значитЧто делать
DraftСоздан, не отправлен.Отправить (или Delete — удалить).
ProblemЧерновик в Stripe не совпадает с нашим расчётом.Удалить, исправить причину, снова Create drafts.
OpenОтправлен, ждёт оплаты.Ничего; напоминания уходят сами, если включены.
ACH processingБанковское списание в пути (до ~4 рабочих дней).Ждать. Если дольше 7 дней — придёт тревога.
PaidОплачен.Ничего. PDF об оплате сохраняется.
OverdueСрок оплаты прошёл.Напоминания; см. раздел Должники.
Payment failedАвтоматическое списание не прошло.Обычно замена готовится автоматически (раздел 8).
DisputedМагазин оспорил платёж или банк его вернул.Смотрите тревогу в Needs attention.
UncollectibleВ Stripe помечен как безнадёжный.Его ещё можно оплатить; решать вручную.
VoidАннулирован.Месяц можно выставить заново.
Replacing… / Creating…Приложение сейчас с ним работает.Подождать и нажать Refresh.
  • Статусы обновляются сами: Stripe сообщает о событиях за секунды, а каждое утро в 05:00 (Нью-Йорк) приложение перепроверяет всё. Refresh перечитывает один счёт из Stripe прямо сейчас.
  • Timeline — вся история счёта: смены статусов, сообщения от Stripe, тревоги, напоминания, прежние версии.
  • Ссылки PDF скачивают PDF счёта (и оплаченного счёта).
  • Needs attention (вверху раздела Invoices; туда же ведёт очередь работ в Overview) — то, на что нужно посмотреть человеку. Разобрались — нажмите Resolve и напишите, что сделано.

8. Если платёж не прошёл

  • Не прошёл банковский (ACH) платёж или банк вернул его позже: приложение аннулирует старый счёт и готовит замену — по стандартной цене плюс штраф $10.00, оплата онлайн по письму. Банковский счёт магазина помечается: пока пометку не снимут, у магазина стандартная цена.
  • Отклонена карта: замена по той же цене, оплата онлайн по письму.
  • В режиме Manual замена ждёт черновиком — Needs attention пишет «ready as a draft — press Send». Проверьте и нажмите Send. В режиме Automatic она уходит сама.
  • Автоматически это делается один раз на счёт. Если снова не прошло, или магазин сам оспорил платёж, Needs attention попросит решить вручную.
  • Bank accounts with a failed ACH payment (внизу раздела Invoices): когда со счётом магазина всё в порядке, нажмите Clear и напишите причину — его счета снова получат ACH-цену.

9. Отменить и отклонить

Хочу…Как
Выбросить черновик, который ещё не отправлялиInvoices → Delete. Create drafts создаст новый.
Отменить отправленный счёт без заменыInvoices → Void + причина. Только для открытых / неоплаченных. Месяц освобождается: Create drafts выставит его заново.
Заменить счёт (другая цена, добавить или убрать штраф, письмом вместо списания)Invoices → Recreate: выберите тариф (как даёт сохранённый способ оплаты / ACH / стандартный), способ оплаты, штраф, напишите причину. Предпросмотр покажет новую сумму. Старый счёт аннулируется, новый ждёт черновиком кнопку Send.
Остановить замену, которая создаётсяInvoices → Cancel replacement + причина (месяц может остаться невыставленным — приложение предупредит).
Отменить «Make billable» у питомцаRegistrations & revenue → Details → Undo + причина.
Отменить договорную цену / скидкуPricing → Cancel (см. раздел 12).
Перестать выставлять магазинуRegistrations & revenue → Edit → снять галочку Bill this organization.
Остановить напоминания магазинуEdit → Pause payment reminders for this shop.
Закрыть тревогуInvoices → Needs attention → Resolve + что сделано.
Оплаченный счёт здесь не отменить и не заменить (для этого нужна кредит-нота в Stripe).

10. Счета, созданные вручную в Stripe

Иногда счёт создаётся прямо в Stripe Dashboard — например, за месяц, выставленный ещё до этого приложения, перевыставленный со штрафом. Приложение само находит такой счёт и ведёт его как свой.

  1. В Stripe создайте счёт на клиента магазина в Stripe, добавьте строки и напишите в поле memo месяц и год, например: Unpaid registrations for May 2026. Можно указать и срок оплаты («pay by June 15, 2026») — одиночная дата за месяц не считается. Отправьте (финализируйте) счёт в Stripe.
  2. Приложение найдёт его за секунды (или в 05:00 следующего утра). Проверить сразу: Invoices → Find hand-made invoices.
  3. Если месяц прочитан из memo, счёт появится в этом месяце с отметкой hand-made. Если нет (месяц не указан, указано несколько месяцев или месяц в будущем), Needs attention попросит указать его: Invoices → «Made by hand in Stripe» → Set month → выберите месяц и напишите причину.
  • Дальше по нему идут напоминания, он входит в долг и в подсчёт должников, виден в Stores и в истории магазина.
  • Приложение его никогда не меняет: нет Recreate и Send. Чтобы изменить — правьте в Stripe (Stripe аннулирует его и создаёт новую версию, приложение переключится на неё) или отмените здесь через Void.
  • Если у приложения уже есть свой счёт этому магазину за тот же месяц, придёт тревога «два счёта за один месяц — аннулируйте один».
  • В тестовом режиме тестовый клиент магазина в Stripe — с e-mail <org id>@example.com; он появляется после того, как приложение хотя бы раз создало черновик для этого магазина.

11. Должники и деактивация

Приложение считает, на сколько дней просрочен самый старый неоплаченный счёт магазина (свои и ручные). Каждое утро:

  • с 15 дней (Settings → Debtors) магазин Warned — предупреждён: тревога в Slack, а магазин видит на findpet.com баннер, что новые передачи и регистрации питомцев могут быть приостановлены с такой-то даты;
  • с 30 дней — рекомендована деактивация: тревога в Slack.

Деактивацию всегда решает человек — сама она не включается.

  1. Stores → строка магазина → Deactivate (или History → Deactivate), напишите причину.
  2. На findpet.com магазин больше не может передавать своих питомцев покупателям и регистрировать новых. Править питомцев и сообщать о потерянном или найденном питомце можно. В Slack уходит сообщение.
  3. Когда магазин оплатил: Reactivate + причина. Если деактивированный магазин больше ничего не должен, Slack каждый день напоминает его реактивировать.
Важно.
  • Пока счета выставляются в тестовом режиме, деактивация — репетиция: findpet.com её не выполняет.
  • Часть на стороне findpet.com готова и ждёт релиза сайта.
  • Магазины, которые передают питомцев через партнёрский API, там пока не блокируются.

Предупреждения магазинам (Settings → Debtors, owner)

Когда переключатель On:

  • магазину, который стал Warned или «deactivation recommended», Stripe сразу переотправляет просроченные счета;
  • каждый счёт, который вы отправляете магазину, пока он на уровне, несёт вверху датированное предупреждение: «PAST DUE … new pet transfers and registrations may be paused … if you have paid since, please disregard this notice». Оно пишется в момент нажатия Send по тому, что Stripe показывает сейчас: если магазин тем временем оплатил, предупреждения не будет.

Магазинам с остановленными напоминаниями (Edit) — ни того, ни другого. По умолчанию выключено. В уже отправленный счёт предупреждение не добавить: Stripe не даёт менять текст отправленного счёта.

12. Цены

  • Базовые цены (Settings → Prices, owner): чтобы изменить, добавьте новые цены с даты. Старые остаются для прошлых месяцев; стандартная цена всегда равна ACH-цене × 1.03.
  • Договорная цена или скидка магазина (Registrations & revenue → Pricing или Stores → History → Pricing; finance_admin или owner): название, Contract price (договорная ACH-цена) или Discount % (скидка), первый день, последний день (или «No end date»), причина. Предпросмотр покажет обе цены. Два условия одного магазина не могут пересекаться.
  • End — поставить условию последний день (оно остаётся в истории).
  • Cancel — как будто условия не было: все месяцы в его датах снова по базовой цене. Нельзя, если по этой цене уже ушёл счёт (сначала Void или Recreate этого счёта — или просто поставьте последний день). Черновики по этой цене нужно удалить и создать заново — приложение их перечислит.
  • Изменения, затрагивающие месяцы раньше текущего, попросят подтверждения.

13. Напоминания, Slack и ежедневная сводка

  • Напоминания магазинам (Settings, owner): On — в выбранные дни месяца (по умолчанию 1-го и 15-го) в 06:00 по Нью-Йорку Stripe переотправляет каждый открытый счёт, отправленный письмом не меньше 7 дней назад. Магазины с остановленными напоминаниями пропускаются. По умолчанию выключено.
  • Slack (канал Stripe Invoices): тревоги приходят сразу; ежедневная сводка в 07:00 по Нью-Йорку — открытые, просроченные и неудачные счета, оплаты за сутки, должники, всё ли в порядке с приложением. В каждом сообщении — ссылка на нужный раздел приложения.

14. Настройки — кто что меняет

НастройкаЧто делаетПо умолчанию
Billing groupКаким магазинам выставлять (тем, у кого общий API-токен).Никому
Invoice sendingManual: черновики ждут Send. Automatic: отправляются сразу.Manual
RemindersStripe переотправляет открытые счета в выбранные дни.Off, 1-е и 15-е
DebtorsДни просрочки для «Warned» и «Deactivation recommended».15 и 30
Warnings to shopsПереотправка просроченных счетов при достижении уровня; датированное предупреждение PAST DUE в счетах, отправляемых этому магазину.Off
PricesБазовые цены с даты.$9.50 / $9.785 / $10.00

Настройки меняет только owner. Включение того, что действует само (Automatic, напоминания, предупреждения), требует причину; выключение — в один клик.

15. Пользователи (owner) и Audit log

  • Add user: имя, временный пароль (не короче 12 символов, действует 72 часа) и роль. Передайте пароль лично; при первом входе человек настроит 2FA и придумает свой пароль.
  • Temp password — пользователь забыл пароль. Reset 2FA — потерял телефон. В обоих случаях выдаётся новый временный пароль.
  • Роль — выберите другую в строке пользователя и подтвердите кнопкой Change the role; она действует сразу. Свою роль здесь не поменять.
  • Audit log: каждый вход, просмотр, изменение и действие в Stripe — кто, когда, с какой причиной.

16. Частые вопросы

Куда делись Dashboard и вкладки?
Dashboard теперь называется Stores; Preview, Create drafts и Send all drafts — в Billing runs; Needs attention — вверху Invoices. Месяц выбирается один раз, на панели периода. Старые ссылки по-прежнему открывают нужный раздел.
Create drafts ничего не создал для магазина.
У него нет питомцев к оплате, он выведен из биллинга или у него уже есть счёт за этот месяц (Billing runs → Preview показывает причину).
Send говорит, что что-то изменилось.
После создания черновика изменились питомцы, цены или способ оплаты. Удалите черновик и снова нажмите Create drafts.
Магазин говорит, что оплатил, а в приложении Open.
Нажмите Refresh. Банковский платёж может идти несколько дней (ACH processing).
Магазин должен платить по ACH-цене, а получает стандартную.
В Stripe у него нет сохранённого банковского счёта с разрешением на списание (mandate), или его счёт помечен после неудачного платежа (Invoices → bank accounts → Clear).
Ручной счёт не появился.
Он выставлен клиенту этого магазина и отправлен (финализирован) в Stripe? Нажмите Find hand-made invoices. Без месяца в memo он ждёт в «Made by hand in Stripe», пока вы не укажете Set month.
Не вижу кнопку, о которой здесь написано.
Вашей роли она недоступна (раздел 1). Обратитесь к owner'у.
Почему нельзя поменять текст отправленного счёта?
Stripe этого не разрешает; можно только Recreate (новый счёт).

17. Словарь

Service month (сервисный месяц)
Месяц по Нью-Йорку, в котором питомцев передали, — за него и выставляется счёт.
ACH Direct Debit
Оплата прямо с банковского счёта в США; цена ниже.
Draft / Finalize / Send
Черновик ещё можно менять; финализация даёт счёту номер; отправка списывает деньги с сохранённого способа оплаты или отправляет счёт письмом.
Void
Аннулированный счёт; оплатить его нельзя.
Replacement / revision
Новый счёт за тот же месяц вместо аннулированного.
Dispute
Магазин или его банк вернули платёж.
Org ID
Идентификатор магазина на findpet.com (например, AZX67GZC).
Billing group
Магазины с общим API-токеном — те, кому мы выставляем счета.

Review

New user

Give it to them privately: at the first sign-in they set up 2FA and choose their own password. It stops working after 72 hours.

Set a temporary password

Timeline

Earlier invoices — replaced by the current one

InvoiceWhy it was replaced

History

WhenWhat

Organization

Make billable

MicrochipLast transfer (ET)Status

Shop

Deactivation on findpet.com

MonthRegistrationsInvoices

Other invoices — older, or made by hand without a month

Pricing

ConditionPrices ACH / standardValidStatus

End condition

Add a condition

Only a finance_admin or the owner can change these.

Billing

E.g. while a dispute is going on. Stripe still e-mails new invoices.

Deactivation on findpet.com

Recreate invoice

The current invoice is voided in Stripe (a draft is deleted) and the new one is created as a draft: it goes out only when someone presses Send.

Change my password

You will be signed out everywhere, including here.