cURL
curl --request POST \
--url https://test-api.shodai.network/v0/agreements/{id}/input \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"inputId": "submitInitialPaymentProof",
"values": {
"paymentReference": "wire-2026-04-27-001"
},
"signer": "0x2222222222222222222222222222222222222222",
"deadline": 1776219513,
"signature": {
"v": 27,
"r": "0x1111111111111111111111111111111111111111111111111111111111111111",
"s": "0x2222222222222222222222222222222222222222222222222222222222222222"
}
}
'const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
inputId: 'submitInitialPaymentProof',
values: {paymentReference: 'wire-2026-04-27-001'},
signer: '0x2222222222222222222222222222222222222222',
deadline: 1776219513,
signature: {
v: 27,
r: '0x1111111111111111111111111111111111111111111111111111111111111111',
s: '0x2222222222222222222222222222222222222222222222222222222222222222'
}
})
};
fetch('https://test-api.shodai.network/v0/agreements/{id}/input', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"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",
"requestId": "req_123"
}
}{
"error": {
"code": "unauthorized",
"message": "Missing API credential",
"requestId": "<string>",
"details": "<unknown>"
}
}{
"error": {
"code": "unauthorized",
"message": "Missing API credential",
"requestId": "<string>",
"details": "<unknown>"
}
}{
"error": {
"code": "unauthorized",
"message": "Missing API credential",
"requestId": "<string>",
"details": "<unknown>"
}
}{
"error": {
"code": "unauthorized",
"message": "Missing API credential",
"requestId": "<string>",
"details": "<unknown>"
}
}{
"error": {
"code": "unauthorized",
"message": "Missing API credential",
"requestId": "<string>",
"details": "<unknown>"
}
}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
cURL
curl --request POST \
--url https://test-api.shodai.network/v0/agreements/{id}/input \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"inputId": "submitInitialPaymentProof",
"values": {
"paymentReference": "wire-2026-04-27-001"
},
"signer": "0x2222222222222222222222222222222222222222",
"deadline": 1776219513,
"signature": {
"v": 27,
"r": "0x1111111111111111111111111111111111111111111111111111111111111111",
"s": "0x2222222222222222222222222222222222222222222222222222222222222222"
}
}
'const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
inputId: 'submitInitialPaymentProof',
values: {paymentReference: 'wire-2026-04-27-001'},
signer: '0x2222222222222222222222222222222222222222',
deadline: 1776219513,
signature: {
v: 27,
r: '0x1111111111111111111111111111111111111111111111111111111111111111',
s: '0x2222222222222222222222222222222222222222222222222222222222222222'
}
})
};
fetch('https://test-api.shodai.network/v0/agreements/{id}/input', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"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",
"requestId": "req_123"
}
}{
"error": {
"code": "unauthorized",
"message": "Missing API credential",
"requestId": "<string>",
"details": "<unknown>"
}
}{
"error": {
"code": "unauthorized",
"message": "Missing API credential",
"requestId": "<string>",
"details": "<unknown>"
}
}{
"error": {
"code": "unauthorized",
"message": "Missing API credential",
"requestId": "<string>",
"details": "<unknown>"
}
}{
"error": {
"code": "unauthorized",
"message": "Missing API credential",
"requestId": "<string>",
"details": "<unknown>"
}
}{
"error": {
"code": "unauthorized",
"message": "Missing API credential",
"requestId": "<string>",
"details": "<unknown>"
}
}
Input submission requires a wallet that can sign for an account allowed by the authored input
issuer. Use the deployed agreement record’s chainId and contract address when creating the EIP-712 signature. In SDK integrations, use submitAgreementInputWithPermit(...) to sign and submit in one flow. Generated API examples document request and response shape; choose input IDs and values from the deployed agreement JSON.Authorizations
ApiKeyAuthOAuthBearerAuth
Canonical API-key credential. Send X-API-Key: cns_pk_..., or Authorization: Bearer cns_pk_... only as an API-key compatibility alias.
Path Parameters
Agreement ID or deployed agreement address.
Body
application/json
Signed input submission for a deployed agreement.
Input ID defined in the agreement JSON.
Business values submitted for this input.
Wallet address that signed the EIP-712 input permit.
Unix timestamp in seconds when the input permit expires.
EIP-712 signature parts.
Show child attributes
Show child attributes
Example:
{ "v": 27, "r": "0x1111111111111111111111111111111111111111111111111111111111111111", "s": "0x2222222222222222222222222222222222222222222222222222222222222222" }
Response
Created input record.
Show child attributes
Show child attributes
Example:
{ "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" }
Show child attributes
Show child attributes
Was this page helpful?
⌘I