Before you start
- An administrator to create the API client, and a developer machine with the ripton CLI from your release archive.
- Your workspace URL, written as https://ripton.example.com in the commands below.
- A secret manager or environment-variable mechanism for the credential. The CLI deliberately has no secret flags because process arguments and shell history are visible to other users.
Steps
Create an API client
Admin · API clients
Open Admin, then API clients, and create a client of type Service. Give it a name that says what it is for, for example 'nightly-export'.
Grant only the scopes you need
For creating packages and reading their state, choose Transfers write and Transfers read. Avoid All access. The backend enforces role, scope, ownership and resource grants; the CLI never elevates a credential.
Store the credential
Copy the secret into your secret manager the moment it is shown. Plan to rotate it and revoke it when the automation is retired.
Configure the CLI
Terminal
Export the server URL and access token as environment variables, then run a read-only command to confirm access.
Create a package from a script
Call the packages endpoint with a title, recipients and optional expiry. The response includes the package ID; keep it for the follow-up calls. The files themselves move through the authorized transfer path, Ripton Desktop or an automation node, using the transfer spec for that package.
Check state from the terminal
List running transfers and the jobs overview to see what your automation created and where it stands.
Close the loop with a webhook
Subscribe to the supported lifecycle event you need. package.status_changed signals a status change, not necessarily completion. Inspect the payload and reconcile package state before triggering downstream processing.
Commands and reference
export RIPTON_SERVER=https://ripton.example.com
export RIPTON_ACCESS_TOKEN="$(secret-tool lookup ripton nightly-export)" # or your secret manager's equivalent
ripton nodes list --query enabled=true
ripton transfers list --query status=running
ripton jobs overviewcurl -fsS -X POST "$RIPTON_SERVER/api/v1/packages" \
-H "Authorization: Bearer $RIPTON_ACCESS_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"title":"Integration evaluation","sender_name":"Integration service","recipients":[{"email":"ops@partner.example","type":"to"}]}'| Event | Meaning | Do not infer |
|---|---|---|
| package.created | A package record was created | Files are uploaded or usable |
| package.status_changed | The package changed lifecycle status | Every status transition means success |
| delivery.status_changed | A delivery changed lifecycle status | The recipient verified the downloaded files |
| package.external_file_downloaded | External file-download activity was recorded | The entire business handoff is accepted |
The current webhook worker sends X-RIPT-Webhook-Event-ID, X-RIPT-Webhook-Topic and X-RIPT-Webhook-Timestamp. When a signing secret is configured, X-RIPT-Webhook-Signature is sha256= followed by the hex HMAC-SHA256 of timestamp + a literal period + the raw request body. Configure signing for the integration and require a valid signature at your receiver.
- 1Preserve the raw request bytes; verify the signature using a timing-safe comparison before trusting the payload. Do not parse and reserialize before verification.
- 2Apply an agreed timestamp freshness policy and retain event IDs to handle duplicate delivery attempts safely.
- 3Persist accepted work durably before returning a successful response. The sender treats HTTP 2xx as delivered, not as proof that your downstream job succeeded.
- 4Process asynchronously, record package/event IDs and reconcile failures against the source state. Do not assume exactly-once processing or a particular retry window.
- 5Test invalid signatures, repeated IDs, non-completion status changes and receiver failure in a non-production environment.
How you know it worked
- A read operation within the credential's scopes succeeds; an operation outside them is refused. Listing nodes requires its own applicable permission.
- The package created by the script appears in the admin Packages page with the expected title and recipients.
- Credential rotation and revocation behave as documented for the installed release; test existing access tokens separately from newly issued tokens.
If something is off
| What you see | What to do |
|---|---|
| 401 or 403 from every call | The token is missing or the client lacks the scope. Check RIPTON_ACCESS_TOKEN is set in the same shell and that the client has the scope for the operation. |
| The package is created but stays in uploading | Creating the package records it; the bytes still have to move. Confirm the automation host runs the transfer step with the package's transfer spec, and watch the transfer in Admin, then Transfers. |
| Rate limited | Poll less often, or replace polling with a webhook subscription. |