[FEAT-XXX] Feature Name
Bank: CNB EASI-Link
Status: Draft | Confirm-Blocked | Spec-Complete | Test-Ready | UAT-Ready | Signed-Off
Last Updated: YYYY-MM-DD
Author:
Confirm Gate: OPEN | CLEARED — (list unresolved [CONFIRM with CNB] items here or "None")
1. Business Context
What problem does this feature solve? What business process does it replace or automate? 1–3 sentences.
Replaces: (e.g., manual check courier, NetSuite AR module, Excel reconciliation)
Trigger: (What initiates this feature? User action, scheduled job, bank event?)
Outcome: (What is the expected end state when this feature completes successfully?)
2. Actors & Preconditions
Actors:
- Sub-ledger application
- CNB EASI-Link API
- (Add: GL approver, AR team member, Treasury, etc. as applicable)
Preconditions (must be true before this feature executes):
- [ ] OAuth 2.0 Bearer Token is valid (FEAT-001 Authentication)
- [ ] (Add feature-specific preconditions)
Postconditions (guaranteed true when feature completes successfully):
- [ ] (e.g., Transaction recorded in sub-ledger with status = Confirmed)
- [ ] (e.g., Journal Entry queued for NetSuite posting)
3. API Mapping
| Step | Action | CNB Service | Protocol | Source Doc |
|---|---|---|---|---|
| 1 | REST / SOAP / SFTP | [Doc, p. X] | ||
| 2 |
Endpoint(s):
METHOD https://api.cnb.com/rs/...Service Availability: (e.g., 3am–11pm PT Mon–Sat)
Rate Limits / Pagination: (MaxRec, cursor, polling cadence)
4. Request Schema
All fields sourced from CNB documentation. Unconfirmed fields tagged [CONFIRM with CNB].
| Field | Type | Required | Constraints | Description | Source |
|---|---|---|---|---|---|
| [Doc, p. X] |
Example Request:
{
}5. Response Schema
| Field | Type | Description | Notes | Source |
|---|---|---|---|---|
| [Doc, p. X] |
Example Response — Happy Path:
{
}Example Response — Failure:
{
}6. Business Rules
Numbered, atomic, testable. Each rule becomes at least one test case.
| Rule ID | Rule | Source |
|---|---|---|
| BR-XXX-001 | [Doc, p. X] | |
| BR-XXX-002 |
7. Error Handling & Failure Modes
Every known error code for this feature's API calls must appear here. No gaps.
| Error Code | Severity | Description | Sub-Ledger Action | Retry? |
|---|---|---|---|---|
Fatal / Warning / Info | Y / N |
Failure Queue: (Does this feature feed the Failed Postings Queue? Which failure modes?)
Alerting: (When does this failure surface to a human? GL approver, Treasury, on-call?)
8. Data Mapping — Sub-Ledger Schema
How CNB response fields map to internal sub-ledger fields and NetSuite GL fields.
| CNB Field | Sub-Ledger Field | NetSuite Field | Transformation |
|---|---|---|---|
9. Open Items
All unresolved [CONFIRM with CNB] items blocking this feature. RTM row must reflect these.
| Item ID | Question | Submitted To | Date Submitted | Status |
|---|---|---|---|---|
| OI-XXX-001 | Jerome / Joann / Maurice | Open / Resolved |
10. Dev Test Cases
Written before dev begins. Each maps to at least one Business Rule. Confirm Gate must be CLEARED.
| TC-ID | Type | Description | Input | Expected Result | BR Reference |
|---|---|---|---|---|---|
| TC-XXX-001 | Happy Path | BR-XXX-001 | |||
| TC-XXX-002 | Failure | ||||
| TC-XXX-003 | Edge Case |
Mock Payload File: /payloads/CNB_FEAT-XXX_happy.json (create when test cases are written)
11. UAT Scenarios
Business-language. A finance or treasury team member should be able to execute these without reading the TRD.
| UAT-ID | Scenario Title | Steps | Expected Outcome | Tester | Pass/Fail | Date |
|---|---|---|---|---|---|---|
| UAT-XXX-001 | 1. … 2. … 3. … |
12. Sign-Off
| Role | Name | Date | Status |
|---|---|---|---|
| Product (Cliff) | Pending | ||
| Engineering (Amir) | Pending | ||
| CNB Confirmed | Jerome / Joann | Pending | |
| UAT Passed | Pending |
Template version: 1.0 — CNB EASI-Link Integration