{
  "openapi": "3.1.0",
  "info": {
    "title": "Fricopay API",
    "version": "1.0.0",
    "description": "One API key for airtime, data, bills, SMS, virtual numbers and more, paid from a cedi wallet. Fricobiz collects Mobile Money payments. Full guide: https://fricopay.com/llms-full.txt"
  },
  "servers": [
    {
      "url": "https://fricopay.com"
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "description": "Your Fricopay API key, which starts with fp_. Get it at https://fricopay.com/developer."
      }
    }
  },
  "paths": {
    "/fbapi/v1/payments": {
      "post": {
        "tags": [
          "Fricobiz"
        ],
        "summary": "Create a payment",
        "description": "Collect Mobile Money payments on your own number, with a hosted pay page, checkout and signed webhooks.",
        "operationId": "post_fbapi_v1_payments",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "amount": {
                    "type": "integer",
                    "example": 50
                  },
                  "reference": {
                    "type": "string",
                    "example": "order_12345"
                  },
                  "customerName": {
                    "type": "string",
                    "example": "Ama Mensah"
                  },
                  "callbackUrl": {
                    "type": "string",
                    "example": "https://yoursite.com/webhooks/fricobiz"
                  },
                  "returnUrl": {
                    "type": "string",
                    "example": "https://yoursite.com/thanks"
                  }
                }
              },
              "example": {
                "amount": 50,
                "reference": "order_12345",
                "customerName": "Ama Mensah",
                "callbackUrl": "https://yoursite.com/webhooks/fricobiz",
                "returnUrl": "https://yoursite.com/thanks"
              }
            }
          }
        }
      }
    },
    "/devapi/v1/airtime": {
      "post": {
        "tags": [
          "Airtime"
        ],
        "summary": "Send AirtelTigo airtime",
        "description": "Send airtime to MTN, Telecel and AirtelTigo numbers from your app, paid from your wallet.",
        "operationId": "post_devapi_v1_airtime",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "network": {
                    "type": "string",
                    "example": "AT"
                  },
                  "phone": {
                    "type": "string",
                    "example": "233271234567"
                  },
                  "amount": {
                    "type": "integer",
                    "example": 5
                  },
                  "user_reference": {
                    "type": "string",
                    "example": "u_123"
                  }
                }
              },
              "example": {
                "network": "AT",
                "phone": "233271234567",
                "amount": 5,
                "user_reference": "u_123"
              }
            }
          }
        }
      }
    },
    "/devapi/v1/status/{reference}": {
      "get": {
        "tags": [
          "Bills and utilities"
        ],
        "summary": "Check transaction status",
        "description": "Pay TV subscriptions, ECG electricity and Ghana Water bills, and look up SIM owners.",
        "operationId": "get_devapi_v1_status_reference",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        },
        "parameters": [
          {
            "name": "reference",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/devapi/v1/data/bundles?network=MTN&phone=233241234567": {
      "get": {
        "tags": [
          "Data bundles"
        ],
        "summary": "MTN bundles",
        "description": "List the bundles available for a number, then buy the one you want.",
        "operationId": "get_devapi_v1_data_bundles_network_MTN_phone_233241234567",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        }
      }
    },
    "/devapi/v1/data/bundles?network=TELECEL&phone=233201234567": {
      "get": {
        "tags": [
          "Data bundles"
        ],
        "summary": "Telecel bundles",
        "description": "List the bundles available for a number, then buy the one you want.",
        "operationId": "get_devapi_v1_data_bundles_network_TELECEL_phone_233201234567",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        }
      }
    },
    "/devapi/v1/data/bundles?network=AT&phone=233271234567": {
      "get": {
        "tags": [
          "Data bundles"
        ],
        "summary": "AirtelTigo bundles",
        "description": "List the bundles available for a number, then buy the one you want.",
        "operationId": "get_devapi_v1_data_bundles_network_AT_phone_233271234567",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        }
      }
    },
    "/devapi/v1/data": {
      "post": {
        "tags": [
          "Data bundles"
        ],
        "summary": "Buy AirtelTigo bundle",
        "description": "List the bundles available for a number, then buy the one you want.",
        "operationId": "post_devapi_v1_data",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "network": {
                    "type": "string",
                    "example": "AT"
                  },
                  "phone": {
                    "type": "string",
                    "example": "233271234567"
                  },
                  "bundle_id": {
                    "type": "string",
                    "example": "db_BigTime_Data_51MB_1GHC"
                  },
                  "amount": {
                    "type": "integer",
                    "example": 1
                  },
                  "user_reference": {
                    "type": "string",
                    "example": "u_123"
                  }
                }
              },
              "example": {
                "network": "AT",
                "phone": "233271234567",
                "bundle_id": "db_BigTime_Data_51MB_1GHC",
                "amount": 1,
                "user_reference": "u_123"
              }
            }
          }
        }
      }
    },
    "/devapi/cheap-data/networks": {
      "get": {
        "tags": [
          "Cheap data"
        ],
        "summary": "List networks & packages",
        "description": "Cost: FREE. Sell affordable data bundles at live wholesale prices, delivered in about a minute.",
        "operationId": "get_devapi_cheap_data_networks",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        }
      }
    },
    "/devapi/cheap-data/verify-beneficiary": {
      "post": {
        "tags": [
          "Cheap data"
        ],
        "summary": "Check beneficiary (MTN only)",
        "description": "Cost: FREE. Sell affordable data bundles at live wholesale prices, delivered in about a minute.",
        "operationId": "post_devapi_cheap_data_verify_beneficiary",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "networkKey": {
                    "type": "string",
                    "example": "YELLO"
                  },
                  "recipient": {
                    "type": "string",
                    "example": "0241234567"
                  }
                }
              },
              "example": {
                "networkKey": "YELLO",
                "recipient": "0241234567"
              }
            }
          }
        }
      }
    },
    "/devapi/cheap-data/purchase": {
      "post": {
        "tags": [
          "Cheap data"
        ],
        "summary": "Purchase data bundle",
        "description": "Cost: Paid (see /networks for prices). Sell affordable data bundles at live wholesale prices, delivered in about a minute.",
        "operationId": "post_devapi_cheap_data_purchase",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "networkKey": {
                    "type": "string",
                    "example": "YELLO"
                  },
                  "recipient": {
                    "type": "string",
                    "example": "0241234567"
                  },
                  "capacity": {
                    "type": "integer",
                    "example": 1
                  }
                }
              },
              "example": {
                "networkKey": "YELLO",
                "recipient": "0241234567",
                "capacity": 1
              }
            }
          }
        }
      }
    },
    "/devapi/cheap-data/orders/{reference}": {
      "get": {
        "tags": [
          "Cheap data"
        ],
        "summary": "Check order status",
        "description": "Cost: FREE. Sell affordable data bundles at live wholesale prices, delivered in about a minute.",
        "operationId": "get_devapi_cheap_data_orders_reference",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        },
        "parameters": [
          {
            "name": "reference",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/devapi/cheap-data/orders/by-phone/{phone}": {
      "get": {
        "tags": [
          "Cheap data"
        ],
        "summary": "Orders by recipient phone",
        "description": "Cost: FREE. Sell affordable data bundles at live wholesale prices, delivered in about a minute.",
        "operationId": "get_devapi_cheap_data_orders_by_phone_phone",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        },
        "parameters": [
          {
            "name": "phone",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/devapi/cheap-data/transactions": {
      "get": {
        "tags": [
          "Cheap data"
        ],
        "summary": "Your purchase history",
        "description": "Cost: FREE. Sell affordable data bundles at live wholesale prices, delivered in about a minute.",
        "operationId": "get_devapi_cheap_data_transactions",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        }
      }
    },
    "/devapi/v1/utility/verify?service=DSTV&account=8226349986": {
      "get": {
        "tags": [
          "Bills and utilities"
        ],
        "summary": "Step 1 — Verify account holder",
        "description": "Pay TV subscriptions, ECG electricity and Ghana Water bills, and look up SIM owners.",
        "operationId": "get_devapi_v1_utility_verify_service_DSTV_account_8226349986",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        }
      }
    },
    "/devapi/v1/utility": {
      "post": {
        "tags": [
          "Bills and utilities"
        ],
        "summary": "Step 2 — Pay the bill",
        "description": "Pay TV subscriptions, ECG electricity and Ghana Water bills, and look up SIM owners.",
        "operationId": "post_devapi_v1_utility",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "service": {
                    "type": "string",
                    "example": "DSTV"
                  },
                  "account": {
                    "type": "string",
                    "example": "8226349986"
                  },
                  "amount": {
                    "type": "integer",
                    "example": 50
                  },
                  "user_reference": {
                    "type": "string",
                    "example": "u_123"
                  }
                }
              },
              "example": {
                "service": "DSTV",
                "account": "8226349986",
                "amount": 50,
                "user_reference": "u_123"
              }
            }
          }
        }
      }
    },
    "/devapi/v1/ecg/meters?phone=233246912184": {
      "get": {
        "tags": [
          "Bills and utilities"
        ],
        "summary": "Step 1 — List meters linked to a phone",
        "description": "Pay TV subscriptions, ECG electricity and Ghana Water bills, and look up SIM owners.",
        "operationId": "get_devapi_v1_ecg_meters_phone_233246912184",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        }
      }
    },
    "/devapi/v1/ecg": {
      "post": {
        "tags": [
          "Bills and utilities"
        ],
        "summary": "Step 2 — Top up a meter",
        "description": "Pay TV subscriptions, ECG electricity and Ghana Water bills, and look up SIM owners.",
        "operationId": "post_devapi_v1_ecg",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "phone": {
                    "type": "string",
                    "example": "233246912184"
                  },
                  "meter": {
                    "type": "string",
                    "example": "13334792"
                  },
                  "amount": {
                    "type": "integer",
                    "example": 20
                  },
                  "user_reference": {
                    "type": "string",
                    "example": "u_123"
                  }
                }
              },
              "example": {
                "phone": "233246912184",
                "meter": "13334792",
                "amount": 20,
                "user_reference": "u_123"
              }
            }
          }
        }
      }
    },
    "/devapi/v1/water/verify?meter=091019010006&phone=233242825109": {
      "get": {
        "tags": [
          "Bills and utilities"
        ],
        "summary": "Step 1 — Verify water account",
        "description": "Pay TV subscriptions, ECG electricity and Ghana Water bills, and look up SIM owners.",
        "operationId": "get_devapi_v1_water_verify_meter_091019010006_phone_233242825109",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        }
      }
    },
    "/devapi/v1/water": {
      "post": {
        "tags": [
          "Bills and utilities"
        ],
        "summary": "Step 2 — Pay water bill",
        "description": "Pay TV subscriptions, ECG electricity and Ghana Water bills, and look up SIM owners.",
        "operationId": "post_devapi_v1_water",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "phone": {
                    "type": "string",
                    "example": "233242825109"
                  },
                  "meter": {
                    "type": "string",
                    "example": "091019010006"
                  },
                  "session_id": {
                    "type": "string",
                    "example": "FROM_VERIFY_CALL"
                  },
                  "email": {
                    "type": "string",
                    "example": "user@example.com"
                  },
                  "amount": {
                    "type": "integer",
                    "example": 10
                  },
                  "user_reference": {
                    "type": "string",
                    "example": "u_123"
                  }
                }
              },
              "example": {
                "phone": "233242825109",
                "meter": "091019010006",
                "session_id": "FROM_VERIFY_CALL",
                "email": "user@example.com",
                "amount": 10,
                "user_reference": "u_123"
              }
            }
          }
        }
      }
    },
    "/devapi/v1/msisdn/verify?phone=233246912184": {
      "get": {
        "tags": [
          "Bills and utilities"
        ],
        "summary": "Look up registered SIM owner name",
        "description": "Pay TV subscriptions, ECG electricity and Ghana Water bills, and look up SIM owners.",
        "operationId": "get_devapi_v1_msisdn_verify_phone_233246912184",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        }
      }
    },
    "/devapi/virtual/services?country=usa": {
      "get": {
        "tags": [
          "Virtual numbers"
        ],
        "summary": "List services",
        "description": "Buy a temporary phone number, wait for the SMS code, and read it from the API.",
        "operationId": "get_devapi_virtual_services_country_usa",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        }
      }
    },
    "/devapi/virtual/buy": {
      "post": {
        "tags": [
          "Virtual numbers"
        ],
        "summary": "Buy a number",
        "description": "Buy a temporary phone number, wait for the SMS code, and read it from the API.",
        "operationId": "post_devapi_virtual_buy",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "country": {
                    "type": "string",
                    "example": "usa"
                  },
                  "service": {
                    "type": "string",
                    "example": "whatsapp"
                  },
                  "operator": {
                    "type": "string",
                    "example": "any"
                  }
                }
              },
              "example": {
                "country": "usa",
                "service": "whatsapp",
                "operator": "any"
              }
            }
          }
        }
      }
    },
    "/devapi/virtual/order/{id}": {
      "get": {
        "tags": [
          "Virtual numbers"
        ],
        "summary": "Check for SMS",
        "description": "Buy a temporary phone number, wait for the SMS code, and read it from the API.",
        "operationId": "get_devapi_virtual_order_id",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/devapi/virtual/cancel/{id}": {
      "post": {
        "tags": [
          "Virtual numbers"
        ],
        "summary": "Cancel + refund",
        "description": "Buy a temporary phone number, wait for the SMS code, and read it from the API.",
        "operationId": "post_devapi_virtual_cancel_id",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/devapi/virtual/finish/{id}": {
      "post": {
        "tags": [
          "Virtual numbers"
        ],
        "summary": "Finish (close order)",
        "description": "Buy a temporary phone number, wait for the SMS code, and read it from the API.",
        "operationId": "post_devapi_virtual_finish_id",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/devapi/sms/send": {
      "post": {
        "tags": [
          "SMS"
        ],
        "summary": "Send SMS",
        "description": "Send transactional SMS to Ghana numbers with your own sender ID.",
        "operationId": "post_devapi_sms_send",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "to": {
                    "type": "string",
                    "example": "0241234567"
                  },
                  "from": {
                    "type": "string",
                    "example": "MyApp"
                  },
                  "sms": {
                    "type": "string",
                    "example": "Hello from my app"
                  },
                  "unicode": {
                    "type": "string",
                    "example": "0"
                  }
                }
              },
              "example": {
                "to": "0241234567",
                "from": "MyApp",
                "sms": "Hello from my app",
                "unicode": "0"
              }
            }
          }
        }
      }
    },
    "/devapi/sms/orders": {
      "get": {
        "tags": [
          "SMS"
        ],
        "summary": "List sent messages",
        "description": "Send transactional SMS to Ghana numbers with your own sender ID.",
        "operationId": "get_devapi_sms_orders",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        }
      }
    },
    "/devapi/booster/services": {
      "get": {
        "tags": [
          "Social boost"
        ],
        "summary": "List services",
        "description": "Sell followers, likes and views on TikTok, Instagram, YouTube and more.",
        "operationId": "get_devapi_booster_services",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        }
      }
    },
    "/devapi/booster/quote": {
      "post": {
        "tags": [
          "Social boost"
        ],
        "summary": "Get price quote",
        "description": "Sell followers, likes and views on TikTok, Instagram, YouTube and more.",
        "operationId": "post_devapi_booster_quote",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "service_id": {
                    "type": "integer",
                    "example": 1234
                  },
                  "quantity": {
                    "type": "integer",
                    "example": 1000
                  }
                }
              },
              "example": {
                "service_id": 1234,
                "quantity": 1000
              }
            }
          }
        }
      }
    },
    "/devapi/booster/order": {
      "post": {
        "tags": [
          "Social boost"
        ],
        "summary": "Place an order",
        "description": "Sell followers, likes and views on TikTok, Instagram, YouTube and more.",
        "operationId": "post_devapi_booster_order",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "service_id": {
                    "type": "integer",
                    "example": 1234
                  },
                  "link": {
                    "type": "string",
                    "example": "https://tiktok.com/@user/video/123"
                  },
                  "quantity": {
                    "type": "integer",
                    "example": 1000
                  }
                }
              },
              "example": {
                "service_id": 1234,
                "link": "https://tiktok.com/@user/video/123",
                "quantity": 1000
              }
            }
          }
        }
      }
    },
    "/devapi/booster/order/{id}": {
      "get": {
        "tags": [
          "Social boost"
        ],
        "summary": "Check order status",
        "description": "Sell followers, likes and views on TikTok, Instagram, YouTube and more.",
        "operationId": "get_devapi_booster_order_id",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/devapi/booster/orders": {
      "get": {
        "tags": [
          "Social boost"
        ],
        "summary": "List your orders",
        "description": "Sell followers, likes and views on TikTok, Instagram, YouTube and more.",
        "operationId": "get_devapi_booster_orders",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        }
      }
    },
    "/devapi/checker/products": {
      "get": {
        "tags": [
          "Result checkers"
        ],
        "summary": "List products",
        "description": "Sell WAEC and BECE result checkers and get the serial and PIN back.",
        "operationId": "get_devapi_checker_products",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        }
      }
    },
    "/devapi/checker/buy": {
      "post": {
        "tags": [
          "Result checkers"
        ],
        "summary": "Buy a checker",
        "description": "Sell WAEC and BECE result checkers and get the serial and PIN back.",
        "operationId": "post_devapi_checker_buy",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "checkerType": {
                    "type": "string",
                    "example": "BECE"
                  },
                  "phoneNumber": {
                    "type": "string",
                    "example": "0241234567"
                  }
                }
              },
              "example": {
                "checkerType": "BECE",
                "phoneNumber": "0241234567"
              }
            }
          }
        }
      }
    },
    "/devapi/checker/order/{reference}": {
      "get": {
        "tags": [
          "Result checkers"
        ],
        "summary": "Check order status",
        "description": "Sell WAEC and BECE result checkers and get the serial and PIN back.",
        "operationId": "get_devapi_checker_order_reference",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        },
        "parameters": [
          {
            "name": "reference",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/devapi/checker/orders": {
      "get": {
        "tags": [
          "Result checkers"
        ],
        "summary": "List your orders",
        "description": "Sell WAEC and BECE result checkers and get the serial and PIN back.",
        "operationId": "get_devapi_checker_orders",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        }
      }
    },
    "/devapi/afa/register": {
      "post": {
        "tags": [
          "AFA registration"
        ],
        "summary": "Submit registration",
        "description": "Register customers for MTN AFA straight from your app.",
        "operationId": "post_devapi_afa_register",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "full_name": {
                    "type": "string",
                    "example": "Ama Mensah"
                  },
                  "phone_number": {
                    "type": "string",
                    "example": "0240000000"
                  },
                  "id_type": {
                    "type": "string",
                    "example": "Ghana Card"
                  },
                  "id_number": {
                    "type": "string",
                    "example": "GHA-000000000-0"
                  },
                  "dob": {
                    "type": "string",
                    "example": "1995-06-15"
                  },
                  "location": {
                    "type": "string",
                    "example": "Accra"
                  },
                  "occupation": {
                    "type": "string",
                    "example": "Trader"
                  },
                  "external_order_id": {
                    "type": "string",
                    "example": "SHOP-10001"
                  }
                }
              },
              "example": {
                "full_name": "Ama Mensah",
                "phone_number": "0240000000",
                "id_type": "Ghana Card",
                "id_number": "GHA-000000000-0",
                "dob": "1995-06-15",
                "location": "Accra",
                "occupation": "Trader",
                "external_order_id": "SHOP-10001"
              }
            }
          }
        }
      }
    },
    "/devapi/afa/registrations/{id}": {
      "get": {
        "tags": [
          "AFA registration"
        ],
        "summary": "Check registration status",
        "description": "Register customers for MTN AFA straight from your app.",
        "operationId": "get_devapi_afa_registrations_id",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/devapi/afa/registrations": {
      "get": {
        "tags": [
          "AFA registration"
        ],
        "summary": "List your registrations",
        "description": "Register customers for MTN AFA straight from your app.",
        "operationId": "get_devapi_afa_registrations",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        }
      }
    },
    "/devapi/football/status": {
      "get": {
        "tags": [
          "Football data"
        ],
        "summary": "Check subscription status",
        "description": "Live scores, results, fixtures and predictions for matches worldwide.",
        "operationId": "get_devapi_football_status",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        }
      }
    },
    "/devapi/football/livescores": {
      "get": {
        "tags": [
          "Football data"
        ],
        "summary": "Get all matches",
        "description": "Live scores, results, fixtures and predictions for matches worldwide.",
        "operationId": "get_devapi_football_livescores",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        }
      }
    },
    "/devapi/football/match": {
      "get": {
        "tags": [
          "Football data"
        ],
        "summary": "Get a specific match result",
        "description": "Live scores, results, fixtures and predictions for matches worldwide.",
        "operationId": "get_devapi_football_match",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        }
      }
    },
    "/devapi/football/match-detail": {
      "get": {
        "tags": [
          "Football data"
        ],
        "summary": "Get full match detail NEW",
        "description": "Live scores, results, fixtures and predictions for matches worldwide.",
        "operationId": "get_devapi_football_match_detail",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        }
      }
    },
    "/football/logo/{team}.png": {
      "get": {
        "tags": [
          "Football data"
        ],
        "summary": "Team logos",
        "description": "Live scores, results, fixtures and predictions for matches worldwide.",
        "operationId": "get_football_logo_team_png",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        },
        "parameters": [
          {
            "name": "team",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/devapi/football/predictions": {
      "get": {
        "tags": [
          "Football data"
        ],
        "summary": "Get predictions and betting tips",
        "description": "Live scores, results, fixtures and predictions for matches worldwide.",
        "operationId": "get_devapi_football_predictions",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        }
      }
    },
    "/devapi/bet-converter/bookies": {
      "get": {
        "tags": [
          "Bet code converter"
        ],
        "summary": "List supported bookies",
        "description": "Cost: FREE. Convert a bet code from one bookie to another.",
        "operationId": "get_devapi_bet_converter_bookies",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        }
      }
    },
    "/devapi/bet-converter/lookup": {
      "post": {
        "tags": [
          "Bet code converter"
        ],
        "summary": "Lookup & preview a bet code",
        "description": "Cost: FREE. Convert a bet code from one bookie to another.",
        "operationId": "post_devapi_bet_converter_lookup",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "originBookie": {
                    "type": "string",
                    "example": "sportybet:gh"
                  },
                  "code": {
                    "type": "string",
                    "example": "8CJFR6"
                  }
                }
              },
              "example": {
                "originBookie": "sportybet:gh",
                "code": "8CJFR6"
              }
            }
          }
        }
      }
    },
    "/devapi/bet-converter/convert": {
      "post": {
        "tags": [
          "Bet code converter"
        ],
        "summary": "Convert bet code",
        "description": "Cost: GHS 1.50 per call. Convert a bet code from one bookie to another.",
        "operationId": "post_devapi_bet_converter_convert",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "originBookie": {
                    "type": "string",
                    "example": "sportybet:gh"
                  },
                  "destBookie": {
                    "type": "string",
                    "example": "1xbet:gh"
                  },
                  "code": {
                    "type": "string",
                    "example": "8CJFR6"
                  }
                }
              },
              "example": {
                "originBookie": "sportybet:gh",
                "destBookie": "1xbet:gh",
                "code": "8CJFR6"
              }
            }
          }
        }
      }
    },
    "/devapi/bet-converter/history": {
      "get": {
        "tags": [
          "Bet code converter"
        ],
        "summary": "List your conversion history",
        "description": "Cost: FREE. Convert a bet code from one bookie to another.",
        "operationId": "get_devapi_bet_converter_history",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success. The body is JSON with ok: true."
          },
          "401": {
            "description": "Missing or invalid API key."
          },
          "402": {
            "description": "Wallet balance too low."
          }
        }
      }
    }
  }
}
