---
title: "Vend betting via parent account"
method: POST
path: "/v2/bill/betting"
tags: ["Betting Vending"]
---

# Vend betting via parent account

`POST /v2/bill/betting`

## Request

- Base URL: `https://api.nomba.com`
- URL: `https://api.nomba.com/v2/bill/betting`
- Auth: HTTP bearer

You can use this endpoint to vend betting via parent account

## Headers

- `accountId` string, uuid, required

## Request body

- BettingVendingRequest
  - `bettingProvider` string
  - `merchantTxRef` string: This is an idempotency key and must be unique per transaction.
  - `phoneNumber` string
  - `payerName` string
  - `amount` integer
  - `customerId` string

## Response `200`

OK - your request was successful.

- object
  - `code` '200' | '201' | '400' | '401' | '403' | '429' | '500', required: Response code. This reflects the HTTP status code of the response, e.g. `200` when the request completed successfully and `201` when it was accepted and is still being processed.
  - `description` string, required: Response description
  - `message` string: Response message
  - `status` boolean: Whether the request was successful
  - `data` BettingVendingV2Response, required
    - `id` string, required: Unique identifier of the betting transaction
    - `status` string, required: Status of the transaction. `SUCCESS` (HTTP 200) means the purchase completed; `PENDING_BILLING` (HTTP 201) means it is still being processed. In addition, any undocumented `data.status` should be treated as `PENDING_BILLING`; listen for the webhook or requery the transaction for its final status.
    - `type` string, required: Transaction type
    - `amount` number, double, required: Amount funded into the betting account
    - `source` string: Channel through which the transaction was initiated
    - `sourceUserId` string, nullable: Identifier of the source user, if any
    - `customerBillerId` string: Customer ID on the betting platform credited with the payment
    - `productId` string: The betting provider
    - `meta` object: Additional transaction metadata
    - `userId` string, nullable: Identifier of the user, if any
    - `timeCreated` string, date-time, required: Time the transaction was created

## Other responses

- `201`: Created - your request was accepted and is being processed. `data.status` is `PENDING_BILLING`; listen for webhook notifications or requery the transaction for the final status.
- `400`: The request body sent by merchant did not pass the validation checks
- `401`: The access_token provided to access the resource is missing or invalid.
- `403`: The client does not have the permissions to access this resource
- `404`: The record that the client is trying to access does not exist.
- `429`: The client has maxed out the number of calls within a time period on this resource.
- `500`: Downstream system error.
- `default`: Resource not available

## Changes

- **2026-11-03** `278a25dccfe5`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/nomba/apis/vendor-api/changes/v2/bill/betting/post.md)

---

[API](https://skmtc.dev/nomba/apis/vendor-api.md) - [All operations](https://skmtc.dev/nomba/apis/vendor-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nomba/apis/vendor-api/revisions/278a25dccfe5?raw)
