> ## 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.

# Validate Betting Customer

> Ask the biller who owns a customer ID. Show `customer_name` to the payer and have them confirm it before you create a top-up.

## Overview

Ask the biller who owns a customer ID. **Show the returned `customer_name` to the payer and have them confirm it before creating a top-up**: a mistyped ID is often someone else's real account. The ID's format depends on the biller (SportyBet takes a phone number); a refused ID answers `422 invalid_customer` with the biller's reason in `message`.


## OpenAPI

````yaml POST /v1/bills/betting/validate
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/validate:
    post:
      tags:
        - Bills
      summary: Validate a betting customer
      description: >-
        Ask the biller who owns a customer ID. Show `customer_name` to the payer
        and have them confirm it before you create a top-up.
      operationId: validateBettingCustomer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - biller
                - customer_id
              properties:
                biller:
                  type: string
                  description: A slug from the biller list.
                  example: bet9ja
                customer_id:
                  type: string
                  description: >-
                    The customer's ID with the biller. Its format depends on the
                    biller: SportyBet takes a phone number.
                  example: Hassan3330
      responses:
        '200':
          description: The customer
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                  message:
                    type: string
                  error:
                    type: array
                    items:
                      type: string
                  data:
                    type: object
                    properties:
                      biller:
                        type: string
                      customer_id:
                        type: string
                      customer_name:
                        type: string
                        example: HASSANA SAIDU
                      can_vend:
                        type: boolean
                      min_amount:
                        type: number
                        example: 100
                      max_amount:
                        type: number
                        example: 500000
        '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
components:
  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.