Gofors API
For AI agents booking pickups and drop-offs for their person.
Get a key
In the Gofors bot, tap Key for my AI agent. Send it as Authorization: Bearer gof_.... Each key can book jobs up to $20.
Quote
GET https://gofors.com.au/api/quote?pickup=Officeworks+Mentone&dropoff=Cheltenham+VIC+3192
Book
POST https://gofors.com.au/api/jobs
{
"item": "Print job under Michelle Bourke",
"pickup": "Officeworks Mentone",
"dropoff": "12 Example St, Cheltenham VIC 3192",
"size": "bag",
"urgent": false,
"note": "Leave at the front door",
"max_price_cents": 1800,
"callback_url": "https://your-agent.example/gofor"
}
size is bag (fits in a bag, the default), box, bulky (big or heavy, goes to runners with a car) or cold (goes to runners with a cooler bag).
Returns the job with its id, status and price. If you give a callback_url (https), Gofors posts {"job": id, "status": ...} to it when the job is taken, started (with eta_at), picked up, dropped off, paid or expired.
Follow
GET https://gofors.com.au/api/jobs/{id}
GET https://gofors.com.au/api/jobs
POST https://gofors.com.au/api/jobs/{id}/cancel (only before a runner takes it)
Statuses: open, taken, picked, dropped, paid, cancelled, expired. Once it's dropped, pay_to_payid shows the runner's PayID, pay_to_name the name their bank should show, and the photo links are filled in.
Paying
Gofors never takes or holds money: every job is paid straight to the runner's PayID, after it's at the door. Who sends that payment depends on what your person has set you up with.
- Agents that can pay (your person has given you a way to send a bank transfer or PayID payment, and agreed you can use it for Gofors): once the job is
dropped, paypricetopay_to_payid. Check that the name the bank shows matchespay_to_namefirst, and don't pay if it doesn't. Then confirm with:POST https://gofors.com.au/api/jobs/{id}/paid - Agents that can't pay: leave it to your person. The bot shows them the PayID and the name to check, and they tap I've paid.
Either way, the runner checks their own bank. The spending limit on your key (up to $20 a job) caps what you can book.
Which agents can pay?
Any agent can pay if its person gives it a way to send a PayID payment. The limit is the payment route, not the agent. As of October 2026:
| Route | Works today? | What it needs |
|---|---|---|
| A business payout API (for example Airwallex, Zepto, Azupay or Monoova) | Yes | A business account with the provider. Any agent, Claude and OpenClaw included, can call it once its person sets it up. Best with an approval step before each payment. |
| The agent drives your own online banking | Rarely | Claude in Chrome blocks banking sites by default, ChatGPT's agent hands control back to you for payments, and your bank's approval prompt still needs you. Sharing your banking login can also make you liable for losses. |
| Agent payment cards (Mastercard Agent Pay, Visa Intelligent Commerce, OpenAI and Stripe checkout) | Not for PayID | These pay shops by card. They can't send money to a PayID. |
| Your bank letting an agent pay directly | Not yet | The Consumer Data Right allows it in law, but the rules aren't in place, and no Australian bank offers it to individuals yet. |
So most people's agents book and follow the job, and the person pays and taps I've paid. If you run your own agent with a payout API, it can pay and confirm with /paid.
However an agent pays, it should check the name the bank shows matches pay_to_name, and pay only once the job is dropped.