1. Custody Bank Deposit
Nilpay
  • NilPay Bank Integration API
    • Custody Bank Deposit
      • Integration Guide
      • Initiate deposit transaction
        POST
      • Complete deposit transaction
        POST
    • Bank Cashout
      • Integration Guide
      • Inquiry for bank cashout
      • Initiate bank cashout
      • Complete bank cashout with OTP
    • Schemas
      • InitiateDepositRequest
      • BankCashoutInquiryRequest
      • CompleteDepositRequest
      • BankCashoutInitiateRequest
      • BankCashoutCompleteRequest
      • Depositor
      • BankCashoutInquirySuccessResponse
      • InitiateDepositSuccessResponse
      • ChargeResponse
      • BankCashoutInitiateSuccessResponse
      • AccountBasicInfo
      • BankCashoutCompleteSuccessResponse
      • CompleteDepositSuccessResponse
      • WalletBasicInfo
      • ErrorResponse
      • ValidationErrorResponse
      • TransactionResponse
      • ProblemDetailsResponse
  • NilPay External Party Transfer API
    • Transactions
      • Integration Guide
      • External Party Transfer To Wallet
    • Schemas
      • ExternalPartyTransferRequest
      • TransactionResponseData
      • ExternalPartyTransferSuccessResponse
      • ErrorResponse
  1. Custody Bank Deposit

Complete deposit transaction

POST
/v1/transactions/custody-bank/deposit/complete
Completes money transfer after bank confirmation.
Idempotency behavior:
If BankTranID was already processed successfully, API returns the existing nilpayTranRef.

Request

Authorization
Basic Auth
Send your HTTP requests with an
Authorization
header that contains the word Basic followed by a space and a base64-encoded string username:password
Example:
Authorization: Basic *****************
API Key
Add parameter in header
X-Signature
Example:
X-Signature: ********************
API Key
Add parameter in header
X-Timestamp
Example:
X-Timestamp: ********************
or
Header Params

Body Params application/jsonRequired

Examples

Responses

🟢200
application/json
Success
Bodyapplication/json

🟠400
🟠401
🟠404
🔴500
Request Request Example
Shell
JavaScript
Java
Swift
cURL
curl --location 'https://api.dev.pynil.com/v1/transactions/custody-bank/deposit/complete' \
--header 'Authorization: Basic <encoded-value>' \
--header 'X-Signature: <api-key>' \
--header 'X-Timestamp: <api-key>' \
--header 'Content-Type: application/json' \
--data '{
    "walletNumber": "101000030",
    "currency": "SDG",
    "amount": 500,
    "depositor": {
        "fullName": "Layla ismaeil",
        "mobile": "0918003874",
        "idNumber": "1001-1090-180",
        "address": "Khartoum - sudan"
    },
    "BankTranID": "41128",
    "timestamp": "2025-08-03",
    "notes": "Layla deposits money"
}'
Response Response Example
200 - Successful completion response
{
    "success": true,
    "message": "Success.",
    "statusCode": 200,
    "data": {
        "nilpayTranRef": 6
    }
}
Previous
Initiate deposit transaction
Next
Integration Guide
Built with