How ptnusasatuintiartha-doku/doku-nodejs-library works
DOKU Node.js SDK: an application initializes Snap, which obtains and refreshes access tokens before dispatching virtual-account or direct-debit operations to controllers and API services. The SDK also exposes inbound signature/token validation and notification-response helpers, plus legacy inquiry/notification mapping. DTOs define the request and response shapes. The README documents additional status, refund, balance, binding, and card operations. Some subsystem details are unsampled, so links to those capabilities are limited to documented or indexed relationships.
Main entry points: vaController.js VA controller · snap.js Snap facade · directDebitController.js Direct debit controller · tokenController.js Token controller
Components 19
SDK entry
- Snap facade
_modules/snap.js
Auth and signing
- Token controller
_controllers/tokenController.js - Token and signatures
_services/tokenService.js - Signature helper
_services/signatureService.js - API configuration
_commons/config.js - Request identifiers
_commons/commonFunction.js - Header validation
_commons/validateHeader.js
Virtual accounts
- VA controller
_controllers/vaController.js - VA API and mapping
_services/vaService.js - VA request/response DTOs
_models - Inquiry/notify mapping
_services/vaService.js - Notification controller
_controllers/notificationController.js - Notification responses
_services/notificationService.js
Direct debit
- Direct debit controller
_controllers/directDebitController.js - Direct debit API
_services/directDebitService.js - Debit operation DTOs
_models - Debit channel values
_commons/ddChannelEnum.js
Other components
- Merchant app
- DOKU API
Connections 23
- Merchant app → Snap facade: initializes and calls
- Snap facade → Token controller: obtains tokens
_modules/snap.js - Snap facade → VA controller: dispatches VA operations
_modules/snap.js - Snap facade → Direct debit controller: dispatches debit operations
_modules/snap.js - Snap facade → Notification controller: dispatches notifications
_modules/snap.js - Snap facade → Header validation: validates headers
_modules/snap.js - VA controller → VA API and mapping: calls VA operations
_controllers/vaController.js - VA controller → Token and signatures: signs requests
_controllers/vaController.js - VA controller → Request identifiers: generates request IDs
_controllers/vaController.js - VA controller → API configuration: selects endpoints
_controllers/vaController.js - VA API and mapping → DOKU API: sends API requests
_services/vaService.js - VA controller → Inquiry/notify mapping: delegates mappings
_controllers/vaController.js - Notification controller → Notification responses: builds responses
_controllers/notificationController.js - Direct debit controller → Direct debit API: calls debit operations
_controllers/directDebitController.js - Direct debit controller → Token and signatures: signs requests
_controllers/directDebitController.js - Direct debit controller → API configuration: selects endpoints
_controllers/directDebitController.js - Direct debit API → DOKU API: sends API requests
_services/directDebitService.js - Token controller → Token and signatures: creates and validates tokens
_controllers/tokenController.js - Token controller → Signature helper: creates signatures
_controllers/tokenController.js - Token controller → VA API and mapping: builds request headers
_controllers/tokenController.js - Token and signatures → DOKU API: requests access tokens
_services/tokenService.js - VA controller → VA request/response DTOs: accepts operation DTOs
- Direct debit controller → Debit operation DTOs: accepts operation DTOs
_controllers/directDebitController.js