# Billing, budgets, and reconciliation


This page is for the person who pays for a Developer organization's work or checks its books. It covers funding a Campaign, following what that Campaign reserved and spent, and collecting the records. Every amount belongs to one organization.

## Open Billing

Open the account menu at the bottom left of the Developer portal and select **Billing & Wallet**. The page that opens is titled **Billing**.

The figures are those of the organization that is active in that menu. If you belong to several organizations, switch to the right one before you read a balance or pay.

Billing has four views:

| View | What you do there |
| --- | --- |
| **Balances** | Read the organization's USD and USDC balances, start **Add USD**, and open **Manage USDC** |
| **Activity** | Follow each transaction of the current UTC month: funds added, reservations, usage charges, conversions, and refunds |
| **Documents** | Get monthly account statements and the receipt for each payment |
| **Earnings** | See publisher earnings, the income from data assets and agents your organization publishes. They are held apart from the USD you add to spend and play no part in funding a Campaign |

The former Wallet page is now part of **Balances**, and an old Wallet bookmark opens Billing.

## Read the two balances

**Balances** shows a **USD balance** card and a **USDC balance** card. They are separate holdings, and the page never adds them together.

| Figure | What it is | How to use it |
| --- | --- | --- |
| **Available to use** | USD you can spend, reserve, or convert now | Compare it with a Campaign's budget before launch |
| **Reserved for campaigns** | USD set aside for live or paused Campaigns | Treat it as committed, not spent. The unused part returns to **Available to use** when a Campaign closes |
| **Held for disputes** | USD held while a card payment is disputed. The line appears only while there is such an amount | Wait for the outcome. The amount returns to **Available to use** if the dispute is resolved in your favour |
| **Total USD funds** | The sum of the USD lines above. USDC and publisher earnings are outside it | Use it to confirm that no USD is missing from the lines above |
| **Available USDC** | The organization's USDC on the platform. It is one figure, with no reserved part | Leave it out of a launch decision. A launch does not draw on USDC |

The USD figures are tied together by one sum:

**Total USD funds** = **Available to use** + **Reserved for campaigns** + **Held for disputes**

When the card shows no **Held for disputes** line, that amount is zero.

A change that moves USD from one of these lines to another leaves the total where it was. The total changes only when USD enters the organization's balance or leaves it.

| What happens | Available to use | Reserved for campaigns | Total USD funds |
| --- | --- | --- | --- |
| You add USD | Rises | No change | Rises |
| A Campaign launches, or its budget is raised | Falls | Rises | No change |
| An accepted Submission is settled | No change | Falls | Falls |
| A Campaign closes with budget unused | Rises | Falls | No change |
| You are charged for data access or an agent call | Falls | No change | Falls |
| You convert USD to USDC | Falls | No change | Falls |

If a card says its balance could not be loaded, the figure is unknown rather than zero. Reload before you decide to pay. An organization that has no billing account yet sees a notice in place of the figures; its first **Add USD** opens the account.

## What USDC is, and who converts it

USDC is a digital dollar: a token whose value is tied to the US dollar, so 1 USDC is meant to be worth 1 USD. It is sent to a digital wallet instead of a bank account, which is how Contributors receive their payouts. You do not need a wallet of your own, or any knowledge of crypto, to fund a Campaign.

Humanbased pays Contributors in USDC, and you pay in USD. When an accepted Submission is settled, Humanbased takes its cost in USD from **Reserved for campaigns** and credits the Contributor's reward in USDC. That conversion is part of the settlement, and Humanbased carries it out.

So a Campaign never draws on **Available USDC**: not at launch, not when work is paid, and not at close. Only the USD balance funds a Campaign.

**Manage USDC** is a separate, optional action, and most organizations never need it. It converts your own USD into USDC that the organization then holds on the platform. The **Convert USD to USDC** section below gives the steps.

## Decide what to fund before launch

A Campaign launch reserves USD. The amount is the Campaign's whole budget cap, and it is taken from **Available to use**. The USDC balance is not counted.

So the decision before launch is one comparison:

1. In the draft, open the **Test & Launch** stage and go to its **Pricing & Budget** step. **Budget cap (USD)** is the amount the launch will reserve.
2. In Billing, open **Balances** and read **Available to use**.
3. If **Available to use** is the smaller figure, the difference is your shortfall. Add at least that much with **Add USD**.

You do not need to convert anything to USDC before launching. A conversion lowers **Available to use**, and the portal has no way to convert USDC back to USD.

The portal makes the same comparison on the **Launch** step. Its summary lists **Budget cap** and **Wallet balance**, and **Wallet balance** is the same amount as **Available to use**. While that amount is below the cap, the step shows "Wallet balance is below the $500 budget cap. Top up before launching." with your own cap in it, and the **Promote & Lock** button stays unavailable. The server checks once more when you launch, and a launch the balance cannot cover reserves nothing.

An illustration, for a Campaign whose budget cap is 500 USD:

| Moment | Available to use | Reserved for campaigns | Available USDC |
| --- | --- | --- | --- |
| Before funding | 300.00 USD | 0.00 USD | 150.00 USDC |
| After **Add USD** of 200.00 | 500.00 USD | 0.00 USD | 150.00 USDC |
| After launch | 0.00 USD | 500.00 USD | 150.00 USDC |

The shortfall was 200 USD. The 150 USDC did not reduce it, and converting part of the 300 USD would have made it larger.

## Add USD

Any member of the organization can add USD. The payment credits the organization's balance, whoever pays.

1. In **Balances**, select **Add USD**. The flow takes over the Billing page and names the organization it will fund.
2. On **Amount & billing**, choose a preset or enter your own figure in **Amount · USD**. The smallest amount is 1.00 USD.
3. Under **Who should we bill?**, choose the legal entity the receipt will name. The funds go to the organization whichever entity you choose. Then select **Continue to payment**.
4. On **Payment method**, paying by card on Stripe's page is the method offered. Select **Review top-up**.
5. On **Review & pay**, check **Credit to**, **USD to add**, and **Bill to**. **Fees and tax** are calculated by Stripe at checkout. Select the **Pay** button, which carries the amount, to open Stripe's payment page.
6. Pay on Stripe. Stripe sends you back to Billing, and the page asks the server what happened to the payment.

The page then shows one of these results:

| What the page says | What it means | What to do now |
| --- | --- | --- |
| A title ending in **USD added** | The credit is confirmed in the organization's USD balance | Use **View payment receipt** to save the receipt, then select **Done** |
| **Payment received. Confirming your credit.** | The payment succeeded and the balance has not been updated yet | Select **Check status**. Paying again at this point could charge you twice |
| **Your payment is still being confirmed** | The final result cannot be established yet | Keep the **Payment reference** and use **Check status** later. If it is still unconfirmed the next day, send the reference to hello@humanbased.ai |
| **Payment not completed** | You left the payment page before it finished | Select **Go back to the payment**. It resumes the same payment |
| **Approve the payment with your bank** | Your bank has to verify this card payment first | Select **Return to the payment page** and finish the verification |
| **Your card wasn't charged** | The payment did not go through, or the payment page expired before you finished it | If you left the payment page open and came back much later, it expired and your bank is not involved: select **Try again** to start a new payment. Otherwise check with your bank or use another card, then select **Try again** |

A confirmed payment appears in **Activity** as **Funds added**, and its receipt is listed in **Documents** under **Payment receipts**.

## Convert USD to USDC

Campaigns use USD directly. Convert only when you need USDC:

1. On the **USDC balance** card, select **Manage USDC**.
2. Enter the figure in **Amount · USD**: an amount above zero, with at most two decimal places. Only USD in **Available to use** can be converted; reserved USD is excluded, and a larger figure is refused before any rate is quoted.
3. Select **Review conversion** to see the rate, the fee, the **USDC you receive**, and both balances as they will be afterwards. **Change amount** goes back to the figure.
4. Select **Confirm conversion** within five minutes; the window counts the quote down. The result gives a **Reference** and both balances after the conversion.

If the five minutes run out, **Get a new quote** takes the place of **Confirm conversion** and quotes the same amount again; the rate may have changed. If confirming fails, the window says that nothing was converted and offers **Try again**. When only the reply was lost, the conversion may still have gone through. **Try again** sends the same request, so it returns that conversion instead of making a second one. A new quote is a new request: after a failed confirmation, check **Available USDC** and **Activity** for a conversion you did not see complete before you confirm a new quote.

The conversion goes one way only. The same window shows **USDC → USD** and **Withdraw to a bank account** as locked, so neither can be used.

## Set and raise a Campaign budget

In a draft, enter **Budget cap (USD)** on the **Pricing & Budget** step. The same step lists the reward for each human step; to change a reward, edit the corresponding step in Builder. Where a platform service fee applies, the step shows it on its own line, added on top of the rewards, and the budget has to cover both. [Launching](/tasks/launch) reserves the whole cap; that page calls this locking the budget.

For a running Campaign, open **Setup** and its **Budget & costs** section. **Increase budget** on the Campaign's **Overview** leads to the same place.

1. Beside **Total budget**, read **Wallet available**. It is the organization's **Available to use**.
2. Enter the new total in **Budget (USD)**. It has to be higher than the current budget.
3. Select **Increase budget**. Only the difference between the new total and the old one is reserved.

If **Available to use** is lower than that difference, the increase is refused and nothing is reserved. Add USD for the difference, then save again.

After launch the budget only goes up, and the reservation stays with the Campaign while it is live or paused. When the reserved amount can no longer pay for the next piece of work, the Campaign pauses itself. To continue, raise the budget and then select **Resume**; the Campaign stays paused until you do. Once an ended Campaign has finished closing, the unused part of its reservation returns to **Available to use**. [Campaign states](/tasks/launch) describes pausing and closing.

## Reconcile one Campaign

A Campaign's money moves three times: it is reserved at launch, spent as work is accepted, and returned when the Campaign closes. **Activity** records each move as a row. Each row shows a name and, beneath it, a type.

| Type and status in **Activity** | What happened | How to count it |
| --- | --- | --- |
| **Campaign reservation**, status **Reserved**. The amount is negative and marked **Moved to reserved** | A launch or a budget increase moved USD from **Available to use** to **Reserved for campaigns** | As budget set aside. It is not a charge |
| **Reservation released**, status **Settled**, negative amount | One accepted Submission was settled, and its cost was paid out of **Reserved for campaigns**: the Contributor's reward plus the platform service fee, counted in USD. **Available to use** did not change | As the Campaign's spending. Add these rows up |
| **Refund**, status **Settled**, positive amount, with a name that begins "Refund from locked balance" | The Campaign closed, and its unused reservation went back to **Available to use** | As budget returned, not as income |

So **Reserved for campaigns** changes in three ways. It rises at a launch or a budget increase, falls as Submissions settle, and falls again when a Campaign closes. Only the second is spending.

The Campaign ID joins these records. It is the part of the Campaign's address in the portal that follows `/campaigns/`. The name of a reservation row and of each single settlement row contains it. In the details of the return row, **Reference** reads `close:` followed by the Campaign ID. The exported file carries it in a `campaign_id` column.

To total one Campaign:

1. Copy the Campaign ID from the Campaign's address.
2. In Billing, open **Activity**, leave the filter on **All activity**, and select **Export all CSV**. The file lists every transaction of the current UTC month to date, one per line. For a Campaign that runs across months, export before each month ends.
3. Keep the lines whose `campaign_id` is your Campaign.
4. Add up `amount` for each `type`: `lock` is the reservation, `release` is spending, and `refund` is the return.

You can also separate the three on screen. Change the same filter to **Reservations**, **Usage charges**, or **Refunds**. In **Grouped** mode, several settlements for one Campaign on the same UTC day appear as one row, named after the Campaign and marked **Daily total**. Opening it lists the same transactions one by one, so count either the group or its lines. To find the charge for a single Submission, paste the Submission ID into the search box.

Continuing the illustration, the 500 USD Campaign accepts work costing 300 USD in total and is then ended:

| Activity row | Amount | Available to use | Reserved for campaigns |
| --- | --- | --- | --- |
| **Campaign reservation** | -500.00 USD | 0.00 USD | 500.00 USD |
| **Reservation released**, all rows together | -300.00 USD | 0.00 USD | 200.00 USD |
| **Refund** | +200.00 USD | 200.00 USD | 0.00 USD |

The Campaign cost 300 USD. Adding the reservation to the settlements would report 800 USD for a Campaign whose budget was 500.

Do not subtract organization-wide figures from one Campaign's budget. The **Usage charges** total at the top of **Activity** and the figures in **Balances** cover every Campaign, data access charge, and agent call in the organization. For one Campaign's current position, open that Campaign's **Overview** and read **Budget & obligations**. It reports **Campaign funds held**, **Outstanding obligations**, and **Available for new work** for that Campaign alone.

## Who can do what

Billing checks that you are a member of the organization. It does not check your organization role. Committing funds to a Campaign is checked separately, against your role on that Campaign.

| Action | Who can do it | If you cannot |
| --- | --- | --- |
| Open Billing and read **Balances**, **Activity**, and **Documents**; export CSV; download statements and receipts | Any member of the organization | Ask an Owner or Admin of the organization to add you as a member |
| **Add USD** | Any member of the organization | The same |
| Convert USD to USDC in **Manage USDC** | Any member of the organization | The same |
| Launch a Campaign, which reserves its budget | A Campaign owner | The launch is refused and nothing is reserved. Ask a Campaign owner to launch it |
| **Increase budget** on a running Campaign | A Campaign owner | The save is refused and the budget stays as it was. Ask a Campaign owner to make the change |

A Campaign owner is the person who created the Campaign, or an Owner or Admin of its organization. Other members of the organization hold a lower role on the Campaign, and launching it or changing its budget needs an owner. A role recorded for you on the Campaign itself takes the place of this default.

So a colleague who can read every figure in Billing may still be unable to launch a Campaign or raise its budget. Organization roles are listed under **Members** in [Organization](/collaboration/organization). The Campaign's own members are listed in its **Setup**, under **Team & access**.

## Check costs, receipts, and statements

In a Campaign's **Budget & costs** section, **Cost breakdown** lists **Actual cost**, **Platform fee**, and **Total / record** separately, together with the account's fee tier. Read the rate shown for that record instead of applying one historical rate to all work. Where the line reads **Platform fee (20% of total)**, a 1 USDC Contributor reward gives a total of `1 ÷ (1 − 20%) = 1.25 USDC` and a fee of 0.25 USDC. That illustrates the basis; the rate for each record is the one shown beside it.

**Documents** holds two kinds of record:

- **Payment receipts** lists each payment with its date and amount. **View receipt** opens a preview and **Download PDF** saves the file. A receipt confirms one payment.
- The statement table lists the months of one calendar year. The current month is marked **In progress — draft** and offers **Generate PDF**. A closed month is marked **Available** and offers **Download PDF**. For a month earlier than the listed years, pick it in the month field under the table and select **Get statement**.

A statement gives opening and closing balances, funds added, grouped usage, refunds, and conversions, with USD and USDC shown separately. The statement for a closed month is issued once and stays fixed; the one for the current month is a draft of the period so far. **Download underlying transactions as CSV** gives the current month's transactions behind it.

For a discrepancy you cannot explain, send [support](/help/support) the organization, the month, the **Transaction ID**, the type, and the Campaign ID. Leave out full card details and access credentials.
