/plugin marketplace add anvilco/anvil-plugins
/plugin install xodosign-anvil-migration@anvil-plugins| Xodo Sign | Anvil | What it is |
|---|---|---|
| Document | Etch packet | The signing transaction. createEtchPacket returns an etchPacketEid. |
| document_hash | etchPacketEid | The document identifier. |
| Template (template_id) | Cast (castEid) | A reusable PDF template with positioned fields. |
| Signer role | Signer id | A named signing slot; in Anvil an arbitrary signer id you map to fields. |
| Form field | Field | A positioned signable or fillable box, each with a type and x, y, and page. |
| Field identifier | Field alias (aliasId) | Your data key for a field. |
| Merge field value | Fill data (data.payloads) | Prefilled field values. |
| order + use_signer_order | routingOrder | Signing order; equal values sign in parallel. |
| embedded_signing_url | signerType: 'embedded' + generateEtchSignURL | In-app signing, with no email sent. |
| document_completed | etchPacketComplete | All signers done; documents downloadable. |
| sandbox | isTest | Watermarked, non-billed test documents. |
| access_key + business_id | ANVIL_API_KEY | Auth. One key, with no business selection. |
const { Client, Template, Signer, Field } = require('eversign')
const client = new Client(apiKey, businessId)
const template = new Template()
template.setTemplateId('tmpl_abc123')
template.setTitle('NDA for Acme Corp')
template.setMessage('Please review and sign the attached NDA.')
const signer = new Signer()
signer.setRole('Client')
signer.setName('Jane Smith')
signer.setEmail('jane@example.com')
template.appendSigner(signer)
const field = new Field()
field.setIdentifier('company_name')
field.setValue('Acme Corp')
template.appendField(field)
const doc = await client.createDocumentFromTemplate(template)
const documentHash = doc.getDocumentHash()const {
data,
errors,
} = await anvilClient.createEtchPacket({
variables: {
files: [ ... ],
data: { ... },
signers: [ ... ],
},
})