> ## Documentation Index
> Fetch the complete documentation index at: https://www.composer.id/llms.txt
> Use this file to discover all available pages before exploring further.

# Juro

> Juro (Signature & Contract Management): the API posture, publish target and field mapping composerID publishes a decision reference through.

This page records how composerID publishes into Juro: the vendor's API posture, the publish target and field mapping, and the documentation each claim rests on. It is for anyone evaluating the connection or building against it.

Juro is a browser-native contract automation and e-signature platform where templates, smartfields, approval flows and signing live in one workspace. composerID publishes into Juro by creating a contract from a named template and populating its smartfields, so the paperwork for a decision already taken is drafted and routed for signature without anyone re-keying it. Juro is the execution and evidence layer for that decision, not the system that makes it.

<Info>
  Category: Signature & Contract Management. Coverage status: Specification mapped. Vendor documentation: public developer portal.
</Info>

## Integration path

How composerID connects to this destination, at a glance.

| Step                 | Detail                                                                                                                                                         |
| -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Authentication       | API key sent as an x-api-key request header.                                                                                                                   |
| composerID publishes | Contract (create from template): Contract name (commonly driven by the counterparty legal name smartfield, which names both the contract and the signing side) |
| Intent ID lands on   | `contract` `fields[].reference_uid`, written into the destination record                                                                                       |
| Back-sync            | Webhooks: the destination pushes events; composerID verifies each delivery and lands it on the intent's timeline.                                              |

## Vendor documentation

<Columns cols={2}>
  <Card title="Juro API documentation (OpenAPI reference)" icon="external-link" href="https://api-docs.juro.com/" horizontal />

  <Card title="Working with Juro's API" icon="external-link" href="https://intercom.help/juro/en/articles/8075637-working-with-juro-s-api" horizontal />

  <Card title="Adding and using smartfields" icon="external-link" href="https://intercom.help/juro/en/articles/5652971-adding-and-using-smartfields" horizontal />

  <Card title="Webhooks" icon="external-link" href="https://juro.com/integrations/webhooks" horizontal />

  <Card title="Juro API overview" icon="external-link" href="https://juro.com/integrations/api" horizontal />
</Columns>

## API posture

| Aspect         | Detail                                                                                                                                                                                                                                                                                                                                                                         |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Authentication | API key sent as an x-api-key request header. The key is issued per account from Settings → Integrations → API & webhooks.                                                                                                                                                                                                                                                      |
| Style          | REST/JSON with a published OpenAPI specification. Collection pagination uses skip and limit query parameters (limit defaults to 50, maximum 200).                                                                                                                                                                                                                              |
| Base URL       | [https://api.juro.com/v3](https://api.juro.com/v3) (a sandbox at api-sandbox.juro.io is available on request, not self-serve)                                                                                                                                                                                                                                                  |
| Webhooks       | Native push webhooks. Subscriptions are registered in-app under Settings → Integrations → API & webhooks and deliver asynchronous notifications across the contract lifecycle - creation, views, approvals and signature - with the fully-signed PDF passable downstream. Confirm the current event list and payload-signing scheme against the API docs when wiring a tenant. |
| Events posture | Webhooks                                                                                                                                                                                                                                                                                                                                                                       |
| Rate limits    | Documented as a tiered monthly request quota plus a per-second throttle with a short burst allowance; the quota depends on the account's API tier, so confirm the tenant's limits against the published tiers before planning batch volume.                                                                                                                                    |
| Objects        | Contracts (/v3/contracts, plus /v3/contracts/upload to create from an existing PDF), templates (referenced by templateId on create), smartfields (fields\[] addressed by uid), Q\&A answers (answers\[]), signatories and counterparties, webhook subscriptions.                                                                                                               |

## Publish target and field mapping

Each object below pairs the canonical intent fields with the destination's own fields and operations. The mapping is indicative until it is confirmed against a tenant at onboarding.

<AccordionGroup>
  <Accordion title="Contract (create from template)" icon="arrow-right-left" description="POST /v3/contracts with a templateId and a body carrying fields[] and answers[]">
    | Mapping                  | Detail                                                                                                                        |
    | ------------------------ | ----------------------------------------------------------------------------------------------------------------------------- |
    | Canonical to destination | title                                                                                                                         |
    | Target                   | Contract name (commonly driven by the counterparty legal name smartfield, which names both the contract and the signing side) |
    | Requirement              | Required                                                                                                                      |
    | Notes                    | The template determines which smartfields exist; the create call fills them by uid, not by display label.                     |
  </Accordion>

  <Accordion title="Contract → reference smartfield" icon="arrow-right-left" description="A text smartfield added to the template to carry the external reference">
    | Mapping                  | Detail                                                                                                                                                                                                                                                               |
    | ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | Canonical to destination | intent\_id                                                                                                                                                                                                                                                           |
    | Target                   | fields\[].uid = the reference field's uid, fields\[].value = the Intent ID                                                                                                                                                                                           |
    | Requirement              | Tenant required                                                                                                                                                                                                                                                      |
    | Notes                    | Juro's public docs describe no first-class external-ID or metadata property on the contract object, so the Intent ID rides a purpose-built smartfield agreed per tenant. It reads back on GET and on webhook payloads, which is what makes re-publishing idempotent. |
  </Accordion>

  <Accordion title="Contract → counterparty" icon="arrow-right-left" description="Counterparty legal entity and signatory details">
    | Mapping                  | Detail                                                                                                                                                                  |
    | ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | Canonical to destination | counterparty                                                                                                                                                            |
    | Target                   | Counterparty legal name smartfield plus signatory smartfields / Q\&A answers                                                                                            |
    | Requirement              | Required                                                                                                                                                                |
    | Notes                    | Smartfields are filled either by the owner at create time or by the counterparty answering a Q\&A flow before signing - decide per template which side owns each field. |
  </Accordion>

  <Accordion title="Contract → commercial terms" icon="arrow-right-left" description="Date- and choice-typed smartfields on the template">
    | Mapping                  | Detail                                                                                                                                                                           |
    | ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | Canonical to destination | start\_date, end\_date, value                                                                                                                                                    |
    | Target                   | Date and text smartfields addressed by uid                                                                                                                                       |
    | Requirement              | Tenant                                                                                                                                                                           |
    | Notes                    | Choice-type smartfields reject values outside the template's allowed list, so any composerID enumeration must be reconciled against the template's choices before first publish. |
  </Accordion>

  <Accordion title="Webhook subscription" icon="arrow-right-left" description="Lifecycle events pushed back for reconciliation">
    | Mapping                  | Detail                                                                                                                |
    | ------------------------ | --------------------------------------------------------------------------------------------------------------------- |
    | Canonical to destination | defence\_file\_ref                                                                                                    |
    | Target                   | Consumer endpoint, correlated on the reference smartfield returned in the payload                                     |
    | Requirement              | Recommended                                                                                                           |
    | Notes                    | Signature and lifecycle events close the loop; the signed PDF is what the audit spine's evidence reference points at. |
  </Accordion>
</AccordionGroup>

<Note>
  Everything material is template-scoped and therefore per-customer: which templates exist, which smartfields they carry, each smartfield's uid and type (text, date or choice) and, for choice fields, the permitted values. Whether a smartfield is filled by the publisher at create time or by the counterparty in the pre-signing Q\&A is also a template decision. Because no generic external-ID slot is documented, each tenant must agree a dedicated reference smartfield for the Intent ID before go-live. Webhook endpoints, the signing secret and the API tier are configured in the customer's own Juro account.
</Note>

## Next steps

<Columns cols={3}>
  <Card title="How composerID connects" icon="plug-zap" href="/guides/connect">
    The five ways composerID reaches a destination, and the minimum a destination must offer.
  </Card>

  <Card title="Publishing" icon="send" href="/concepts/publishing">
    Plan, preflight and publish: how a decision becomes a valid record in a destination.
  </Card>

  <Card title="All destinations" icon="plug" href="/destinations">
    Every destination composerID documents, with its category and coverage status.
  </Card>
</Columns>
