Gravv docs
Docs Agent Sign in Get API keys

Update an account application

Sends the data or documents the bank asked for, and resumes opening the account. Get the application first. It must be blocked, or manual_review for documents. Send every requested item in one call. After a partial answer, the application stays blocked.

This route takes no Idempotency-Key, so a retry uploads again. The response leaves out the status reason fields. Get the application again to see what is still needed. For terms or verification, send the customer to required_action_url instead.

PATCHhttps://api.gravv.xyz/v2/accounts/applications/{application_id}

Path Parameters

ID of the account application. Read it from the account (application_id) or from the application webhooks.

Request Body

Field values by field name, such as {"tax_id_number": "123456789"}. On a blocked application, send only fields the bank asked for.

Changes to the customer record. Gravv saves them on the customer, not only on this application.

Party changes, in the create shape. Send them only on a draft or blocked application.

Documents to upload. Send them only on a draft, blocked or manual_review application. Upload every requested type in this one call.

Possible values: front, back

Required for an identity document on a business application

Standard or URL-safe base64. JPEG, PNG or PDF, at most 2 MB.

Alpha-2 code. Required except for selfie_photo.

Request Examples

{
"customer": {
"tax_id_number": "123456789"
},
"documents": [
{
  "document_type": "proof_of_address",
  "issuing_country": "US",
  "filename": "bill.pdf",
  "content": "<base64>"
}
]
}

Responses

Status Description
200 The updated application
400 The application cannot take this update, or a field or document is wrong
404 Not found, or not in your business

200 response

Possible values: individual, business

Possible values: individual, joint, minor, business

processing while the bank works, blocked while it waits on you or the customer, manual_review while Gravv holds it, then approved or rejected. draft and submitted appear only on applications not made with POST /v2/accounts.

Possible values: draft, submitted, processing, blocked, manual_review, approved, rejected, expired, cancelled

Associated person ID. Use it as party_id on a document.

Possible values: primary, joint_owner, authorized_individual, guardian, minor_beneficial_owner, trustee, grantor, trustee_and_grantor, executor

Possible values: declared, documents_pending, verified_locally, submitted_to_provider, flagged, accepted

Same codes as on the account. The API returns it only when you read a single application.

The update returns it when it checks the data you sent

Deprecated. Use the flat status fields and status.

{
"data": {
"application_id": "5e7a9c1b-2d4f-4a6b-8c0d-e1f2a3b4c5d6",
"customer_id": "0b6f3c1e-2a4d-4c8e-9f10-7d2a6b5e4c33",
"customer_type": "individual",
"registration_type": "individual",
"status": "processing",
"created_at": "2026-10-13T09:12:44.512031Z",
"updated_at": "2026-10-13T10:02:31.004112Z",
"validation": {
  "ok": true
}
},
"error": null
}

400 response

Error message. When several fields fail, it names the first and says how many others are in details. Branch on the HTTP status and the details codes, not on this text.

Field problems, keyed by field path. Each value is CODE: message, such as REQUIRED: Customer ID is required. The API joins several problems on one field with ; .

{
"data": null,
"error": "application is not editable"
}
{
"data": null,
"error": "Tax ID Number was not requested for this application",
"details": {
"tax_id_number": "INVALID_VALUE: Tax ID Number was not requested for this application"
}
}

404 response

Error message. When several fields fail, it names the first and says how many others are in details. Branch on the HTTP status and the details codes, not on this text.

Field problems, keyed by field path. Each value is CODE: message, such as REQUIRED: Customer ID is required. The API joins several problems on one field with ; .

{
"data": null,
"error": "Resource not found"
}

Authorization

  • ApiKeyAuth
Was this page helpful?
ESC