[{"data":1,"prerenderedAt":164},["ShallowReactive",2],{"content-\u002Fchangelog\u002F2026-06-14-analyze-document":3},{"id":4,"title":5,"author":6,"beta":7,"body":8,"categories":6,"category":146,"categoryType":147,"date":148,"description":149,"extension":150,"faq":6,"howto":6,"isBlog":7,"isChangelog":151,"meta":152,"navigation":151,"path":159,"rawbody":160,"seo":161,"stem":162,"thumbnail":6,"__hash__":163},"content\u002Fchangelog\u002F2026-06-14-analyze-document.md","AI Document Analysis",null,false,{"type":9,"value":10,"toc":138},"minimark",[11,20,25,66,70,81,84,88,117,121],[12,13,14,15,19],"p",{},"You can now pre-screen KYC documents before submitting them. The new ",[16,17,18],"code",{},"POST \u002Fv1\u002Fupload\u002Fanalyze"," endpoint reads a PDF, JPG, or PNG with AI, checks it against the rules for its type, and returns an approval-rate signal with a short reason.",[21,22,24],"h2",{"id":23},"tldr","TL;DR",[26,27,28,34,56,59],"ul",{},[29,30,31,32],"li",{},"New endpoint: ",[16,33,18],{},[29,35,36,37,40,41,44,45,48,49,52,53],{},"Returns ",[16,38,39],{},"approval_rate"," of ",[16,42,43],{},"low",", ",[16,46,47],{},"medium",", or ",[16,50,51],{},"high"," plus a one-line ",[16,54,55],{},"description",[29,57,58],{},"Supports 13 document types, from identity and passport to bank and financial statements",[29,60,61,62,65],{},"Optional ",[16,63,64],{},"metadata"," cross-checks values you already collected against the document",[21,67,69],{"id":68},"how-it-works","How it works",[12,71,72,73,76,77,80],{},"Send a ",[16,74,75],{},"file"," (PDF, JPG, or PNG up to 5MB) and a ",[16,78,79],{},"type",". The analysis runs the document against the rule set for that type and returns how confident it is that the document should be approved, with a short reason you can show to the customer or your reviewers.",[12,82,83],{},"The result is a signal, not a decision. KYC approval still comes from the verification flow; this lets you catch an expired ID or an out-of-date proof of address early, before submitting.",[21,85,87],{"id":86},"optional-metadata","Optional metadata",[12,89,90,91,93,94,44,97,48,100,103,104,106,107,44,110,44,113,116],{},"Pass ",[16,92,64],{}," as a JSON string of values you already have, such as ",[16,95,96],{},"full_name",[16,98,99],{},"date_of_birth",[16,101,102],{},"address",", and they are matched against the document. A clear mismatch caps the rating at ",[16,105,43],{}," and the reason explains it. Requested transaction limits (",[16,108,109],{},"requested_per_transaction",[16,111,112],{},"requested_daily",[16,114,115],{},"requested_monthly",") are checked for sufficient capacity instead of an exact match.",[21,118,120],{"id":119},"get-started","Get started",[12,122,123,124,129,130,137],{},"See the ",[125,126,128],"a",{"href":127},"\u002Fdocs\u002Fessentials\u002Fanalyze-document","Analyze Document documentation",". The full request and response schema is in the ",[125,131,136],{"href":132,"rel":133,"target":135},"https:\u002F\u002Fapi.blindpay.com\u002Freference#tag\u002Fupload\u002FPOST\u002Fv1\u002Fupload\u002Fanalyze",[134],"nofollow","\\_blank","BlindPay API Docs",".",{"title":139,"searchDepth":140,"depth":140,"links":141},"",2,[142,143,144,145],{"id":23,"depth":140,"text":24},{"id":68,"depth":140,"text":69},{"id":86,"depth":140,"text":87},{"id":119,"depth":140,"text":120},"New Feature","feature","2026-06-14","A new endpoint reads a KYC document with AI and returns an approval-rate signal, so you can pre-screen files before submitting them for verification.","md",true,{"excerpt":153},{"type":9,"value":154},[155],[12,156,14,157,19],{},[16,158,18],{},"\u002Fchangelog\u002F2026-06-14-analyze-document","---\ntitle: AI Document Analysis\ndescription: A new endpoint reads a KYC document with AI and returns an approval-rate signal, so you can pre-screen files before submitting them for verification.\ndate: 2026-06-14\ncategory: New Feature\ncategoryType: feature\nisChangelog: true\n---\n\nYou can now pre-screen KYC documents before submitting them. The new `POST \u002Fv1\u002Fupload\u002Fanalyze` endpoint reads a PDF, JPG, or PNG with AI, checks it against the rules for its type, and returns an approval-rate signal with a short reason.\n\n\u003C!--more-->\n\n## TL;DR\n\n- New endpoint: `POST \u002Fv1\u002Fupload\u002Fanalyze`\n- Returns `approval_rate` of `low`, `medium`, or `high` plus a one-line `description`\n- Supports 13 document types, from identity and passport to bank and financial statements\n- Optional `metadata` cross-checks values you already collected against the document\n\n## How it works\n\nSend a `file` (PDF, JPG, or PNG up to 5MB) and a `type`. The analysis runs the document against the rule set for that type and returns how confident it is that the document should be approved, with a short reason you can show to the customer or your reviewers.\n\nThe result is a signal, not a decision. KYC approval still comes from the verification flow; this lets you catch an expired ID or an out-of-date proof of address early, before submitting.\n\n## Optional metadata\n\nPass `metadata` as a JSON string of values you already have, such as `full_name`, `date_of_birth`, or `address`, and they are matched against the document. A clear mismatch caps the rating at `low` and the reason explains it. Requested transaction limits (`requested_per_transaction`, `requested_daily`, `requested_monthly`) are checked for sufficient capacity instead of an exact match.\n\n## Get started\n\nSee the [Analyze Document documentation](\u002Fdocs\u002Fessentials\u002Fanalyze-document). The full request and response schema is in the [BlindPay API Docs](https:\u002F\u002Fapi.blindpay.com\u002Freference#tag\u002Fupload\u002FPOST\u002Fv1\u002Fupload\u002Fanalyze){target=\"\\_blank\"}.\n",{"title":5,"description":149},"changelog\u002F2026-06-14-analyze-document","6zVT_u8xxWWQl8502aC4OhsZO7y01cua-AohmP_BsXc",1781485526812]