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.

FindPet Finance
Invoice sending: …

The shops we bill (the billing group, Settings). 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

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

Nobody is billed

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

TEST MODE Invoices are created in Stripe test mode — nobody is e-mailed or charged. A rehearsal of the monthly run before live billing.

Needs attention

WhenWhat

Preview — what Create drafts would make; nothing is written

OrganizationPaymentRegistrationsAmountNotes

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

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 on the invoice here.
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 (Dashboard → 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. Organizations' contract prices and discounts are set on the Registrations tab (Pricing).

History

FromStandardACHACH failure feeSet byReason

New prices from a date

Only the owner can change prices.

UsernameRoleStatus2FACreated
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.
  • 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.
  • Two roles. finance does all the billing work. owner can also change the settings, the prices and the users.
  • 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. The Dashboard: every shop at a glance

The first tab shows every shop we bill, for the month you choose (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).
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.

4. Monthly invoicing, step by step

Do this in the first days of every month, for the month that just ended.

Step 1 — check the registrations

  1. Open Registrations, choose last month.
  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 10).
  • 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 Invoices, choose the month, 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. 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.
  3. Check the list. 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, or Send all drafts. 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.

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

5. 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 6).
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 tab) lists what a person must look at. When it is handled, press Resolve and write what was done.

6. 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 tab): when the shop's account is fine again, press Clear and write why — its invoices get the ACH price again.

7. 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 oneVoid + 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)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 madeCancel replacement + a reason (the month may stay unbilled — the app says so).
Undo “Make billable” on a petRegistrations → Details → Undo + a reason.
Cancel a contract price / discountPricing → Cancel (see section 10).
Stop billing a shopRegistrations → Edit → untick Bill this organization.
Stop a shop's remindersEdit → Pause payment reminders for this shop.
Close an alertNeeds attention → Resolve + what was done.
A paid invoice cannot be cancelled or replaced here (that needs a credit note in Stripe).

8. 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 → type the month (YYYY-MM) and why.
  • From then on it gets reminders, counts as owed and for debtors, and shows on the Dashboard 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.

9. 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. Dashboard → 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.

10. 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 → Pricing, 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.

11. 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 app.

12. 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.

13. 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.
  • Audit log: every sign-in, view, change and Stripe action, with the user, the time and the reason.

14. Questions

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 (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.
Why can't I change a sent invoice's text?
Stripe doesn't allow it; only Recreate (a new invoice) can.

15. Words used here

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). Приюты, тестовые аккаунты и партнёры не выставляются никогда.
  • Месяц — по времени Нью-Йорка (с полуночи до полуночи по восточному времени). Счёт за месяц можно выставить, когда месяц закончился.
  • Цены. Стандартная цена — $9.785 за регистрацию. Магазины, которые платят через ACH Direct Debit (сохранённый банковский счёт в США), платят $9.50. За неудачный ACH-платёж добавляется штраф $10.00. У магазина может быть своя договорная цена или скидка.
  • Оплата. У магазина с сохранённым банковским счётом или картой деньги списываются автоматически, когда вы отправляете счёт. Остальные получают счёт письмом со ссылкой на оплату онлайн; срок оплаты — 15 дней.
  • Две роли. finance делает всю работу со счетами. 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. Dashboard: все магазины на одном экране

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

КолонкаЧто означает
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.
  • Последняя строка таблицы — итог.

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

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

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

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

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

  • Питомца нужно выставить, а правила сделали его бесплатным (например, отменённая передача, которая на самом деле состоялась): Details → строка питомца → Make billable → напишите причину → Save. Отменить: Undo. Правка месяцев раньше прошлого потребует подтверждения.
  • У магазина договорная цена или скидка: Pricing (см. раздел 10).
  • Привязать магазин к его клиенту в 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. Откройте Invoices, выберите месяц, нажмите Preview: что будет создано по каждому магазину, на какую сумму и как будет оплачено. Пока ничего не записывается.
  2. Нажмите Create drafts. Приложение создаст в Stripe по одному черновику на магазин и сверит каждый со своим расчётом до цента. Дождитесь, пока строка прогресса покажет, что всё готово.
  3. Проверьте список. Черновик с отметкой Problem расходится с нашим расчётом и никогда не будет отправлен: удалите его (Delete) и, устранив причину, снова нажмите Create drafts.
  4. Отправьте: Send на одном счёте или Send all drafts — все сразу. Перед отправкой приложение ещё раз проверяет, что ничего не изменилось (питомцы, цены, способ оплаты). С магазинов с сохранённым банковским счётом или картой деньги списываются, остальным счёт уходит письмом.
Ручная или автоматическая отправка (Settings → Invoice sending, только owner). Manual (по умолчанию): черновики ждут, пока кто-то нажмёт Send. Automatic: каждый проверенный черновик отправляется сразу после создания. Возврат в Manual останавливает ближайшую же автоматическую отправку.

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

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

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

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

  • Не прошёл банковский (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-цену.

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

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

8. Счета, созданные вручную в 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 → введите месяц (ГГГГ-ММ) и причину.
  • Дальше по нему идут напоминания, он входит в долг и в подсчёт должников, виден на Dashboard и в истории магазина.
  • Приложение его никогда не меняет: нет Recreate и Send. Чтобы изменить — правьте в Stripe (Stripe аннулирует его и создаёт новую версию, приложение переключится на неё) или отмените здесь через Void.
  • Если у приложения уже есть свой счёт этому магазину за тот же месяц, придёт тревога «два счёта за один месяц — аннулируйте один».
  • В тестовом режиме тестовый клиент магазина в Stripe — с e-mail <org id>@example.com; он появляется после того, как приложение хотя бы раз создало черновик для этого магазина.

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

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

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

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

  1. Dashboard → строка магазина → 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 не даёт менять текст отправленного счёта.

10. Цены

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

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

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

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

НастройкаЧто делаетПо умолчанию
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, напоминания, предупреждения), требует причину; выключение — в один клик.

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

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

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

Create drafts ничего не создал для магазина.
У него нет питомцев к оплате, он выведен из биллинга или у него уже есть счёт за этот месяц (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.
Почему нельзя поменять текст отправленного счёта?
Stripe этого не разрешает; можно только Recreate (новый счёт).

15. Словарь

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

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 the owner can change prices.

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. Stripe test mode.

Turn on automatic sending?

From now on the app will finalize invoices and email them or charge customers' saved payment methods without anyone pressing Send. You can switch back to manual at any time — it stops the very next automatic send.

Change my password

You will be signed out everywhere, including here.