ATick for Node.js#

_images/green_tick.png

Sign PDFs with confidence

ATick for Node.js is the standalone PDF digital-signature library for JavaScript/TypeScript — PAdES & CMS signing, deferred / remote-key signing and a green-tick appearance Adobe shows as valid, in one npm package with a prebuilt native addon.

const atick = require("atick");
const fs = require("fs");

const signed = atick.signPfx(
  fs.readFileSync("doc.pdf"),
  fs.readFileSync("my.pfx"),
  JSON.stringify({ password: "••••", cn: "Aniket Chaturvedi", reason: "Approved",
    green_tick: true, page: 1, rect: [300, 55, 575, 175], pades: true, timestamp: true, ltv: true }),
);
fs.writeFileSync("signed.pdf", signed);

Note

ATick runs server-side (Node runtime) — Next.js API routes / server actions, Express, NestJS, serverless, CLI. It is a native module, so it does not run in the browser.


Everything you need to sign PDFs#

Sign anywhere

PFX/P12 or PEM files directly, and tokens / HSMs / eSign ESPs via the deferred flow.

Full PAdES

B-B, B-T, B-LT, B-LTA with RFC-3161 timestamps and long-term validation.

Deferred / eSign

Two-step prepare → external CMS → embed; the InputHash is the SHA-256 of the bytes-to-sign.

Rich appearance

Logo or CN-on-the-left, the validity mark, distinguished name, custom text, invisible signatures.

Trust & control

Certification (DocMDP), field-locking, pre-sign checks, password protection and metadata.

Built for scale

A revocation cache speeds up batch signing; every failure is a normal JavaScript Error.


The green tick your readers trust#

Adobe Reader — signed and all signatures are valid, with the ATick green tick

Why ATick#

ATick for Node.js

External services

none — the crypto, PKCS#12/PEM, image decode, timestamping and LTV are all in the addon

Install

npm install atick — a prebuilt native addon, no build step

Node

Node 10.16 → the latest (N-API, ABI-stable)

Platforms

Windows 7+ (x64/x86/ARM64), Linux (x64/ARM64/ARM, every glibc distro), macOS (Intel/Apple Silicon)

Errors

every failure is a JavaScript Error you can catch