Skip to main content

Adjust revenue and publisher payout on calls

Edit one call in Reporting, use the public API, or send Support a file to set revenue and publisher payout on existing call logs.

Written by Moja Bot

There are three supported ways:

  1. Edit one call in Reporting

  2. Use the public API (one call or many)

  3. Send Support a file to apply for you

Do not mix these on the same batch without agreeing who owns the write.


What you are changing

Field

Meaning

Revenue (revenue_paid_out)

Amount credited on the call as buyer / account revenue

Publisher payout (publisher_paid_out)

Amount paid to the publisher on that call

Amounts are new dollar values, not “add this much.” Sending 25.50 sets the call to $25.50, it does not add $25.50 on top of what is already there.

To clear a conversion / paid amount, set the field to 0.


Option 1 — Edit one call in Reporting

Best for a handful of calls.

  1. Open Reporting → Call Logs (the call log table).

  2. Find the call (phone number, date, campaign, or Call ID).

  3. Open the call and choose Edit.

  4. Enter the new Revenue and Publisher payout.

  5. Save.

Both amounts are required on this edit. If you only need to change revenue, re-enter the current publisher payout (and the reverse).

Confirm the row in the table after save. If the table still shows the old dollars, refresh; totals on summary views can lag the row you just edited.


Option 2 — Public API

Best for scripts, buyer billable files, or hundreds of IDs.

Auth

  1. In the portal: Admin → My account → Moja API.

  2. Generate or copy your organization API key once. Store it privately.

  3. Call https://external-api.moja-ai.com only.

Do not send this key to portal.moja-ai.com data routes — those expect a logged-in browser session, not the org key.

Header (either form):

X-API-Key: YOUR_ORG_API_KEY

or

Authorization: Bearer YOUR_ORG_API_KEY

Interactive reference: https://external-api.moja-ai.com/api/v1/docs

Look up call IDs

POST https://external-api.moja-ai.com/api/v1/reporting/calls/query

Use the id values from that response as call_log_ids. Those are Moja call log IDs, not publisher ping IDs and not phone numbers.

Bulk-set the same dollars on many calls

POST https://external-api.moja-ai.com/api/v1/reporting/calls/payout/bulk-adjust
{  "call_log_ids": ["cl_…", "cl_…"],  "revenue_paid_out": 25.50,  "publisher_paid_out": 20.40}

Rules:

  • Provide at least one of revenue_paid_out or publisher_paid_out.

  • Every ID in the request gets the same amount(s). Different dollar amounts need separate requests.

  • Maximum 500 IDs per request (use ~100 if you want easier retries).

  • Repeating the same request with unchanged amounts is safe.

  • Treat success as HTTP 200 and updated_count equal to the number of IDs you sent and an empty failed_call_log_ids. updated_count: 0 means nothing changed — stop and check IDs / key / org.

Ongoing buyer postbacks (not a one-off edit)

To have your buyer push revenue after the call:

  • Configure an incoming webhook of type update revenue (or update fields).

  • Identify the call with call_log_id or phone_number. Do not send caller_id as the match key — it will not resolve the call.

  • See Revenue Postback Endpoint Guide for the live webhook URL, auth, and payload.

update_revenue can send revenue_paid_out only. Dynamic publisher share, if snapshotted on the call, may recalculate unless you also send publisher_paid_out.


Option 3 — Send Support a file

Best when you have a buyer invoice / billable-call export and do not want to run the API yourself.

Email Support (or in-app chat) with a spreadsheet (CSV or XLSX) and the identity of the account.

Required on every row

Column

Required

Notes

Call log ID or Phone number

Yes — one of these

Call log ID is preferred. Phone must be full E.164 (+1XXXXXXXXXX). Do not use a column named caller_id unless it is actually the E.164 phone.

Revenue

Yes

Buyer-billable dollars for that call (two decimal places)

Publisher payout

Yes unless you tell us to derive it

If omitted, say the rule in the email (for example “80% of revenue, rounded half-up”)

Call time

Strongly recommended

Wall-clock time + timezone. Needed when matching by phone (redials).

Campaign name

Strongly recommended

Stops the same phone on another offer from taking the dollars

Buyer name

Recommended

Same phone can route to more than one buyer

Required in the email (not only in the sheet)

  • Organization / account name as it appears in Moja

  • Date range covered

  • Whether amounts are replacements (default) or you believe they are already correct and this is a check

  • What to do with unmatched rows (hold vs skip)

  • What to do with duplicate phones on the same day

We will not apply until you confirm a plan

Support matches rows to existing call logs, then sends a before / after plan:

  • adjust

  • already matches

  • hold (duplicate phone, two possible calls, wrong buyer, unmatched)

No new call logs are created to “make the file post.” Unmatched stays unmatched.


Quick chooser

Situation

Use

1–20 obvious calls

Reporting → Call Logs → Edit

Recurring buyer postback

Incoming update revenue / update fields webhook

Script or hundreds of known IDs

POST …/api/v1/reporting/calls/payout/bulk-adjust

Buyer CSV / invoice, no engineering

Spreadsheet to Support with the columns above


Common mistakes

  • Using caller_id instead of phone_number or call_log_id on webhooks and support files

  • Sending the org API key to the portal host

  • Putting mixed dollar amounts in one bulk request

  • Treating HTTP 200 as success when updated_count is 0

  • Editing live / in-progress calls for publisher payout (complete the call first)

Did this answer your question?