@cfxlabsinc/b2b-services
    Preparing search index...

    Authoring for stored SMS templates (SLACK_TEMPLATES.md §7). Single actor: the operator who saves a draft may activate it. Every write upserts the template's row, so a key an operator has never touched gets one on its first write, and every write clears the senders' cached read.

    Hierarchy (View Summary)

    Index
    cache: ServiceCache<StoredSmsTemplateRow[]>
    db: B2bDatabase
    instance: (...args: []) => SmsTemplateAdminService = ...

    The process default: test sends invoke the handler through its own instance().

    • Publish the draft: live := draft, then clear the draft.

      Parameters

      • input: {
            templateKey:
                | "CUSTOMER_DEPOSIT_PENDING"
                | "CUSTOMER_DEPOSIT_COMPLETED"
                | "CUSTOMER_DEPOSIT_CANCELLED"
                | "CUSTOMER_WITHDRAWAL_PENDING"
                | "CUSTOMER_WITHDRAWAL_COMPLETED"
                | "CUSTOMER_WITHDRAWAL_RETURNED"
                | "CUSTOMER_TRANSFER_PENDING"
                | "CUSTOMER_TRANSFER_COMPLETED"
                | "CUSTOMER_TRANSFER_CANCELLED"
                | "CUSTOMER_CARD_TRANSACTION_PENDING"
                | "CUSTOMER_CARD_TRANSACTION_AUTHORIZED"
                | "CUSTOMER_CARD_TRANSACTION_COMPLETED"
                | "CUSTOMER_CARD_TRANSACTION_DECLINED"
                | "CUSTOMER_IDENTITY_PENDING_VERIFICATION"
                | "CUSTOMER_IDENTITY_ACTIVE"
                | "CUSTOMER_IDENTITY_REVIEW"
                | "CUSTOMER_IDENTITY_DISABLED"
                | "CUSTOMER_IDENTITY_BLOCKED"
                | "CUSTOMER_ORGANIZATION_PENDING_VERIFICATION"
                | "CUSTOMER_ORGANIZATION_ACTIVE"
                | "CUSTOMER_ORGANIZATION_DISABLED"
                | "CUSTOMER_LEDGER_ACCOUNT_CREATED"
                | "CUSTOMER_PAYMENT_INSTRUMENT_PENDING_VERIFICATION"
                | "CUSTOMER_PAYMENT_INSTRUMENT_ACTIVE"
                | "CUSTOMER_PAYMENT_INSTRUMENT_BLOCKED"
                | "ESCROW_RECIPIENT_NOTIFIED"
                | "ESCROW_CLAIMED"
                | "ESCROW_CANCELLED"
                | "ESCROW_REJECTED"
                | "ESCROW_REQUEST_CREATED"
                | "ESCROW_REQUEST_PAID"
                | "ESCROW_REQUEST_DECLINED"
                | "ESCROW_REQUEST_CANCELLED";
        }

      Returns Promise<
          | { ok: true; value: SmsTemplate }
          | {
              error: NotFound | Invalid | ServiceError<"SMS_TEMPLATE_NO_DRAFT">;
              ok: false;
          },
      >

    • Stop sending this template.

      Parameters

      • input: {
            templateKey:
                | "CUSTOMER_DEPOSIT_PENDING"
                | "CUSTOMER_DEPOSIT_COMPLETED"
                | "CUSTOMER_DEPOSIT_CANCELLED"
                | "CUSTOMER_WITHDRAWAL_PENDING"
                | "CUSTOMER_WITHDRAWAL_COMPLETED"
                | "CUSTOMER_WITHDRAWAL_RETURNED"
                | "CUSTOMER_TRANSFER_PENDING"
                | "CUSTOMER_TRANSFER_COMPLETED"
                | "CUSTOMER_TRANSFER_CANCELLED"
                | "CUSTOMER_CARD_TRANSACTION_PENDING"
                | "CUSTOMER_CARD_TRANSACTION_AUTHORIZED"
                | "CUSTOMER_CARD_TRANSACTION_COMPLETED"
                | "CUSTOMER_CARD_TRANSACTION_DECLINED"
                | "CUSTOMER_IDENTITY_PENDING_VERIFICATION"
                | "CUSTOMER_IDENTITY_ACTIVE"
                | "CUSTOMER_IDENTITY_REVIEW"
                | "CUSTOMER_IDENTITY_DISABLED"
                | "CUSTOMER_IDENTITY_BLOCKED"
                | "CUSTOMER_ORGANIZATION_PENDING_VERIFICATION"
                | "CUSTOMER_ORGANIZATION_ACTIVE"
                | "CUSTOMER_ORGANIZATION_DISABLED"
                | "CUSTOMER_LEDGER_ACCOUNT_CREATED"
                | "CUSTOMER_PAYMENT_INSTRUMENT_PENDING_VERIFICATION"
                | "CUSTOMER_PAYMENT_INSTRUMENT_ACTIVE"
                | "CUSTOMER_PAYMENT_INSTRUMENT_BLOCKED"
                | "ESCROW_RECIPIENT_NOTIFIED"
                | "ESCROW_CLAIMED"
                | "ESCROW_CANCELLED"
                | "ESCROW_REJECTED"
                | "ESCROW_REQUEST_CREATED"
                | "ESCROW_REQUEST_PAID"
                | "ESCROW_REQUEST_DECLINED"
                | "ESCROW_REQUEST_CANCELLED";
        }

      Returns Promise<{ ok: true; value: SmsTemplate } | { error: NotFound; ok: false }>

    • Clear the draft pointer; the version stays as history.

      Parameters

      • input: {
            templateKey:
                | "CUSTOMER_DEPOSIT_PENDING"
                | "CUSTOMER_DEPOSIT_COMPLETED"
                | "CUSTOMER_DEPOSIT_CANCELLED"
                | "CUSTOMER_WITHDRAWAL_PENDING"
                | "CUSTOMER_WITHDRAWAL_COMPLETED"
                | "CUSTOMER_WITHDRAWAL_RETURNED"
                | "CUSTOMER_TRANSFER_PENDING"
                | "CUSTOMER_TRANSFER_COMPLETED"
                | "CUSTOMER_TRANSFER_CANCELLED"
                | "CUSTOMER_CARD_TRANSACTION_PENDING"
                | "CUSTOMER_CARD_TRANSACTION_AUTHORIZED"
                | "CUSTOMER_CARD_TRANSACTION_COMPLETED"
                | "CUSTOMER_CARD_TRANSACTION_DECLINED"
                | "CUSTOMER_IDENTITY_PENDING_VERIFICATION"
                | "CUSTOMER_IDENTITY_ACTIVE"
                | "CUSTOMER_IDENTITY_REVIEW"
                | "CUSTOMER_IDENTITY_DISABLED"
                | "CUSTOMER_IDENTITY_BLOCKED"
                | "CUSTOMER_ORGANIZATION_PENDING_VERIFICATION"
                | "CUSTOMER_ORGANIZATION_ACTIVE"
                | "CUSTOMER_ORGANIZATION_DISABLED"
                | "CUSTOMER_LEDGER_ACCOUNT_CREATED"
                | "CUSTOMER_PAYMENT_INSTRUMENT_PENDING_VERIFICATION"
                | "CUSTOMER_PAYMENT_INSTRUMENT_ACTIVE"
                | "CUSTOMER_PAYMENT_INSTRUMENT_BLOCKED"
                | "ESCROW_RECIPIENT_NOTIFIED"
                | "ESCROW_CLAIMED"
                | "ESCROW_CANCELLED"
                | "ESCROW_REJECTED"
                | "ESCROW_REQUEST_CREATED"
                | "ESCROW_REQUEST_PAID"
                | "ESCROW_REQUEST_DECLINED"
                | "ESCROW_REQUEST_CANCELLED";
        }

      Returns Promise<{ ok: true; value: SmsTemplate } | { error: NotFound; ok: false }>

    • Resume sending this template.

      Parameters

      • input: {
            templateKey:
                | "CUSTOMER_DEPOSIT_PENDING"
                | "CUSTOMER_DEPOSIT_COMPLETED"
                | "CUSTOMER_DEPOSIT_CANCELLED"
                | "CUSTOMER_WITHDRAWAL_PENDING"
                | "CUSTOMER_WITHDRAWAL_COMPLETED"
                | "CUSTOMER_WITHDRAWAL_RETURNED"
                | "CUSTOMER_TRANSFER_PENDING"
                | "CUSTOMER_TRANSFER_COMPLETED"
                | "CUSTOMER_TRANSFER_CANCELLED"
                | "CUSTOMER_CARD_TRANSACTION_PENDING"
                | "CUSTOMER_CARD_TRANSACTION_AUTHORIZED"
                | "CUSTOMER_CARD_TRANSACTION_COMPLETED"
                | "CUSTOMER_CARD_TRANSACTION_DECLINED"
                | "CUSTOMER_IDENTITY_PENDING_VERIFICATION"
                | "CUSTOMER_IDENTITY_ACTIVE"
                | "CUSTOMER_IDENTITY_REVIEW"
                | "CUSTOMER_IDENTITY_DISABLED"
                | "CUSTOMER_IDENTITY_BLOCKED"
                | "CUSTOMER_ORGANIZATION_PENDING_VERIFICATION"
                | "CUSTOMER_ORGANIZATION_ACTIVE"
                | "CUSTOMER_ORGANIZATION_DISABLED"
                | "CUSTOMER_LEDGER_ACCOUNT_CREATED"
                | "CUSTOMER_PAYMENT_INSTRUMENT_PENDING_VERIFICATION"
                | "CUSTOMER_PAYMENT_INSTRUMENT_ACTIVE"
                | "CUSTOMER_PAYMENT_INSTRUMENT_BLOCKED"
                | "ESCROW_RECIPIENT_NOTIFIED"
                | "ESCROW_CLAIMED"
                | "ESCROW_CANCELLED"
                | "ESCROW_REJECTED"
                | "ESCROW_REQUEST_CREATED"
                | "ESCROW_REQUEST_PAID"
                | "ESCROW_REQUEST_DECLINED"
                | "ESCROW_REQUEST_CANCELLED";
        }

      Returns Promise<{ ok: true; value: SmsTemplate } | { error: NotFound; ok: false }>

    • Parameters

      • __namedParameters: {
            templateKey:
                | "CUSTOMER_DEPOSIT_PENDING"
                | "CUSTOMER_DEPOSIT_COMPLETED"
                | "CUSTOMER_DEPOSIT_CANCELLED"
                | "CUSTOMER_WITHDRAWAL_PENDING"
                | "CUSTOMER_WITHDRAWAL_COMPLETED"
                | "CUSTOMER_WITHDRAWAL_RETURNED"
                | "CUSTOMER_TRANSFER_PENDING"
                | "CUSTOMER_TRANSFER_COMPLETED"
                | "CUSTOMER_TRANSFER_CANCELLED"
                | "CUSTOMER_CARD_TRANSACTION_PENDING"
                | "CUSTOMER_CARD_TRANSACTION_AUTHORIZED"
                | "CUSTOMER_CARD_TRANSACTION_COMPLETED"
                | "CUSTOMER_CARD_TRANSACTION_DECLINED"
                | "CUSTOMER_IDENTITY_PENDING_VERIFICATION"
                | "CUSTOMER_IDENTITY_ACTIVE"
                | "CUSTOMER_IDENTITY_REVIEW"
                | "CUSTOMER_IDENTITY_DISABLED"
                | "CUSTOMER_IDENTITY_BLOCKED"
                | "CUSTOMER_ORGANIZATION_PENDING_VERIFICATION"
                | "CUSTOMER_ORGANIZATION_ACTIVE"
                | "CUSTOMER_ORGANIZATION_DISABLED"
                | "CUSTOMER_LEDGER_ACCOUNT_CREATED"
                | "CUSTOMER_PAYMENT_INSTRUMENT_PENDING_VERIFICATION"
                | "CUSTOMER_PAYMENT_INSTRUMENT_ACTIVE"
                | "CUSTOMER_PAYMENT_INSTRUMENT_BLOCKED"
                | "ESCROW_RECIPIENT_NOTIFIED"
                | "ESCROW_CLAIMED"
                | "ESCROW_CANCELLED"
                | "ESCROW_REJECTED"
                | "ESCROW_REQUEST_CREATED"
                | "ESCROW_REQUEST_PAID"
                | "ESCROW_REQUEST_DECLINED"
                | "ESCROW_REQUEST_CANCELLED";
        }

      Returns Promise<SmsTemplate | null>

    • One template read past the cache, so a write's re-read sees its commit.

      Parameters

      • templateKey:
            | "CUSTOMER_DEPOSIT_PENDING"
            | "CUSTOMER_DEPOSIT_COMPLETED"
            | "CUSTOMER_DEPOSIT_CANCELLED"
            | "CUSTOMER_WITHDRAWAL_PENDING"
            | "CUSTOMER_WITHDRAWAL_COMPLETED"
            | "CUSTOMER_WITHDRAWAL_RETURNED"
            | "CUSTOMER_TRANSFER_PENDING"
            | "CUSTOMER_TRANSFER_COMPLETED"
            | "CUSTOMER_TRANSFER_CANCELLED"
            | "CUSTOMER_CARD_TRANSACTION_PENDING"
            | "CUSTOMER_CARD_TRANSACTION_AUTHORIZED"
            | "CUSTOMER_CARD_TRANSACTION_COMPLETED"
            | "CUSTOMER_CARD_TRANSACTION_DECLINED"
            | "CUSTOMER_IDENTITY_PENDING_VERIFICATION"
            | "CUSTOMER_IDENTITY_ACTIVE"
            | "CUSTOMER_IDENTITY_REVIEW"
            | "CUSTOMER_IDENTITY_DISABLED"
            | "CUSTOMER_IDENTITY_BLOCKED"
            | "CUSTOMER_ORGANIZATION_PENDING_VERIFICATION"
            | "CUSTOMER_ORGANIZATION_ACTIVE"
            | "CUSTOMER_ORGANIZATION_DISABLED"
            | "CUSTOMER_LEDGER_ACCOUNT_CREATED"
            | "CUSTOMER_PAYMENT_INSTRUMENT_PENDING_VERIFICATION"
            | "CUSTOMER_PAYMENT_INSTRUMENT_ACTIVE"
            | "CUSTOMER_PAYMENT_INSTRUMENT_BLOCKED"
            | "ESCROW_RECIPIENT_NOTIFIED"
            | "ESCROW_CLAIMED"
            | "ESCROW_CANCELLED"
            | "ESCROW_REJECTED"
            | "ESCROW_REQUEST_CREATED"
            | "ESCROW_REQUEST_PAID"
            | "ESCROW_REQUEST_DECLINED"
            | "ESCROW_REQUEST_CANCELLED"

      Returns Promise<SmsTemplate>

    • Clear the live pointer, so the registry default sends again.

      Parameters

      • input: {
            templateKey:
                | "CUSTOMER_DEPOSIT_PENDING"
                | "CUSTOMER_DEPOSIT_COMPLETED"
                | "CUSTOMER_DEPOSIT_CANCELLED"
                | "CUSTOMER_WITHDRAWAL_PENDING"
                | "CUSTOMER_WITHDRAWAL_COMPLETED"
                | "CUSTOMER_WITHDRAWAL_RETURNED"
                | "CUSTOMER_TRANSFER_PENDING"
                | "CUSTOMER_TRANSFER_COMPLETED"
                | "CUSTOMER_TRANSFER_CANCELLED"
                | "CUSTOMER_CARD_TRANSACTION_PENDING"
                | "CUSTOMER_CARD_TRANSACTION_AUTHORIZED"
                | "CUSTOMER_CARD_TRANSACTION_COMPLETED"
                | "CUSTOMER_CARD_TRANSACTION_DECLINED"
                | "CUSTOMER_IDENTITY_PENDING_VERIFICATION"
                | "CUSTOMER_IDENTITY_ACTIVE"
                | "CUSTOMER_IDENTITY_REVIEW"
                | "CUSTOMER_IDENTITY_DISABLED"
                | "CUSTOMER_IDENTITY_BLOCKED"
                | "CUSTOMER_ORGANIZATION_PENDING_VERIFICATION"
                | "CUSTOMER_ORGANIZATION_ACTIVE"
                | "CUSTOMER_ORGANIZATION_DISABLED"
                | "CUSTOMER_LEDGER_ACCOUNT_CREATED"
                | "CUSTOMER_PAYMENT_INSTRUMENT_PENDING_VERIFICATION"
                | "CUSTOMER_PAYMENT_INSTRUMENT_ACTIVE"
                | "CUSTOMER_PAYMENT_INSTRUMENT_BLOCKED"
                | "ESCROW_RECIPIENT_NOTIFIED"
                | "ESCROW_CLAIMED"
                | "ESCROW_CANCELLED"
                | "ESCROW_REJECTED"
                | "ESCROW_REQUEST_CREATED"
                | "ESCROW_REQUEST_PAID"
                | "ESCROW_REQUEST_DECLINED"
                | "ESCROW_REQUEST_CANCELLED";
        }

      Returns Promise<{ ok: true; value: SmsTemplate } | { error: NotFound; ok: false }>

    • Point the live pointer at an earlier version. Rolling back to the draft itself is an activation; any other draft stays.

      Parameters

      • input: {
            templateKey:
                | "CUSTOMER_DEPOSIT_PENDING"
                | "CUSTOMER_DEPOSIT_COMPLETED"
                | "CUSTOMER_DEPOSIT_CANCELLED"
                | "CUSTOMER_WITHDRAWAL_PENDING"
                | "CUSTOMER_WITHDRAWAL_COMPLETED"
                | "CUSTOMER_WITHDRAWAL_RETURNED"
                | "CUSTOMER_TRANSFER_PENDING"
                | "CUSTOMER_TRANSFER_COMPLETED"
                | "CUSTOMER_TRANSFER_CANCELLED"
                | "CUSTOMER_CARD_TRANSACTION_PENDING"
                | "CUSTOMER_CARD_TRANSACTION_AUTHORIZED"
                | "CUSTOMER_CARD_TRANSACTION_COMPLETED"
                | "CUSTOMER_CARD_TRANSACTION_DECLINED"
                | "CUSTOMER_IDENTITY_PENDING_VERIFICATION"
                | "CUSTOMER_IDENTITY_ACTIVE"
                | "CUSTOMER_IDENTITY_REVIEW"
                | "CUSTOMER_IDENTITY_DISABLED"
                | "CUSTOMER_IDENTITY_BLOCKED"
                | "CUSTOMER_ORGANIZATION_PENDING_VERIFICATION"
                | "CUSTOMER_ORGANIZATION_ACTIVE"
                | "CUSTOMER_ORGANIZATION_DISABLED"
                | "CUSTOMER_LEDGER_ACCOUNT_CREATED"
                | "CUSTOMER_PAYMENT_INSTRUMENT_PENDING_VERIFICATION"
                | "CUSTOMER_PAYMENT_INSTRUMENT_ACTIVE"
                | "CUSTOMER_PAYMENT_INSTRUMENT_BLOCKED"
                | "ESCROW_RECIPIENT_NOTIFIED"
                | "ESCROW_CLAIMED"
                | "ESCROW_CANCELLED"
                | "ESCROW_REJECTED"
                | "ESCROW_REQUEST_CREATED"
                | "ESCROW_REQUEST_PAID"
                | "ESCROW_REQUEST_DECLINED"
                | "ESCROW_REQUEST_CANCELLED";
            version: number;
        }

      Returns Promise<
          | { ok: true; value: SmsTemplate }
          | {
              error:
                  | ServiceError<"SMS_TEMPLATE_VERSION_NOT_FOUND">
                  | NotFound
                  | Invalid;
              ok: false;
          },
      >

    • Validate and save body as a new draft version.

      Parameters

      • input: {
            actorId: string;
            body: string;
            templateKey:
                | "CUSTOMER_DEPOSIT_PENDING"
                | "CUSTOMER_DEPOSIT_COMPLETED"
                | "CUSTOMER_DEPOSIT_CANCELLED"
                | "CUSTOMER_WITHDRAWAL_PENDING"
                | "CUSTOMER_WITHDRAWAL_COMPLETED"
                | "CUSTOMER_WITHDRAWAL_RETURNED"
                | "CUSTOMER_TRANSFER_PENDING"
                | "CUSTOMER_TRANSFER_COMPLETED"
                | "CUSTOMER_TRANSFER_CANCELLED"
                | "CUSTOMER_CARD_TRANSACTION_PENDING"
                | "CUSTOMER_CARD_TRANSACTION_AUTHORIZED"
                | "CUSTOMER_CARD_TRANSACTION_COMPLETED"
                | "CUSTOMER_CARD_TRANSACTION_DECLINED"
                | "CUSTOMER_IDENTITY_PENDING_VERIFICATION"
                | "CUSTOMER_IDENTITY_ACTIVE"
                | "CUSTOMER_IDENTITY_REVIEW"
                | "CUSTOMER_IDENTITY_DISABLED"
                | "CUSTOMER_IDENTITY_BLOCKED"
                | "CUSTOMER_ORGANIZATION_PENDING_VERIFICATION"
                | "CUSTOMER_ORGANIZATION_ACTIVE"
                | "CUSTOMER_ORGANIZATION_DISABLED"
                | "CUSTOMER_LEDGER_ACCOUNT_CREATED"
                | "CUSTOMER_PAYMENT_INSTRUMENT_PENDING_VERIFICATION"
                | "CUSTOMER_PAYMENT_INSTRUMENT_ACTIVE"
                | "CUSTOMER_PAYMENT_INSTRUMENT_BLOCKED"
                | "ESCROW_RECIPIENT_NOTIFIED"
                | "ESCROW_CLAIMED"
                | "ESCROW_CANCELLED"
                | "ESCROW_REJECTED"
                | "ESCROW_REQUEST_CREATED"
                | "ESCROW_REQUEST_PAID"
                | "ESCROW_REQUEST_DECLINED"
                | "ESCROW_REQUEST_CANCELLED";
        }
        • actorId: string

          The acting admin, adusr_…; the version records it as its author.

        • body: string
        • templateKey:
              | "CUSTOMER_DEPOSIT_PENDING"
              | "CUSTOMER_DEPOSIT_COMPLETED"
              | "CUSTOMER_DEPOSIT_CANCELLED"
              | "CUSTOMER_WITHDRAWAL_PENDING"
              | "CUSTOMER_WITHDRAWAL_COMPLETED"
              | "CUSTOMER_WITHDRAWAL_RETURNED"
              | "CUSTOMER_TRANSFER_PENDING"
              | "CUSTOMER_TRANSFER_COMPLETED"
              | "CUSTOMER_TRANSFER_CANCELLED"
              | "CUSTOMER_CARD_TRANSACTION_PENDING"
              | "CUSTOMER_CARD_TRANSACTION_AUTHORIZED"
              | "CUSTOMER_CARD_TRANSACTION_COMPLETED"
              | "CUSTOMER_CARD_TRANSACTION_DECLINED"
              | "CUSTOMER_IDENTITY_PENDING_VERIFICATION"
              | "CUSTOMER_IDENTITY_ACTIVE"
              | "CUSTOMER_IDENTITY_REVIEW"
              | "CUSTOMER_IDENTITY_DISABLED"
              | "CUSTOMER_IDENTITY_BLOCKED"
              | "CUSTOMER_ORGANIZATION_PENDING_VERIFICATION"
              | "CUSTOMER_ORGANIZATION_ACTIVE"
              | "CUSTOMER_ORGANIZATION_DISABLED"
              | "CUSTOMER_LEDGER_ACCOUNT_CREATED"
              | "CUSTOMER_PAYMENT_INSTRUMENT_PENDING_VERIFICATION"
              | "CUSTOMER_PAYMENT_INSTRUMENT_ACTIVE"
              | "CUSTOMER_PAYMENT_INSTRUMENT_BLOCKED"
              | "ESCROW_RECIPIENT_NOTIFIED"
              | "ESCROW_CLAIMED"
              | "ESCROW_CANCELLED"
              | "ESCROW_REJECTED"
              | "ESCROW_REQUEST_CREATED"
              | "ESCROW_REQUEST_PAID"
              | "ESCROW_REQUEST_DECLINED"
              | "ESCROW_REQUEST_CANCELLED"

      Returns Promise<
          | { ok: true; value: SmsTemplate }
          | { error: NotFound | Invalid; ok: false },
      >

    • Every registry template, in registry order, merged with its row.

      Parameters

      • input: {
            ids?: readonly string[];
            keys?: readonly (
                | "CUSTOMER_DEPOSIT_PENDING"
                | "CUSTOMER_DEPOSIT_COMPLETED"
                | "CUSTOMER_DEPOSIT_CANCELLED"
                | "CUSTOMER_WITHDRAWAL_PENDING"
                | "CUSTOMER_WITHDRAWAL_COMPLETED"
                | "CUSTOMER_WITHDRAWAL_RETURNED"
                | "CUSTOMER_TRANSFER_PENDING"
                | "CUSTOMER_TRANSFER_COMPLETED"
                | "CUSTOMER_TRANSFER_CANCELLED"
                | "CUSTOMER_CARD_TRANSACTION_PENDING"
                | "CUSTOMER_CARD_TRANSACTION_AUTHORIZED"
                | "CUSTOMER_CARD_TRANSACTION_COMPLETED"
                | "CUSTOMER_CARD_TRANSACTION_DECLINED"
                | "CUSTOMER_IDENTITY_PENDING_VERIFICATION"
                | "CUSTOMER_IDENTITY_ACTIVE"
                | "CUSTOMER_IDENTITY_REVIEW"
                | "CUSTOMER_IDENTITY_DISABLED"
                | "CUSTOMER_IDENTITY_BLOCKED"
                | "CUSTOMER_ORGANIZATION_PENDING_VERIFICATION"
                | "CUSTOMER_ORGANIZATION_ACTIVE"
                | "CUSTOMER_ORGANIZATION_DISABLED"
                | "CUSTOMER_LEDGER_ACCOUNT_CREATED"
                | "CUSTOMER_PAYMENT_INSTRUMENT_PENDING_VERIFICATION"
                | "CUSTOMER_PAYMENT_INSTRUMENT_ACTIVE"
                | "CUSTOMER_PAYMENT_INSTRUMENT_BLOCKED"
                | "ESCROW_RECIPIENT_NOTIFIED"
                | "ESCROW_CLAIMED"
                | "ESCROW_CANCELLED"
                | "ESCROW_REJECTED"
                | "ESCROW_REQUEST_CREATED"
                | "ESCROW_REQUEST_PAID"
                | "ESCROW_REQUEST_DECLINED"
                | "ESCROW_REQUEST_CANCELLED"
            )[];
            page?: number;
            pageSize?: number;
            statuses?: readonly ("DISABLED" | "ACTIVE")[];
        } = {}

      Returns Promise<
          {
              ok: true;
              value: { hasNext: boolean; items: SmsTemplate[]; total: number };
          },
      >

    • A template's saved versions, newest first. Uncached: rows are immutable.

      Parameters

      • input: {
            page?: number;
            pageSize?: number;
            templateKey:
                | "CUSTOMER_DEPOSIT_PENDING"
                | "CUSTOMER_DEPOSIT_COMPLETED"
                | "CUSTOMER_DEPOSIT_CANCELLED"
                | "CUSTOMER_WITHDRAWAL_PENDING"
                | "CUSTOMER_WITHDRAWAL_COMPLETED"
                | "CUSTOMER_WITHDRAWAL_RETURNED"
                | "CUSTOMER_TRANSFER_PENDING"
                | "CUSTOMER_TRANSFER_COMPLETED"
                | "CUSTOMER_TRANSFER_CANCELLED"
                | "CUSTOMER_CARD_TRANSACTION_PENDING"
                | "CUSTOMER_CARD_TRANSACTION_AUTHORIZED"
                | "CUSTOMER_CARD_TRANSACTION_COMPLETED"
                | "CUSTOMER_CARD_TRANSACTION_DECLINED"
                | "CUSTOMER_IDENTITY_PENDING_VERIFICATION"
                | "CUSTOMER_IDENTITY_ACTIVE"
                | "CUSTOMER_IDENTITY_REVIEW"
                | "CUSTOMER_IDENTITY_DISABLED"
                | "CUSTOMER_IDENTITY_BLOCKED"
                | "CUSTOMER_ORGANIZATION_PENDING_VERIFICATION"
                | "CUSTOMER_ORGANIZATION_ACTIVE"
                | "CUSTOMER_ORGANIZATION_DISABLED"
                | "CUSTOMER_LEDGER_ACCOUNT_CREATED"
                | "CUSTOMER_PAYMENT_INSTRUMENT_PENDING_VERIFICATION"
                | "CUSTOMER_PAYMENT_INSTRUMENT_ACTIVE"
                | "CUSTOMER_PAYMENT_INSTRUMENT_BLOCKED"
                | "ESCROW_RECIPIENT_NOTIFIED"
                | "ESCROW_CLAIMED"
                | "ESCROW_CANCELLED"
                | "ESCROW_REJECTED"
                | "ESCROW_REQUEST_CREATED"
                | "ESCROW_REQUEST_PAID"
                | "ESCROW_REQUEST_DECLINED"
                | "ESCROW_REQUEST_CANCELLED";
        }

      Returns Promise<
          {
              ok: true;
              value: { hasNext: boolean; items: SmsTemplateVersion[]; total: number };
          },
      >

    • Text the saved draft, else the live version, for one sample case. Asks the handler to send that version by its smstv_… id; it renders it with a [TEST] prefix. Unsaved editor text never leaves the dashboard. The caller names the number; admin users have none on record.

      Parameters

      • input: {
            idempotencyKey: string;
            phoneNumber: string;
            renderCase: SmsTemplateRenderCase;
            templateKey:
                | "CUSTOMER_DEPOSIT_PENDING"
                | "CUSTOMER_DEPOSIT_COMPLETED"
                | "CUSTOMER_DEPOSIT_CANCELLED"
                | "CUSTOMER_WITHDRAWAL_PENDING"
                | "CUSTOMER_WITHDRAWAL_COMPLETED"
                | "CUSTOMER_WITHDRAWAL_RETURNED"
                | "CUSTOMER_TRANSFER_PENDING"
                | "CUSTOMER_TRANSFER_COMPLETED"
                | "CUSTOMER_TRANSFER_CANCELLED"
                | "CUSTOMER_CARD_TRANSACTION_PENDING"
                | "CUSTOMER_CARD_TRANSACTION_AUTHORIZED"
                | "CUSTOMER_CARD_TRANSACTION_COMPLETED"
                | "CUSTOMER_CARD_TRANSACTION_DECLINED"
                | "CUSTOMER_IDENTITY_PENDING_VERIFICATION"
                | "CUSTOMER_IDENTITY_ACTIVE"
                | "CUSTOMER_IDENTITY_REVIEW"
                | "CUSTOMER_IDENTITY_DISABLED"
                | "CUSTOMER_IDENTITY_BLOCKED"
                | "CUSTOMER_ORGANIZATION_PENDING_VERIFICATION"
                | "CUSTOMER_ORGANIZATION_ACTIVE"
                | "CUSTOMER_ORGANIZATION_DISABLED"
                | "CUSTOMER_LEDGER_ACCOUNT_CREATED"
                | "CUSTOMER_PAYMENT_INSTRUMENT_PENDING_VERIFICATION"
                | "CUSTOMER_PAYMENT_INSTRUMENT_ACTIVE"
                | "CUSTOMER_PAYMENT_INSTRUMENT_BLOCKED"
                | "ESCROW_RECIPIENT_NOTIFIED"
                | "ESCROW_CLAIMED"
                | "ESCROW_CANCELLED"
                | "ESCROW_REJECTED"
                | "ESCROW_REQUEST_CREATED"
                | "ESCROW_REQUEST_PAID"
                | "ESCROW_REQUEST_DECLINED"
                | "ESCROW_REQUEST_CANCELLED";
        }
        • idempotencyKey: string

          Stable per request, e.g. the audit row's id.

        • phoneNumber: string
        • renderCase: SmsTemplateRenderCase
        • templateKey:
              | "CUSTOMER_DEPOSIT_PENDING"
              | "CUSTOMER_DEPOSIT_COMPLETED"
              | "CUSTOMER_DEPOSIT_CANCELLED"
              | "CUSTOMER_WITHDRAWAL_PENDING"
              | "CUSTOMER_WITHDRAWAL_COMPLETED"
              | "CUSTOMER_WITHDRAWAL_RETURNED"
              | "CUSTOMER_TRANSFER_PENDING"
              | "CUSTOMER_TRANSFER_COMPLETED"
              | "CUSTOMER_TRANSFER_CANCELLED"
              | "CUSTOMER_CARD_TRANSACTION_PENDING"
              | "CUSTOMER_CARD_TRANSACTION_AUTHORIZED"
              | "CUSTOMER_CARD_TRANSACTION_COMPLETED"
              | "CUSTOMER_CARD_TRANSACTION_DECLINED"
              | "CUSTOMER_IDENTITY_PENDING_VERIFICATION"
              | "CUSTOMER_IDENTITY_ACTIVE"
              | "CUSTOMER_IDENTITY_REVIEW"
              | "CUSTOMER_IDENTITY_DISABLED"
              | "CUSTOMER_IDENTITY_BLOCKED"
              | "CUSTOMER_ORGANIZATION_PENDING_VERIFICATION"
              | "CUSTOMER_ORGANIZATION_ACTIVE"
              | "CUSTOMER_ORGANIZATION_DISABLED"
              | "CUSTOMER_LEDGER_ACCOUNT_CREATED"
              | "CUSTOMER_PAYMENT_INSTRUMENT_PENDING_VERIFICATION"
              | "CUSTOMER_PAYMENT_INSTRUMENT_ACTIVE"
              | "CUSTOMER_PAYMENT_INSTRUMENT_BLOCKED"
              | "ESCROW_RECIPIENT_NOTIFIED"
              | "ESCROW_CLAIMED"
              | "ESCROW_CANCELLED"
              | "ESCROW_REJECTED"
              | "ESCROW_REQUEST_CREATED"
              | "ESCROW_REQUEST_PAID"
              | "ESCROW_REQUEST_DECLINED"
              | "ESCROW_REQUEST_CANCELLED"

      Returns Promise<
          | { ok: true; value: { version: number } }
          | {
              error:
                  | SmsTestSendFailure
                  | NotFound
                  | Invalid
                  | ServiceError<"SMS_TEMPLATE_INVALID_PHONE_NUMBER">
                  | ServiceError<"SMS_TEMPLATE_NO_SAVED_VERSION">;
              ok: false;
          },
      >