Using Agreements

Submit input with permit

Submits a signed input to a deployed agreement. The input ID and values must match an input defined by the agreement JSON, and the signer must be allowed by that input.

post/v0/agreements/{id}/input

Request

  • Base URL: https://test-api.shodai.network
  • URL: https://test-api.shodai.network/v0/agreements/{id}/input
  • Auth: one of:
    • API key in header X-API-Key
    • HTTP bearer

Path parameters

idstring required

Agreement ID or deployed agreement address.

Request body

inputIdstring required

Input ID defined in the agreement JSON.

valuesobject required

Business values submitted for this input.

signerstring required

Wallet address that signed the EIP-712 input permit.

deadlineinteger required

Unix timestamp in seconds when the input permit expires.

Example request

{
  "inputId": "submitInitialPaymentProof",
  "values": {
    "paymentReference": "wire-2026-04-27-001"
  },
  "signer": "0x2222222222222222222222222222222222222222",
  "deadline": 1776219513,
  "signature": {
    "v": 27,
    "r": "0x1111111111111111111111111111111111111111111111111111111111111111",
    "s": "0x2222222222222222222222222222222222222222222222222222222222222222"
  }
}

Response

Created input record.

Example response

{
  "data": {
    "agreementId": "agr_123",
    "agreementAddress": "0x3333333333333333333333333333333333333333",
    "chainId": 59141,
    "inputId": "submitInitialPaymentProof",
    "txHash": "0x4444444444444444444444444444444444444444444444444444444444444444",
    "payload": "0x...",
    "values": {
      "paymentReference": "wire-2026-04-27-001"
    },
    "status": "FINALIZED",
    "createdAt": "2026-04-27T16:10:00.000Z",
    "updatedAt": "2026-04-27T16:11:00.000Z"
  },
  "meta": {
    "apiVersion": "v0"
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.