{"openapi":"3.0.3","info":{"title":"bSign API","version":"1.0.0","description":"Send documents for signature from your bSign templates, follow them, download the signed PDFs, and get webhooks when things happen. Create an API token in bSign under Settings > API & webhooks and send it as `Authorization: Bearer <token>`. A token acts as the person who created it: their templates (and those shared with them) and the documents they sent.","contact":{"name":"Binarium","email":"support@binarium.ca","url":"https://bsign.ca/integrations/"}},"servers":[{"url":"https://api.bsign.ca/v1"}],"security":[{"bearerAuth":[]},{"apiToken":[]}],"tags":[{"name":"Account"},{"name":"Templates"},{"name":"Documents"},{"name":"Events and webhooks"}],"paths":{"/me":{"get":{"tags":["Account"],"operationId":"getMe","summary":"Who the token belongs to","responses":{"200":{"description":"The account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Me"}}}},"401":{"description":"No token, or the token is revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/templates":{"get":{"tags":["Templates"],"operationId":"listTemplates","summary":"List templates","description":"Your templates and those shared with you, most recently changed first.","parameters":[{"name":"search","in":"query","description":"Part of the name.","schema":{"type":"string"}},{"name":"limit","in":"query","description":"How many to return (1-100, default 25).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"page","in":"query","description":"Which page (from 1).","schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Templates.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Template"}},"page":{"type":"integer"},"limit":{"type":"integer"},"hasMore":{"type":"boolean","description":"There is another page."}}}}}},"401":{"description":"No token, or the token is revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/templates/{id}":{"get":{"tags":["Templates"],"operationId":"getTemplate","summary":"Get a template, with its roles and fields","parameters":[{"name":"id","in":"path","required":true,"description":"The template.","schema":{"type":"string"}}],"responses":{"200":{"description":"The template.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TemplateDetail"}}}},"401":{"description":"No token, or the token is revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such template (or not yours).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/templates/{id}/schema":{"get":{"tags":["Templates"],"operationId":"getTemplateSendSchema","summary":"A template's send request, as a JSON Schema","description":"The body POST /templates/{id}/send takes for this template, with its roles and fillable fields as properties (for tools that build forms from a schema).","parameters":[{"name":"id","in":"path","required":true,"description":"The template.","schema":{"type":"string"}}],"responses":{"200":{"description":"The schema.","content":{"application/json":{"schema":{"type":"object","properties":{"schema":{"type":"object"}}}}}},"401":{"description":"No token, or the token is revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such template (or not yours).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/templates/{id}/send":{"post":{"tags":["Templates"],"operationId":"sendTemplate","summary":"Send a document from a template","description":"Makes a document from the template and sends it for signature. Give a recipient for every role the template leaves open (roles it already names can be given someone else). Fields are filled by name: ones the template fills in before sending are drawn into the document; recipients' fields start with the value and can be changed while signing.","parameters":[{"name":"id","in":"path","required":true,"description":"The template.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendRequest"}}}},"responses":{"201":{"description":"The document, sent.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Document"}}}},"401":{"description":"No token, or the token is revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The site's plan allowance is used up.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such template (or not yours).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Something is missing or wrong (details.problems lists each).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/documents":{"get":{"tags":["Documents"],"operationId":"listDocuments","summary":"List documents","description":"The documents you sent, most recently changed first.","parameters":[{"name":"status","in":"query","schema":{"type":"string","enum":["draft","in_progress","completed","declined","voided","expired"]}},{"name":"reference","in":"query","description":"The exact reference.","schema":{"type":"string"}},{"name":"templateId","in":"query","description":"Made from this template.","schema":{"type":"string"}},{"name":"search","in":"query","description":"Part of the name.","schema":{"type":"string"}},{"name":"updatedSince","in":"query","description":"Changed after this time (ISO 8601).","schema":{"type":"string","format":"date-time"}},{"name":"limit","in":"query","description":"How many to return (1-100, default 25).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"page","in":"query","description":"Which page (from 1).","schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Documents.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Document"}},"page":{"type":"integer"},"limit":{"type":"integer"},"hasMore":{"type":"boolean","description":"There is another page."}}}}}},"401":{"description":"No token, or the token is revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"A filter is not valid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/documents/{id}":{"get":{"tags":["Documents"],"operationId":"getDocument","summary":"Get a document","parameters":[{"name":"id","in":"path","required":true,"description":"The document.","schema":{"type":"string"}}],"responses":{"200":{"description":"The document.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Document"}}}},"401":{"description":"No token, or the token is revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such document (or not yours).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/documents/{id}/file":{"get":{"tags":["Documents"],"operationId":"downloadDocument","summary":"Download the PDF","description":"The document as it is now: signed and sealed once completed.","parameters":[{"name":"id","in":"path","required":true,"description":"The document.","schema":{"type":"string"}}],"responses":{"200":{"description":"The PDF.","content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"401":{"description":"No token, or the token is revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such document (or not yours).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/documents/{id}/certificate":{"get":{"tags":["Documents"],"operationId":"downloadCertificate","summary":"Download the completion certificate","parameters":[{"name":"id","in":"path","required":true,"description":"The document.","schema":{"type":"string"}}],"responses":{"200":{"description":"The certificate (PDF).","content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"401":{"description":"No token, or the token is revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such document (or not yours).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The document is not completed yet.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/documents/{id}/history":{"get":{"tags":["Documents"],"operationId":"getDocumentHistory","summary":"A document's history","parameters":[{"name":"id","in":"path","required":true,"description":"The document.","schema":{"type":"string"}}],"responses":{"200":{"description":"Everything that happened to it, oldest first.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/HistoryEntry"}}}}}}},"401":{"description":"No token, or the token is revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such document (or not yours).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/documents/{id}/remind":{"post":{"tags":["Documents"],"operationId":"remindDocument","summary":"Send a reminder now","description":"Emails everyone still to sign (in a signing order, the one whose turn it is).","parameters":[{"name":"id","in":"path","required":true,"description":"The document.","schema":{"type":"string"}}],"responses":{"200":{"description":"Who was reminded.","content":{"application/json":{"schema":{"type":"object","properties":{"sent":{"type":"integer"},"to":{"type":"array","items":{"type":"string"}}}}}}},"401":{"description":"No token, or the token is revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such document (or not yours).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The document is not out for signature.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/documents/{id}/void":{"post":{"tags":["Documents"],"operationId":"voidDocument","summary":"Void a document","description":"Stops a document that is out for signature. The people still to sign are told, with the reason.","parameters":[{"name":"id","in":"path","required":true,"description":"The document.","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","maxLength":500,"description":"Shown to the recipients and in the history."},"notify":{"type":"boolean","default":true,"description":"Email the people still to sign."}}}}}},"responses":{"200":{"description":"The document, voided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Document"}}}},"401":{"description":"No token, or the token is revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such document (or not yours).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The document is already finished.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/events":{"get":{"tags":["Events and webhooks"],"operationId":"listEvents","summary":"Latest events","description":"What happened to your documents lately, newest first, in the same shape webhooks deliver (for tools that poll).","parameters":[{"name":"type","in":"query","schema":{"type":"string","enum":["document.sent","document.viewed","document.signed","document.approved","document.declined","document.voided","document.recipient_changed","document.reminder_sent","document.expiry_extended","document.expiry_notice","document.corrected","document.skipped","document.completed","document.paper_copy"]}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}}],"responses":{"200":{"description":"Events.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Event"}}}}}}},"401":{"description":"No token, or the token is revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/webhooks":{"get":{"tags":["Events and webhooks"],"operationId":"listWebhooks","summary":"List webhooks","responses":{"200":{"description":"Your webhooks and the events there are.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Webhook"}},"events":{"type":"array","items":{"type":"string"}}}}}}},"401":{"description":"No token, or the token is revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Events and webhooks"],"operationId":"createWebhook","summary":"Subscribe a webhook","description":"bSign POSTs each event to the URL as JSON, signed with the webhook's secret: the X-bSign-Signature header is `t=<unix time>,v1=<hex HMAC-SHA256 of \"<t>.<raw body>\">`. Failed deliveries are tried again after 30 seconds and 2 minutes. The Location header is the address to DELETE to unsubscribe. Up to 25 webhooks per account.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookRequest"}}}},"responses":{"201":{"description":"Subscribed.","headers":{"Location":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhook"}}}},"401":{"description":"No token, or the token is revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The URL or an event is not accepted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/webhooks/{id}":{"get":{"tags":["Events and webhooks"],"operationId":"getWebhook","summary":"Get a webhook","parameters":[{"name":"id","in":"path","required":true,"description":"The webhook.","schema":{"type":"string"}}],"responses":{"200":{"description":"The webhook.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhook"}}}},"401":{"description":"No token, or the token is revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such webhook.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Events and webhooks"],"operationId":"deleteWebhook","summary":"Unsubscribe a webhook","parameters":[{"name":"id","in":"path","required":true,"description":"The webhook.","schema":{"type":"string"}}],"responses":{"204":{"description":"Removed."},"401":{"description":"No token, or the token is revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such webhook.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"An API token from Settings > API & webhooks."},"apiToken":{"type":"apiKey","in":"header","name":"X-API-Token"}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","example":"invalid"},"message":{"type":"string","example":"Give a recipient for Client."},"details":{"type":"object","properties":{"problems":{"type":"array","items":{"type":"string"}}}}}}}},"Me":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"company":{"type":"string"},"timeZone":{"type":"string"},"site":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"name":{"type":"string"}}}}},"Role":{"type":"object","properties":{"role":{"type":"string","example":"Client"},"order":{"type":"integer","description":"Place in the signing order."},"type":{"type":"string","enum":["signer","approver"]},"inPerson":{"type":"boolean","description":"Signs in person, hosted by the sender in bSign."},"assigned":{"type":"object","nullable":true,"description":"Who the template names for this role (null: give one when sending).","properties":{"name":{"type":"string"},"email":{"type":"string"}}}}},"Field":{"type":"object","properties":{"role":{"type":"string","nullable":true,"description":"The recipient who fills it; null for fields filled before sending."},"name":{"type":"string","example":"Start date"},"type":{"type":"string","example":"date"},"required":{"type":"boolean"},"fillable":{"type":"boolean","description":"Can be given a value when sending (not signatures, pictures or attachments)."},"options":{"type":"array","items":{"type":"string"},"description":"The choices (dropdown, radio buttons, checkboxes)."},"format":{"type":"string","description":"A date field's format, e.g. MM/dd/yyyy."},"default":{"description":"The value it has in the template."}}},"Template":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"note":{"type":"string"},"sendInOrder":{"type":"boolean"},"expiresInDays":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"roles":{"type":"array","items":{"$ref":"#/components/schemas/Role"}}}},"TemplateDetail":{"allOf":[{"$ref":"#/components/schemas/Template"},{"type":"object","properties":{"fields":{"type":"array","items":{"$ref":"#/components/schemas/Field"}}}}]},"SendRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":250,"description":"The document's name (default: the template's)."},"note":{"type":"string","maxLength":200,"description":"A note shown to the recipients."},"reference":{"type":"string","maxLength":100,"description":"Your own reference (a quote or ticket number), shown on the document and in webhooks."},"recipients":{"type":"array","description":"One per role the template leaves open (others optional). Also accepted by role: {\"Client\": {\"email\": \"…\", \"name\": \"…\"}}.","items":{"type":"object","required":["role","email"],"properties":{"role":{"type":"string"},"name":{"type":"string"},"email":{"type":"string","format":"email"}}}},"fields":{"type":"object","additionalProperties":true,"description":"Values by field name, e.g. {\"Start date\": \"2026-10-01\", \"Plan\": \"Business\"}. \"<role>::<field name>\" picks one role's field. Dates in the field's format or yyyy-MM-dd; checkboxes as a list of choices; dropdowns and radio buttons as one of the choices. Empty values are left out (the template's value stays).","example":{"Company name":"Acme Dental","Start date":"2026-10-01"}},"sendInOrder":{"type":"boolean","description":"One after another (default: as the template says)."},"expiresInDays":{"type":"integer","minimum":1,"maximum":365},"sendEmails":{"type":"boolean","default":true,"description":"false: bSign sends no emails, and the answer has each recipient's signing link (signingLinks) for you to share."}},"required":["recipients"]},"Recipient":{"type":"object","properties":{"role":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"type":{"type":"string","enum":["signer","approver"]},"inPerson":{"type":"boolean"},"order":{"type":"integer"},"status":{"type":"string","enum":["draft","waiting","sent","viewed","signed","approved","declined","skipped"]},"viewedAt":{"type":"string","format":"date-time","nullable":true},"completedAt":{"type":"string","format":"date-time","nullable":true}}},"Document":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"reference":{"type":"string"},"note":{"type":"string"},"status":{"type":"string","enum":["draft","in_progress","completed","declined","voided","expired"]},"templateId":{"type":"string","nullable":true},"sendInOrder":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"sentAt":{"type":"string","format":"date-time","nullable":true},"completedAt":{"type":"string","format":"date-time","nullable":true},"declinedAt":{"type":"string","format":"date-time","nullable":true},"voidedAt":{"type":"string","format":"date-time","nullable":true},"declineReason":{"type":"string"},"expiresAt":{"type":"string","format":"date-time","nullable":true},"recipients":{"type":"array","items":{"$ref":"#/components/schemas/Recipient"}},"files":{"type":"object","properties":{"pdf":{"type":"string","nullable":true,"description":"Download address of the PDF (send your token)."},"certificate":{"type":"string","nullable":true,"description":"Download address of the certificate, once completed."}}},"signingLinks":{"type":"array","description":"Only when sent with sendEmails: false.","items":{"type":"object","properties":{"role":{"type":"string"},"email":{"type":"string"},"url":{"type":"string"}}}}}},"HistoryEntry":{"type":"object","properties":{"event":{"type":"string","enum":["document.sent","document.viewed","document.signed","document.approved","document.declined","document.voided","document.recipient_changed","document.reminder_sent","document.expiry_extended","document.expiry_notice","document.corrected","document.skipped","document.completed","document.paper_copy"]},"label":{"type":"string","example":"Signed"},"at":{"type":"string","format":"date-time"},"actor":{"type":"object","nullable":true,"properties":{"name":{"type":"string"},"email":{"type":"string"},"role":{"type":"string"}}},"detail":{"type":"string"}}},"Event":{"type":"object","description":"What webhooks deliver (and GET /events lists).","properties":{"id":{"type":"string","description":"The same for every delivery of this event."},"event":{"type":"string","enum":["document.sent","document.viewed","document.signed","document.approved","document.declined","document.voided","document.recipient_changed","document.reminder_sent","document.expiry_extended","document.expiry_notice","document.corrected","document.skipped","document.completed","document.paper_copy"]},"createdAt":{"type":"string","format":"date-time"},"document":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"reference":{"type":"string"},"status":{"type":"string","enum":["draft","in_progress","completed","declined","voided","expired"]}}},"actor":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"role":{"type":"string"}}},"details":{"type":"object","additionalProperties":true}}},"WebhookRequest":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","description":"https:// on the internet."},"events":{"type":"array","items":{"type":"string","enum":["document.sent","document.viewed","document.signed","document.approved","document.declined","document.voided","document.recipient_changed","document.reminder_sent","document.expiry_extended","document.expiry_notice","document.corrected","document.skipped","document.completed","document.paper_copy"]},"description":"Leave out (or empty) for every event."},"event":{"type":"string","enum":["document.sent","document.viewed","document.signed","document.approved","document.declined","document.voided","document.recipient_changed","document.reminder_sent","document.expiry_extended","document.expiry_notice","document.corrected","document.skipped","document.completed","document.paper_copy"],"description":"One event (the same as events: [event])."},"source":{"type":"string","maxLength":40,"description":"What added it (shown in bSign), e.g. Zapier."}}},"Webhook":{"type":"object","properties":{"id":{"type":"string"},"url":{"type":"string"},"events":{"type":"array","items":{"type":"string"}},"active":{"type":"boolean"},"secret":{"type":"string","description":"Verifies the X-bSign-Signature header."},"source":{"type":"string"},"lastDeliveryAt":{"type":"string","format":"date-time","nullable":true},"lastStatus":{"type":"integer","nullable":true},"lastError":{"type":"string"},"lastEvent":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}}}}}}