# Dailybest Developer API ## API Docs - Auth [Check your credentials](https://docs.dailybest.com.ng/check-your-credentials-44745758e0.md): Confirms your API key and, when the request is signed, your signature — without touching your wallet. Call it first to check your setup: a 200 here means purchases with the same key and signing will authenticate. A wrong key gives 401; a missing or wrong signature gives 403. - Data [Buy data](https://docs.dailybest.com.ng/buy-data-44744322e0.md): Buys a data bundle for a phone number. The price comes from the plan in `GET /v1/data/b2b/plans`, and is debited from your wallet. The transaction comes back `SUCCESS`, `FAILED` (refunded to your wallet) or `PROCESSING` while the network confirms delivery — poll `GET /v1/data/b2b/{reference}` until it settles. - Data [List data plans](https://docs.dailybest.com.ng/list-data-plans-44744323e0.md): Data plans available to your account, priced for you. Use a plan’s `planId` when buying data. - Data [Check a data purchase](https://docs.dailybest.com.ng/check-a-data-purchase-44744324e0.md): The current status of a data purchase. While it is `PROCESSING` this checks with the network, so poll it (every 10–30 seconds is plenty) until it is `SUCCESS` or `FAILED`. - Wallet [Get wallet balance](https://docs.dailybest.com.ng/get-wallet-balance-44744325e0.md): Your current wallet balance, dedicated PIN wallet balance, and bank accounts for funding your wallet. - Airtime [Buy airtime](https://docs.dailybest.com.ng/buy-airtime-44744326e0.md): Tops up a phone number. You are charged the amount less your airtime discount (see `GET /v1/airtime/b2b/networks`), from your wallet. The transaction comes back `SUCCESS`, `FAILED` (refunded to your wallet) or `PROCESSING` while the network confirms — poll `GET /v1/airtime/b2b/{reference}` until it settles. - Airtime [List airtime networks](https://docs.dailybest.com.ng/list-airtime-networks-44774773e0.md): The networks you can buy airtime on, the discount you get on each, and the amounts allowed. - Airtime [Check an airtime purchase](https://docs.dailybest.com.ng/check-an-airtime-purchase-44774774e0.md): The current status of an airtime purchase. While it is `PROCESSING` this checks with the network, so poll it until it is `SUCCESS` or `FAILED`. - Electricity [Pay for electricity](https://docs.dailybest.com.ng/pay-for-electricity-44744328e0.md): Buys electricity for a prepaid or postpaid meter. You are charged the amount less your electricity discount, from your wallet. A prepaid token comes back as `tokenOrPin` once the transaction is `SUCCESS`; poll `GET /v1/electricity/b2b/{reference}` while it is `PROCESSING`. - Electricity [Check an electricity payment](https://docs.dailybest.com.ng/check-an-electricity-payment-44774777e0.md): The current status of an electricity payment, with the token once it is `SUCCESS`. While it is `PROCESSING` this checks with the provider. - Electricity [List distribution companies](https://docs.dailybest.com.ng/list-distribution-companies-44774775e0.md): The electricity distribution companies you can pay, your discount on each, and the amounts allowed. - Electricity [Verify a meter](https://docs.dailybest.com.ng/verify-a-meter-44774776e0.md): Looks a meter up with its distribution company, so you can confirm the customer’s name and the minimum amount before paying. - Cable TV [Renew a TV subscription](https://docs.dailybest.com.ng/renew-a-tv-subscription-44744330e0.md): Renews a decoder with a bouquet from `GET /v1/tv/b2b/packages`. The price comes from the package, less your discount, and is debited from your wallet. Poll `GET /v1/tv/b2b/{reference}` while it is `PROCESSING`. - Cable TV [List TV operators](https://docs.dailybest.com.ng/list-tv-operators-44774778e0.md): The TV operators you can renew subscriptions for, and the discount you get on each. - Cable TV [Check a TV subscription](https://docs.dailybest.com.ng/check-a-tv-subscription-44774781e0.md): The current status of a TV subscription. While it is `PROCESSING` this checks with the provider. - Cable TV [List TV packages](https://docs.dailybest.com.ng/list-tv-packages-44774779e0.md): An operator’s bouquets with what you pay for each. Use a package’s `code` when subscribing. - Cable TV [Verify a smartcard](https://docs.dailybest.com.ng/verify-a-smartcard-44774780e0.md): Looks a smartcard up with the operator, so you can confirm the subscriber’s name before paying. - Data PINs [Generate a batch of data PINs](https://docs.dailybest.com.ng/generate-a-batch-of-data-pins-44912160e0.md): Generates up to 1000 printable PINs for one data plan from `GET /v1/datapin/b2b/plans`. Nothing is charged now: each PIN is charged to your wallet when a customer dials it, at the plan's price for you at that moment. A new batch waits for approval — approve it with `POST /v1/datapin/b2b/batches/{uuid}/approve` (or ask support) before its PINs can be loaded. The PINs are in this response, and later from `GET /v1/datapin/b2b/batches/{uuid}/pins`. PIN generation may be temporarily unavailable if the carrier network is disabled by administration. - Data PINs [List your PIN batches](https://docs.dailybest.com.ng/list-your-pin-batches-44912159e0.md): Your batches, newest first, with how many of their PINs are active, used, disabled or refunded. - Data PINs [List data PIN plans](https://docs.dailybest.com.ng/list-data-pin-plans-44912161e0.md): The plans you can generate PINs for, and what each PIN costs you. PIN prices are set separately from direct data prices. You are charged when a PIN is dialled, at the price at that moment. - Data PINs [Your PIN generation limits](https://docs.dailybest.com.ng/your-pin-generation-limits-44912162e0.md): How many PINs you can generate per request and per day (Lagos time), how many you have generated today and how many are left. Ask support to change them. - Data PINs [Approve a PIN batch](https://docs.dailybest.com.ng/approve-a-pin-batch-44912164e0.md): Lets the PINs in a batch be loaded. Approve a batch once its cards are printed and in your hands. Note: Once rejected or disabled, only an administrator can approve or re-enable the batch. - Data PINs [Get a PIN batch](https://docs.dailybest.com.ng/get-a-pin-batch-44912163e0.md): One of your batches. - Data PINs [Reject a PIN batch](https://docs.dailybest.com.ng/reject-a-pin-batch-44912165e0.md): Rejects one of your batches — waiting or approved — so its unused PINs never load (for example, printed with the wrong plan). PINs already dialled are not affected. Note: Once rejected, only an administrator can approve it again. - Data PINs [Disable a PIN batch](https://docs.dailybest.com.ng/disable-a-pin-batch-44912166e0.md): Stops the batch's unused PINs from loading — for lost or stolen cards. PINs already loaded are not affected. Note: Once disabled, only an administrator can re-enable the batch. - Data PINs [List a batch's PINs](https://docs.dailybest.com.ng/list-a-batchs-pins-44912168e0.md): The PINs in a batch, with each one’s status and, once loaded, the phone number and order. Up to 1000 per page. - Data PINs [Look up a PIN](https://docs.dailybest.com.ng/look-up-a-pin-44912169e0.md): One of your PINs by its serial or the PIN itself: whether it is active or used, by which number, and its order. - Data PINs [Disable one PIN](https://docs.dailybest.com.ng/disable-one-pin-44912170e0.md): Stops one unused PIN from loading. Only administrators can re-enable a disabled PIN. - Data PINs [Simulate a dial](https://docs.dailybest.com.ng/simulate-a-dial-44912172e0.md): Loads a PIN programmatically without a physical phone dial. Works for both live and sandbox keys (db_live_ or db_test_): your wallet (or sandbox wallet) is charged, the order is sent to the network, and your webhook receives `datapin.processing` then `datapin.delivered`. - Data PINs [Get print layout customization](https://docs.dailybest.com.ng/get-print-layout-customization-44921046e0.md): Returns the admin-configured layout specification for printing data PINs on paper (paper size, pins per page, columns, footer text). - Data PINs [Print a batch (data and layout)](https://docs.dailybest.com.ng/print-a-batch-data-and-layout-44921047e0.md): Returns the batch details, active decrypted PINs, and the admin layout customization for printing. - Virtual cards [Issue a virtual card](https://docs.dailybest.com.ng/issue-a-virtual-card-44744332e0.md): Issues a USD virtual card with an opening balance paid from your wallet. - Transactions [List transactions](https://docs.dailybest.com.ng/list-transactions-44744333e0.md): Transactions made with your API keys, newest first. - Transactions [Get a transaction](https://docs.dailybest.com.ng/get-a-transaction-44744334e0.md): One transaction by the reference returned when it was created. Poll this to get the final status of a PENDING transaction. - Transactions [Resend a transaction webhook](https://docs.dailybest.com.ng/resend-a-transaction-webhook-44912173e0.md): Sends the transaction’s current status to your webhook URL again — `data.delivered`, `airtime.processing`, `electricity.failed`, `datapin.delivered` and so on — so your application can update its customer. Call it as often as you like; each one is a new delivery (a new `id`), signed and retried like any other. Your webhook URL for this key’s mode must be set. - Webhooks [List supported webhook events](https://docs.dailybest.com.ng/list-supported-webhook-events-44923359e0.md): All webhook event types (data.delivered, datapin.delivered, electricity.failed, etc.) with sample payloads. - Webhooks [Send a sample webhook](https://docs.dailybest.com.ng/send-a-sample-webhook-44923360e0.md): Dispatches a realistic sample webhook payload signed with your webhook secret directly to your configured webhook URL. Your webhook URL for this key’s mode (live or test) must be set first in the developer portal under API Keys. ## Schemas - [PurchaseDataDto](https://docs.dailybest.com.ng/purchasedatadto-18074161d0.md): - [PurchaseAirtimeDto](https://docs.dailybest.com.ng/purchaseairtimedto-18074162d0.md): - [VerifyMeterDto](https://docs.dailybest.com.ng/verifymeterdto-18085624d0.md): - [PurchaseElectricityDto](https://docs.dailybest.com.ng/purchaseelectricitydto-18085625d0.md): - [VerifyTvCustomerDto](https://docs.dailybest.com.ng/verifytvcustomerdto-18085626d0.md): - [IssueVirtualCardDto](https://docs.dailybest.com.ng/issuevirtualcarddto-18074166d0.md): - [PurchaseTvDto](https://docs.dailybest.com.ng/purchasetvdto-18085627d0.md): - [TransactionType](https://docs.dailybest.com.ng/transactiontype-18074167d0.md): - [GenerateBatchDto](https://docs.dailybest.com.ng/generatebatchdto-18145237d0.md): - [TransactionStatus](https://docs.dailybest.com.ng/transactionstatus-18074168d0.md): - [BatchReasonDto](https://docs.dailybest.com.ng/batchreasondto-18145238d0.md): - [TransactionChannel](https://docs.dailybest.com.ng/transactionchannel-18074169d0.md): - [SimulateDialDto](https://docs.dailybest.com.ng/simulatedialdto-18145239d0.md): - [Network](https://docs.dailybest.com.ng/network-18074170d0.md): - [MeterType](https://docs.dailybest.com.ng/metertype-18085628d0.md): - [TvOperator](https://docs.dailybest.com.ng/tvoperator-18085629d0.md): - [SendSampleWebhookDto](https://docs.dailybest.com.ng/sendsamplewebhookdto-18151089d0.md):