> ## Documentation Index
> Fetch the complete documentation index at: https://docs.platnova.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Betting Top-up

> Debits your NGN wallet `amount + fee` and tops up the customer's betting wallet. Answers 202 with `status: processing`; the outcome arrives as `bill.success`, `bill.failed` or `bill.reversed`.

## Overview

Debit your NGN wallet `amount + fee` and top up the customer's betting wallet. Amounts are ₦100 to ₦500,000. `reference` must be unique across your business; retry a timed-out request with the same reference, never a new one. The request answers `202` with `status: processing`; the outcome arrives as `bill.success`, `bill.failed` or `bill.reversed`. See [Betting top-ups](/bills/betting.md).


## OpenAPI

````yaml POST /v1/bills/betting
openapi: 3.1.0
info:
  title: API
  version: 1.0.0
  description: >-
    Platnova's Business API allows businesses to issue virtual accounts and
    cards to their employees, vendors, or retail customers. It allows businesses
    to streamline the process of issuing cards, manage spending, and track
    transactions. The API documentation provides information on how to integrate
    our virtual card issuing system into a business's existing systems and
    outlines the features and functionalities of the API, including card and
    account creation, management, and reporting. It also provides technical
    specifications, such as API requests, responses, and authentication
    processes.


    The API documentation is intended for developers and IT teams to use in
    order to effectively implement Platnova solutions into their business
    processes.


    # Authentication/Authorization


    To access any of the resources on the `{BaseUrl}/v1/`, the client has to
    pass pre-defined headers for authentication and authorization.


    The API is secure and only authorized clients can consume the service. There
    are API keys assigned to every business and JWT tokens assigned to every
    account for authentication/authorization.


    ## Bearer Token


    Requests may accept jwt tokens as below.


    ``` json

    Authorization: Bearer <jwt token>

     ```

    ## API Key


    Requests may acccept an api key either in the request headers or as a query
    parameter. Some requests cannot be authorized using an API key.


    ``` json

    X-API-KEY: <api key>

     ```

    OR


    ``` json

    ?api-key=<api key>

     ```

    # Base URL


    [https://sandbox.api.platnova.co](https://sandbox.api.platnova.co)


    # Errors


    Unauthorized API key


    ``` json

    {
        "status": false,
        "data": {},
        "error": [],
        "message": "unauthorized access"
    }

     ```

    Permission Denied


    ``` json

    {
        "status": false,
        "data": {},
        "error": [],
        "message": "unauthorized access: permission denied"
    }

     ```
servers:
  - url: https://api.platnova.com
    description: Production server
  - url: https://sandbox.api.platnova.co
    description: Development server
security:
  - apiKeyAuth: []
tags:
  - name: Customer
    description: Create and manage customers
  - name: Virtual Account
    description: Create and manage virtual accounts
  - name: Card
    description: Create and manage cards
  - name: Wallet
    description: List and manage wallets
  - name: Payment
    description: Send and verify payments
  - name: Transaction
    description: List transactions and generate receipts
  - name: Checkout
    description: Create and retrieve checkout sessions
  - name: Payment Link
    description: Create and manage payment links
  - name: Invoice
    description: Create and manage invoices
  - name: Bank
    description: Bank lists and account verification for bank transfers
  - name: Bills
    description: Betting wallet top-ups
paths:
  /v1/bills/betting:
    post:
      tags:
        - Bills
      summary: Create a betting top-up
      description: >-
        Debits your NGN wallet `amount + fee` and tops up the customer's betting
        wallet. Answers 202 with `status: processing`; the outcome arrives as
        `bill.success`, `bill.failed` or `bill.reversed`.
      operationId: createBettingTopUp
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - biller
                - customer_id
                - amount
                - reference
              properties:
                biller:
                  type: string
                  example: bet9ja
                customer_id:
                  type: string
                  example: Hassan3330
                amount:
                  type: number
                  description: NGN, from 100 to 500,000.
                  example: 1000
                reference:
                  type: string
                  maxLength: 100
                  description: >-
                    Your reference, unique across your business. Retry a
                    timed-out request with the same one.
                  example: order-1042
                customer_name_confirmation:
                  type: string
                  description: >-
                    The name the payer confirmed. Refused with
                    customer_name_mismatch if it does not match the biller's.
                  example: HASSANA SAIDU
      responses:
        '202':
          description: Processing
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                  message:
                    type: string
                  error:
                    type: array
                    items:
                      type: string
                  data:
                    $ref: '#/components/schemas/Bill'
        '409':
          description: Refused. `error[0]` and `data.code` carry the code.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                  message:
                    type: string
                  error:
                    type: array
                    items:
                      type: string
                  data:
                    type: object
                    properties:
                      code:
                        type: string
        '422':
          description: Refused. `error[0]` and `data.code` carry the code.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                  message:
                    type: string
                  error:
                    type: array
                    items:
                      type: string
                  data:
                    type: object
                    properties:
                      code:
                        type: string
        '503':
          description: Refused. `error[0]` and `data.code` carry the code.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                  message:
                    type: string
                  error:
                    type: array
                    items:
                      type: string
                  data:
                    type: object
                    properties:
                      code:
                        type: string
components:
  schemas:
    Bill:
      type: object
      properties:
        id:
          type: string
          description: Bill ID.
          example: 8b8f0d0e-5d6c-4d8e-9d3c-0f4a1c3b2a10
        reference:
          type: string
          description: Your reference, unique across your business.
          example: order-1042
        transaction_reference:
          type: string
          description: The wallet transaction's reference.
        product:
          type: string
          example: betting
        biller:
          type: string
          example: bet9ja
        customer_id:
          type: string
          example: Hassan3330
        customer_name:
          type: string
          description: The name the biller holds for the account.
          example: HASSANA SAIDU
        amount:
          type: number
          description: NGN credited to the customer's betting wallet.
          example: 1000
        fee:
          type: number
          description: NGN charged to you on top of amount.
          example: 0
        currency:
          type: string
          example: NGN
        status:
          type: string
          enum:
            - processing
            - success
            - failed
            - reversed
        failure_reason:
          type: string
          enum:
            - insufficient_provider_balance
            - provider_unavailable
            - provider_rejected
            - reversed
        completed_at:
          type: string
          format: date-time
          nullable: true
        created_at:
          type: string
          format: date-time
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: X-API-KEY
      description: API key for authentication.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.