Nile PayNile Pay

Types

TypeScript type definitions for the Nile Pay SDK.

Configuration

NilePayConfig

Configuration options for SDK initialization.

FieldTypeDefaultDescription
environment'sandbox' | 'live'requiredTarget environment
apiKeystringrequiredPublic API key
apiSecretstringrequiredSecret API key
baseUrlstringundefinedCustom base URL
timeoutMsnumber30000Request timeout in milliseconds
maxRetriesnumber3Maximum retry attempts
maxPollDurationnumber300000Status polling duration in ms
maxPollAttemptsnumber150Maximum poll attempts
fetchtypeof globalThis.fetchundefinedCustom fetch implementation
interface NilePayConfig {
  environment: 'sandbox' | 'live';
  apiKey: string;
  apiSecret: string;
  baseUrl?: string;
  timeoutMs?: number;
  maxRetries?: number;
  maxPollDuration?: number;
  maxPollAttempts?: number;
  fetch?: typeof globalThis.fetch;
}

Request Types

CreateCollectionRequest

Request to initiate a payment collection.

FieldTypeRequiredDescription
amountnumberYesAmount in smallest currency unit
currencystringNoCurrency code (default: UGX)
methodstringNoSpecific payment method
descriptionstringNoPayment description
customer{ phone: string; email?: string; }YesCustomer details
referencestringYesUnique merchant reference
invoiceNumberstringNoInvoice number
notifyMerchantbooleanNoSend merchant notification
metadataRecord<string, unknown>NoCustom metadata
interface CreateCollectionRequest {
  amount: number;
  currency?: string;
  method?: string;
  description?: string;
  customer: { phone: string; email?: string; };
  reference: string;
  invoiceNumber?: string;
  notifyMerchant?: boolean;
  metadata?: Record<string, unknown>;
}

CreateInvoiceRequest

Request to create a payment link (invoice).

FieldTypeRequiredDescription
amountnumberYesInvoice amount
currencystringNoCurrency code (default: UGX)
descriptionstringNoInvoice description
customer{ phone?: string; email?: string; name?: string; }NoCustomer details
referencestringYesUnique merchant reference
dueDatestringNoISO 8601 expiration date
metadataRecord<string, unknown>NoCustom metadata
interface CreateInvoiceRequest {
  amount: number;
  currency?: string;
  description?: string;
  customer?: { phone?: string; email?: string; name?: string; };
  reference: string;
  dueDate?: string;
  metadata?: Record<string, unknown>;
}

GetStatusRequest

Request to check transaction status.

FieldTypeRequiredDescription
referencestringYesMerchant reference to look up
interface GetStatusRequest {
  reference: string;
}

Response Types

CollectionResponse

Response from creating a collection.

FieldTypeDescription
transactionIdstringNile Pay transaction ID
referencestringMerchant reference
statusTransactionStatusCurrent status
providerReferencestringProvider transaction reference
createdAtstringISO 8601 timestamp
_responseSignaturestringResponse signature
interface CollectionResponse {
  transactionId: string;
  reference: string;
  status: TransactionStatus;
  providerReference?: string;
  createdAt: string;
  _responseSignature?: string;
}

StatusResponse

Response from checking transaction status.

FieldTypeDescription
transactionIdstringNile Pay transaction ID
referencestringMerchant reference
statusTransactionStatusCurrent status
amountnumberTransaction amount
currencystringCurrency code
providerReferencestringProvider reference
createdAtstringCreation timestamp
updatedAtstringLast update timestamp
interface StatusResponse {
  transactionId: string;
  reference: string;
  status: TransactionStatus;
  amount: number;
  currency: string;
  providerReference?: string;
  createdAt: string;
  updatedAt: string;
}

Enums

TransactionStatus

Possible transaction states.

ValueDescription
'pending'Transaction created, awaiting action
'processing'Payment in progress with provider
'successful'Payment completed
'failed'Payment failed
'cancelled'Payment cancelled
type TransactionStatus = 'pending' | 'processing' | 'successful' | 'failed' | 'cancelled';

PaymentEvent

Webhook event types.

ValueDescription
'processing'Provider received payment request
'success'Payment succeeded
'failed'Payment failed
'cancelled'Payment cancelled
'error'System error occurred
type PaymentEvent = 'processing' | 'success' | 'failed' | 'cancelled' | 'error';

On this page