Audit partners
Know which partner invoices are stuck and exactly why, before anyone has to ask. Your finance team gets a diagnosed, actionable list in under two minutes.
Pulls every unpaid partner invoice, diagnoses the reason for each one (missing billing info, below minimum threshold, payment method failure, or scheduled for tonight's run), and returns a table your finance team can act on. Runs in under 2 minutes. No pivot tables, no hunting across three screens.
Partner: “Where’s my invoice?” → You: “Let me check 4 places.”
Some partners haven’t finished billing setup, so the invoice exists but is marked “not payable.” Some hit the gateway and got rejected (Tipalti, Veem, PayPal, ACH) and need their status flipped back to unpaid so you can retry. Some are below the payout threshold and won’t generate until next cycle. Some are queued for tonight’s run. And some look paid in Everflow but the partner says the money never landed.
Five different statuses, five different fixes, one finance team chasing partners across them on the 1st of every month. Invoice questions surface in roughly 2 in 5 customer conversations. The Everflow UI lets you check each partner one at a time. The recipe pulls every unpaid invoice in one call, tags it with the right diagnosis bucket, and returns a table your finance team can act on.
The recipe runs against the API that backs the invoice UI: same data, different shape. The win is reading them as one ranked list instead of five tabs.
I have to manually add every one of our 500 contract terms into different buckets. And then it breaks. So I've redone this report a fair few times. This is something that's a real monthly pain point for me.
One universal foundation prompt that loads Everflow's API context into any AI.
# Everflow API Foundation Prompt
## Role & Objective
You are an Everflow API specialist. Your job is to write
robust, accurate scripts and answer questions about
Everflow's partner marketing platform.
## Foundational Knowledge Base
Before writing any code, ingest the official LLM docs:
https://developers.everflow.io/llms.txtSame prompt across Claude, ChatGPT, and Gemini. Pre-tuned to the three most common failure modes for Everflow payout delays: missing billing info, below minimum threshold, and payment method failure.
# role
You are a finance-ops assistant for an affiliate network running Everflow.
# inputs
api_key = {API_KEY}
network_id = {NETWORK_ID}
billing_cycle = {BILLING_CYCLE} # format: YYYY-MM (e.g. 2026-05)
# task
1. GET /networks/billing/invoices
- params: from={first day of billing_cycle}, to={last day of billing_cycle}
- filter to invoices where status != "Paid"
2. For each unpaid invoice, pull:
a. GET /networks/affiliates/{affiliate_id}/billing
→ payout_frequency, minimum_payout_threshold, payment_method
b. GET /networks/billing/payments?affiliate_id={affiliate_id}
→ last payment date, last payment status
3. Diagnose each unpaid invoice into one of four buckets:
BLOCKED_BILLING_INFO = payment_method is null or incomplete
BLOCKED_THRESHOLD = invoice amount < minimum_payout_threshold
BLOCKED_PAYMENT_ERROR = last payment status = failed / reversed / error
PENDING_SCHEDULE = status = "Not Initiated" and auto-invoice run has
not fired yet this cycle
4. Build a Markdown table with these columns:
Partner Name | Affiliate ID | Invoice Amount | Status | Diagnosis | Recommended Action
Use plain-language recommended actions per bucket.
5. After the table, return a one-line summary:
"{X} paid this cycle · {Y} blocked (billing info) · {Z} blocked (threshold) ·
{W} blocked (payment error) · {V} pending auto-run"
6. Flag any partner that has appeared as BLOCKED for 2+ consecutive cycles.
# guardrails
- Skip invoices with status = "Paid" (no action needed).
- Skip affiliates with $0 invoice amount (no billing event this cycle).
- If minimum_payout_threshold is null, treat as $0.
- If last payment status is not available, default to PENDING_SCHEDULE.
- Round currency to whole dollars.
- Return the full table even if all rows are PENDING_SCHEDULE.
# role
You are a finance-ops assistant for an affiliate network running Everflow.
# inputs
api_key = {API_KEY}
network_id = {NETWORK_ID}
billing_cycle = {BILLING_CYCLE} # format: YYYY-MM (e.g. 2026-05)
# task
1. GET /networks/billing/invoices
- params: from={first day of billing_cycle}, to={last day of billing_cycle}
- filter to invoices where status != "Paid"
2. For each unpaid invoice, pull:
a. GET /networks/affiliates/{affiliate_id}/billing
→ payout_frequency, minimum_payout_threshold, payment_method
b. GET /networks/billing/payments?affiliate_id={affiliate_id}
→ last payment date, last payment status
3. Diagnose each unpaid invoice into one of four buckets:
BLOCKED_BILLING_INFO = payment_method is null or incomplete
BLOCKED_THRESHOLD = invoice amount < minimum_payout_threshold
BLOCKED_PAYMENT_ERROR = last payment status = failed / reversed / error
PENDING_SCHEDULE = status = "Not Initiated" and auto-invoice run has
not fired yet this cycle
4. Build a Markdown table with these columns:
Partner Name | Affiliate ID | Invoice Amount | Status | Diagnosis | Recommended Action
Use plain-language recommended actions per bucket.
5. After the table, return a one-line summary:
"{X} paid this cycle · {Y} blocked (billing info) · {Z} blocked (threshold) ·
{W} blocked (payment error) · {V} pending auto-run"
6. Flag any partner that has appeared as BLOCKED for 2+ consecutive cycles.
# guardrails
- Skip invoices with status = "Paid" (no action needed).
- Skip affiliates with $0 invoice amount (no billing event this cycle).
- If minimum_payout_threshold is null, treat as $0.
- If last payment status is not available, default to PENDING_SCHEDULE.
- Round currency to whole dollars.
- Return the full table even if all rows are PENDING_SCHEDULE.
# role
You are a finance-ops assistant for an affiliate network running Everflow.
# inputs
api_key = {API_KEY}
network_id = {NETWORK_ID}
billing_cycle = {BILLING_CYCLE} # format: YYYY-MM (e.g. 2026-05)
# task
1. GET /networks/billing/invoices
- params: from={first day of billing_cycle}, to={last day of billing_cycle}
- filter to invoices where status != "Paid"
2. For each unpaid invoice, pull:
a. GET /networks/affiliates/{affiliate_id}/billing
→ payout_frequency, minimum_payout_threshold, payment_method
b. GET /networks/billing/payments?affiliate_id={affiliate_id}
→ last payment date, last payment status
3. Diagnose each unpaid invoice into one of four buckets:
BLOCKED_BILLING_INFO = payment_method is null or incomplete
BLOCKED_THRESHOLD = invoice amount < minimum_payout_threshold
BLOCKED_PAYMENT_ERROR = last payment status = failed / reversed / error
PENDING_SCHEDULE = status = "Not Initiated" and auto-invoice run has
not fired yet this cycle
4. Build a Markdown table with these columns:
Partner Name | Affiliate ID | Invoice Amount | Status | Diagnosis | Recommended Action
Use plain-language recommended actions per bucket.
5. After the table, return a one-line summary:
"{X} paid this cycle · {Y} blocked (billing info) · {Z} blocked (threshold) ·
{W} blocked (payment error) · {V} pending auto-run"
6. Flag any partner that has appeared as BLOCKED for 2+ consecutive cycles.
# guardrails
- Skip invoices with status = "Paid" (no action needed).
- Skip affiliates with $0 invoice amount (no billing event this cycle).
- If minimum_payout_threshold is null, treat as $0.
- If last payment status is not available, default to PENDING_SCHEDULE.
- Round currency to whole dollars.
- Return the full table even if all rows are PENDING_SCHEDULE.
MCP mode: the agent calls Everflow directly, no API key to paste. (MCP is a connector that lets your AI tool talk to Everflow on its own.) The Everflow MCP can pull reporting and payout exposure for you. The specific per-invoice status (paid, below threshold, payment failed, queued for tonight) still comes through the read-only Everflow API, so use the API tab for the full diagnosed table. This MCP prompt gives you the payout picture and the partners to watch first.
# goal
Show me where my partner payouts stand this billing cycle and which partners carry the
most unpaid exposure, so finance knows who to chase first. Use the Everflow MCP tools.
# inputs
billing_cycle = {BILLING_CYCLE} # format: YYYY-MM (e.g. 2026-05)
# steps
1. everflow:get_account_info
Confirm network name, currency, and timezone. Pass currency explicitly later if the
network default is not the one I report in.
2. everflow:run_performance_report
- dimensions: ["affiliate", "affiliate_status"]
- window: first day of {billing_cycle} through last day of {billing_cycle}
- sort by payout descending
This returns each partner's conversions and payout owed for the cycle, plus whether
the partner is active, inactive, or suspended.
3. Build a partner payout table sorted by payout owed (largest first):
Partner | Affiliate ID | Status | Conversions | Payout owed
Flag any suspended or inactive partner that still shows payout owed, since those are
the most likely to be stuck.
4. Return a one-line summary: total payout owed this cycle, how many partners, and how
much of it sits with suspended or inactive partners.
# what MCP cannot tell you here
The reason an invoice is stuck (missing billing setup, below the payout minimum, a
rejected payment, or simply queued for tonight's run) lives in the billing API, not the
MCP reporting tools. Run the API prompt on the other tab to get the full diagnosed table
with a reason and a recommended action per partner.
# guardrails
- Read-only. Never write anything back to Everflow.
- Round currency to whole dollars.
- Skip partners with zero payout owed this cycle.
Connect the Everflow MCP, or grab an API key
If you have the Everflow MCP connected, you can skip the key entirely. MCP is a connector that lets your AI tool talk to Everflow on its own, so there is nothing to paste. No MCP yet? Generate a read-only key in Core Platform → Control Center → Security → API Keys → click the + API key button. Read-only on Billing and Reporting is enough.
Decide your window
Default is the current billing cycle. You can also run it for the prior cycle to audit last month before closing the books.
Run the prompt
With MCP connected, just run the prompt as written. On the API tab, first replace {API_KEY}, {NETWORK_ID}, and {BILLING_CYCLE} (format: YYYY-MM), then run it.
Read it in Claude, ChatGPT, or Gemini
First run gives you the full unpaid invoice table with a diagnosed reason per row, plus a one-line summary. The same prompt works in any of the three.
Schedule it weekly
Drop the prompt into Make, Zapier, or Google Apps Script. Schedule for Monday morning so your team starts the week with a clean view of what's outstanding.
The Billing tab shows you what the status is. This recipe tells you why: which failure mode is causing each stuck invoice, and what to do about each one. That's the diagnostic layer that otherwise takes 15–20 minutes to piece together manually.
Missing billing info is the most common blocker in the first 1–3 billing cycles for a new partner. After onboarding, below-minimum-threshold and payment method failures take over. The recipe surfaces all three in a single run.
Yes. Change billing_cycle to any prior YYYY-MM. Useful for closing last month's books or auditing a quarter.
The four diagnosis buckets. Every unpaid invoice lands in one of four: missing billing info (no payment method on file), below the payout threshold (rolls to next cycle), a payment error (the method failed or reversed), or pending the scheduled auto-invoice run. The recipe also flags any partner blocked for two or more cycles in a row, so chronic cases do not hide in the list.
One case it will not catch on its own: a gateway rejection. An invoice can read as paid in Everflow while the payment provider (Tipalti, Veem, PayPal, ACH) actually bounced it. Those do not show as unpaid, so they will not appear in this pull. If you pay through a batched gateway, reconcile "paid" against what actually settled.
What the recipe doesn't do. It diagnoses and groups; it does not flip statuses, retry payments, or push invoices for you. Every fix stays a human decision, with the right context already attached.
Drop us the question you wish had a prompt. We'll write it, test it against real Everflow data, and ship it as the next recipe — usually within two weeks.
One Tuesday email. Latest industry news plus new recipes the day they ship. Unsubscribe in one click.
Share what's working with the Everflow API. Our team will reach out about details, timelines, and next steps.