Base URL:
https://api.yuciferpay.xyz
Interactive documentation is available at:
Swagger Docs
ReDoc
Every request must include your API key.
api-key: my-secret-key Content-Type: application/json
All routes that require a schedule_id expect the following format:
SCHEDULE-{user_id}-{serial_id}
Example:
SCHEDULE-12-001
Returns your YuciferPay user ID.
GET https://api.yuciferpay.xyz/user/id Headers api-key: my-secret-key
{
"code":200,
"message":"SUCCESS",
"user_id":12
}
Returns all schedules belonging to your account.
GET https://api.yuciferpay.xyz/get_schedules Headers api-key: my-secret-key
{
"code":200,
"message":"SUCCESS",
"data":[
{
"Schedule Id":"SCHEDULE-12-001",
"Account Name":"John Doe",
"Bank Name":"GTBank",
"Account No":"0123456789",
"Amount":"5000",
"Is_active":true,
"Paused":false,
"Pay date":"2026-06-22"
}
]
}
Returns information about one schedule.
GET https://api.yuciferpay.xyz/get_schedule/SCHEDULE-12-001 Headers api-key: my-secret-key
{
"code":200,
"message":"SUCCESS",
"data":[
{
"Schedule Id":"SCHEDULE-12-001",
"Account Name":"John Doe",
"Bank Name":"GTBank",
"Account No":"0123456789",
"Amount":"5000",
"Is_active":true,
"Paused":false,
"Pay date":"2026-06-22"
}
]
}
Creates a new payment schedule.
POST https://api.yuciferpay.xyz/add_schedule
Headers
api-key: my-secret-key
Content-Type: application/json
Body
{
"serial_id":"001",
"acct_name":"John Doe",
"bank_name":"GTBank",
"acct_num":"0123456789",
"amount":"5000",
"date":"2026-06-22",
"frequency":4
}
frequency is an optional integer that specifies the interval, in weeks, between recurring payments.
If omitted, the default value is 4 (monthly).
Examples:
{
"code":200,
"message":"SUCCESS"
}
Updates an existing schedule. All fields are optional. Only supplied values will be changed.
PUT https://api.yuciferpay.xyz/schedule/edit/SCHEDULE-12-001
Headers
api-key: my-secret-key
Content-Type: application/json
Body
{
"acct_name":"John Doe",
"bank_name":"GTBank",
"acct_num":"0123456789",
"amount":"10000",
"date":"2026-06-25",
"frequency":4
}
frequency is an integer that specifies the interval, in weeks, between recurring payments.
If omitted, the default value is 4 (monthly).
Examples:
{
"code":200,
"message":"SUCCESS"
}
Deletes an existing schedule.
DELETE https://api.yuciferpay.xyz/schedule/SCHEDULE-12-001 Headers api-key: my-secret-key
{
"code":200,
"message":"SUCCESS"
}
Temporarily pauses a schedule. Paused schedules will not be processed.
POST https://api.yuciferpay.xyz/schedule/SCHEDULE-12-001/pause Headers api-key: my-secret-key
{
"code":200,
"message":"SUCCESS"
}
Reactivates a previously paused schedule.
POST https://api.yuciferpay.xyz/schedule/SCHEDULE-12-001/unpause Headers api-key: my-secret-key
{
"code":200,
"message":"SUCCESS"
}
Returns every order belonging to your account.
GET https://api.yuciferpay.xyz/orders Headers api-key: my-secret-key
{
"code":200,
"message":"SUCCESS",
"data":[
{
"Order id":"ORD-1001",
"Account Number":"0123456789",
"Account Name":"John Doe",
"Bank Name":"GTBank",
"Amount":"5000",
"Status":"success",
"Processed with":"Paystack",
"Reference Id":"REF12345",
"Is Queued":false,
"Created At":"2026-06-23",
"Updated At":"2026-06-23"
}
]
}
Returns orders that are currently processing.
GET https://api.yuciferpay.xyz/orders/active Headers api-key: my-secret-key
{
"code":200,
"message":"SUCCESS",
"data":[]
}
Returns orders that failed during processing.
GET https://api.yuciferpay.xyz/orders/failed Headers api-key: my-secret-key
{
"code":200,
"message":"SUCCESS",
"data":[]
}
Retries all failed orders belonging to your account.
POST https://api.yuciferpay.xyz/orders/retry Headers api-key: my-secret-key
{
"code":200,
"message":"SUCCESS"
}
Enables automatic schedule execution.
POST https://api.yuciferpay.xyz/automation/enable Headers api-key: my-secret-key
{
"code":200,
"message":"SUCCESS"
}
Disables automatic schedule execution.
POST https://api.yuciferpay.xyz/automation/disable Headers api-key: my-secret-key
{
"code":200,
"message":"SUCCESS"
}
Resolves a bank account number and returns the account holder's name.
POST https://api.yuciferpay.xyz/resolve-account
Headers
api-key: my-secret-key
Content-Type: application/json
Body
{
"bank_name": "GTBank",
"acct_num": "0123456789"
}
bank_name is the name of the bank associated with the account.
acct_num is the bank account number to resolve.
{
"code": 200,
"message": "SUCCESS",
"data": {
"account_name": "John Doe"
}
}
Returns the list of banks supported by the payment provider configured for your YuciferPay account.
GET https://api.yuciferpay.xyz/get-bank-list Headers api-key: my-secret-key
{
"code": 200,
"message": "SUCCESS",
"data": {
"bank_list": [
"Access Bank",
"GTBank",
"First Bank",
"United Bank for Africa"
]
}
}
YuciferPay sends webhook notifications to your configured webhook URL when a payout is successfully processed or fails.
YuciferPay currently supports the following webhook events:
YuciferPay sends a POST request to your configured webhook URL. Each request contains an X-Signature header that can be used to verify that the webhook was sent by YuciferPay.
POST https://your-domain.com/webhook Headers Content-Type: application/json X-Signature: generated-signature
{
"event_id": "evt_a1b2c3d4e5f6",
"event_type": "payout.success",
"timestamp": "2026-06-22T14:30:00+00:00",
"data": {
"Schedule_id": "SCHEDULE-12-001",
"Processed_with": "paystack",
"Reference": "TRF_123456789",
"Status": "success",
"Amount": 5000,
"Currency": "NGN"
}
}
{
"event_id": "evt_a1b2c3d4e5f6",
"event_type": "payout.failed",
"timestamp": "2026-06-22T14:30:00+00:00",
"data": {
"Schedule_id": "SCHEDULE-12-001",
"Processed_with": "paystack",
"Reference": "TRF_123456789",
"Status": "failed",
"Amount": 5000,
"Currency": "NGN"
}
}
Each webhook request is signed using your webhook secret and the HMAC-SHA256 algorithm. The resulting signature is included in the X-Signature header.
To verify a webhook, generate an HMAC-SHA256 signature using your webhook secret and the exact JSON request body, then compare the generated signature with the value in the X-Signature header.
signature = HMAC-SHA256(
webhook_secret,
request_body
)
The signature is represented as a hexadecimal string.
import hmac
import hashlib
import json
signature = hmac.new(
webhook_secret.encode(),
json.dumps(data).encode(),
hashlib.sha256
).hexdigest()
if hmac.compare_digest(
signature,
request.headers.get("X-Signature", "")
):
# Webhook is valid
pass
GET /user/id to obtain your user ID.POST /add_schedule.GET /get_schedules.YuciferPay automatically generates interactive documentation via FastAPI. For a complete list of endpoints, schemas and response models, visit: