Skip to content

Signing errors

An error is always:

{ "error": { "type": "invalid_request_error", "code": "phone_invalid", "message": "Give the signer's Nepali mobile number, for example +9779841234567.", "param": "signer[phone]" } }

code is stable: build on it. message is written for a developer reading a log and may change. param names the field at fault.

Code Status Meaning
api_key_missing 401 No Authorization: Bearer header.
invalid_api_key 401 The key is unknown, revoked, past its roll time, or used in the other mode.
secret_key_required 403 A publishable key tried something only a secret key may do.
client_secret_invalid 401 A publishable key without the request’s client_secret, or with another request’s.
Code Status Meaning
parameter_missing, parameter_invalid 400 A field is missing or wrong; see param.
phone_invalid 400 Not a Nepali mobile number.
file_missing, file_invalid 400 No PDF, or a PDF that cannot be signed: over 20 MB or 300 pages, password-protected, or with scripts, actions or attached files.
resource_missing 400, 404 No such file, request or document in this mode.
certificate_application_required 400 The signer holds no certificate; include their application form with purpose: certificate_application and their identity.
signer_already_certified 400 The signer holds a certificate; leave the application form out.
signer_identity_mismatch 409 The phone number belongs to a signer with a different identity document.
signature_placement_invalid 400 The page does not exist, or the signature does not fit on it.
live_signing_unavailable 403 Live signing is not yet open. Use test mode.
Code Status Meaning
signing_request_unexpected_state 409 The request is already signed, declined, canceled, expired or failed.
code_incorrect 400 Wrong code; the message says how many tries are left.
code_expired 400 The code is over 10 minutes old; send another.
code_attempts_exhausted 400 Five wrong codes; the request has failed.
code_resend_too_soon 429 Wait a minute between codes.
pin_required 400 Live mode: send the signer’s eSign PIN with the code (code.requires has pin).
pin_incorrect 400 The PIN is wrong; the message says how many tries are left. Offer a PIN reset.
account_locked 423 Too many wrong PINs. The signer resets their PIN (pin-reset).
new_pin_invalid 400 A first signing’s PIN: 6 to 8 digits, not a run or a repeat.
subscriber_agreement_required 400 A first signing: send subscriber_agreement_version from the session.
code_resend_limit 429 Five codes have been sent for this request.
code_rate_limited 429 Too many codes to this number recently.
code_not_sent 502 The SMS could not be sent; try again.
signing_in_progress 409 A confirm is already signing; fetch the request in a moment.
signing_failed 500 Signing could not be completed and nothing was signed; create a new request.
Code Status Meaning
idempotency_key_reused 409 The Idempotency-Key was used with a different request within 24 hours.
internal_error 500 Our fault. Retry with the same Idempotency-Key; a server error is never replayed.

Every call, with its code, is listed under Signing → Logs in the console.

Code Status Meaning
mobile_confirmation_required 409 The customer is registered with another mobile. Send the code to /mobile-confirmation, then accept again.
mobile_in_use 409 The mobile belongs to another person’s account.
kyc_mismatch_under_review 409 Your KYC names the customer differently from their registration. NCC reviews it; nothing was changed.
certificate_suspended 409 The certificate is suspended; nothing can be signed until that ends.
certificate_application_required 409 The certificate has to be issued, and the request has no KYC to draw the application from.
signer_blocked 409 You stopped signings for this customer. Lift the block first.
signer_unknown 404 You have had no live signings with this customer.
live_mode_only 400 Certificates at Radiant exist in live mode only.
otp_incorrect, otp_attempts_exhausted 400 The customer’s confirmation code was wrong, or wrong three times.