Skip to main content
Use this endpoint to check the outcome of a transfer you initiated with Funds Transfer. Pass the reference_number you supplied in that request and the API returns the current status of the transaction. This is the primary way to confirm delivery when your webhook endpoint does not receive a notification — for example, during a network interruption or when a transfer is still processing.

Endpoint

POST https://baasapi.payrepmfb.com/api/v1/transaction/transfer/api/transaction_status

Authentication

Pass your bearer JWT in the Authorization header. Obtain a token from Generate Token.
Authorization: Bearer <access_token>

Request body

reference_number
string
required
The unique reference number you provided when calling Funds Transfer. This is your own identifier for the transaction — not Shogun’s internal transaction_id.

Request example

curl -X POST https://baasapi.payrepmfb.com/api/v1/transaction/transfer/api/transaction_status \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -d '{
    "reference_number": "ACME-PAY-20260428-0042"
  }'

Responses

200 — Status retrieved

{
  "status": true,
  "response_code": "00",
  "message": "Transaction status retrieved successfully",
  "data": {
    "reference_number": "ACME-PAY-20260428-0042",
    "transaction_id": "txn_a1b2c3d4e5f6",
    "amount": "25000.00",
    "transfer_type": "inter",
    "status": "successful",
    "remarks": "Vendor payout — Invoice INV-2026-042",
    "created_at": "2026-04-28T10:30:00Z",
    "updated_at": "2026-04-28T10:30:45Z"
  }
}

Error — Reference not found

{
  "status": false,
  "response_code": "06",
  "message": "Transaction not found for the given reference number.",
  "data": null
}

Response fields

data.reference_number
string
Your reference number, echoed back from the original funds transfer request.
data.transaction_id
string
Shogun’s internal transaction identifier.
data.amount
string
Transfer amount in NGN.
data.transfer_type
string
intra or inter, as specified in the original transfer request.
data.status
string
Current status of the transaction. Possible values:
  • pending — the transfer is still being processed by the bank or NIP
  • successful — the funds have been successfully delivered to the beneficiary
  • failed — the transfer was not completed; no funds were debited, or a debit has been reversed
data.remarks
string
The narration provided in the original transfer request.
data.created_at
string
ISO 8601 timestamp of when the transfer was initiated.
data.updated_at
string
ISO 8601 timestamp of the most recent status update.
Inter-bank transfers via NIP typically settle within seconds, but may remain pending for up to a few minutes during peak periods. If you poll for status, use an exponential backoff strategy — for example, check after 5 s, then 15 s, then 60 s — rather than polling in a tight loop. For production workloads, configure a webhook to receive real-time delivery notifications instead of relying solely on polling.