Skip to main content
POST
/
api
/
v1
/
wallet
/
fund-from-vult
curl -X POST "https://olive-gateway-a6ba.onrender.com/api/v1/wallet/fund-from-vult" \
  -H "Authorization: Bearer olive_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "subscriber_id": "sub_abc123",
    "vult_wallet_id": "vult_xyz789",
    "amount": "500.00",
    "transaction_ref": "VULT-TXN-123456",
    "pin": "1234"
  }'
{
  "success": true,
  "message": "Wallet funded successfully",
  "transaction_id": "txn_fund_abc123",
  "amount": "500.00 SLE",
  "new_balance": "1,500.00 SLE",
  "vult_ref": "VULT-TXN-123456"
}
Transfers funds from subscriber’s VULT mobile money wallet to their OLIVE wallet.

Request

Authorization
string
required
Bearer olive_live_xxx or Bearer eyJ... (JWT)

Body Parameters

subscriber_id
string
required
Subscriber UUID
vult_wallet_id
string
required
VULT wallet identifier
amount
string
required
Amount to transfer (e.g., 500.00)
transaction_ref
string
required
VULT transaction reference for reconciliation
pin
string
required
Subscriber’s OLIVE PIN

Response

success
boolean
Whether funding succeeded
transaction_id
string
OLIVE transaction ID
new_balance
string
Updated OLIVE wallet balance

Examples

curl -X POST "https://olive-gateway-a6ba.onrender.com/api/v1/wallet/fund-from-vult" \
  -H "Authorization: Bearer olive_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "subscriber_id": "sub_abc123",
    "vult_wallet_id": "vult_xyz789",
    "amount": "500.00",
    "transaction_ref": "VULT-TXN-123456",
    "pin": "1234"
  }'
{
  "success": true,
  "message": "Wallet funded successfully",
  "transaction_id": "txn_fund_abc123",
  "amount": "500.00 SLE",
  "new_balance": "1,500.00 SLE",
  "vult_ref": "VULT-TXN-123456"
}

Flow

1

Verify PIN

Authenticate subscriber with OLIVE PIN
2

Check VULT Wallet

Verify VULT wallet linked and has balance
3

Debit VULT

Deduct from VULT mobile money wallet
4

Credit OLIVE

Add to OLIVE wallet balance
5

Record

Log transaction with VULT reference

Prerequisites

VULT Linked

Subscriber must have VULT wallet linked to profile

VULT Balance

Sufficient balance in VULT wallet

Errors

StatusCodeDescription
400INVALID_AMOUNTInvalid amount format
400INVALID_PINPIN verification failed
400VULT_NOT_LINKEDVULT wallet not linked
400VULT_INSUFFICIENT_FUNDSVULT balance too low
401UNAUTHORIZEDInvalid API key
404SUBSCRIBER_NOT_FOUNDSubscriber not found
500VULT_ERRORVULT service error
500INTERNAL_ERRORServer error