-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
contract-signingContract signing workflowContract signing workflowcrm-phase-2CRM Phase 2: Contract Signing & AutomationCRM Phase 2: Contract Signing & Automationsponsor 💰
Description
Summary
Integrate with Posten Signering for legally binding digital signatures via BankID.
Reference: https://signering.posten.no/priser
Implementation
src/lib/posten-signering/client.ts
- OAuth2 enterprise authentication
createSigningTask(pdf, signerEmail, signerName)- upload PDF, create signing taskgetTaskStatus(taskId)- poll for statusdownloadSignedDocument(taskId)- retrieve signed PDF
tRPC Endpoints
crm.contract.sendToSigning- generate PDF, create Posten task, update statuscrm.contract.checkStatus- manual status check
Webhook Handler
src/app/api/webhooks/posten-signering/route.ts- Receive signing events (completed, declined, expired)
- Update
signature_statusandcontract_status - Store signed PDF in Sanity
- Trigger welcome email on completion
Environment Variables
POSTEN_SIGNERING_CLIENT_IDPOSTEN_SIGNERING_CLIENT_SECRETPOSTEN_SIGNERING_WEBHOOK_SECRET
Acceptance Criteria
- PDF successfully uploaded to Posten.no
- Sponsor receives BankID signing request
- Webhook updates CRM status on signature
- Signed PDF stored in Sanity
Dependencies
- Schema Extensions for Contract Signing #300 (Schema Extensions)
- Contract Template System #301 (Contract Template System / PDF generation)
Part of
Epic: CRM Phase 2 - Sponsor Contract Signing & Automation
Related: #199
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
contract-signingContract signing workflowContract signing workflowcrm-phase-2CRM Phase 2: Contract Signing & AutomationCRM Phase 2: Contract Signing & Automationsponsor 💰