# Capture check (RDC) POST https://api-sandbox.payabli.com/api/CheckCapture/CheckProcessing Content-Type: application/json Captures a check for Remote Deposit Capture (RDC) using the provided check images and details. This endpoint handles the OCR extraction of check data including MICR, routing number, account number, and amount. See the [RDC guide](/developers/developer-guides/pay-in-rdc) for more details. Reference: https://docs.payabli.com/developers/api-reference/moneyin/check-capture ## OpenAPI Specification ```yaml openapi: 3.1.1 info: title: Process Check Capture version: endpoint_checkCapture.CheckProcessing paths: /CheckCapture/CheckProcessing: post: operationId: check-processing summary: Process Check Capture description: >- Captures a check for Remote Deposit Capture (RDC) using the provided check images and details. This endpoint handles the OCR extraction of check data including MICR, routing number, account number, and amount. See the [RDC guide](/developers/developer-guides/pay-in-rdc) for more details. tags: - - subpackage_checkCapture parameters: - name: requestToken in: header required: true schema: type: string responses: '200': description: Success response with check processing results. content: application/json: schema: $ref: '#/components/schemas/type_checkCapture:CheckCaptureResponse' '400': description: Bad request/ invalid data content: {} '401': description: Unauthorized request. content: {} '500': description: Internal API Error content: {} '503': description: Database connection error content: {} requestBody: content: application/json: schema: type: object properties: entryPoint: $ref: '#/components/schemas/type_:Entry' frontImage: type: string description: >- Base64-encoded front check image. Must be JPEG or PNG format and less than 1MB. Image must show the entire check clearly with no partial, blurry, or illegible portions. rearImage: type: string description: >- Base64-encoded rear check image. Must be JPEG or PNG format and less than 1MB. Image must show the entire check clearly with no partial, blurry, or illegible portions. checkAmount: type: integer description: Check amount in cents (maximum 32-bit integer value). required: - entryPoint - frontImage - rearImage - checkAmount components: schemas: type_:Entry: type: string type_:PageIdentifier: type: string type_checkCapture:CheckCaptureResponse: type: object properties: id: type: string description: >- Unique ID for the check capture, to be used with the /api/MoneyIn/getpaid endpoint. success: type: boolean description: Indicates whether the check processing was successful. processDate: type: string description: The date and time when the check was processed (ISO 8601 format). ocrMicr: type: string description: >- The OCR-extracted MICR (Magnetic Ink Character Recognition) line from the check. ocrMicrStatus: type: string description: Status of the MICR extraction process. ocrMicrConfidence: type: string description: Confidence score for the MICR extraction (0 to 100). ocrAccountNumber: type: string description: The bank account number extracted from the check. ocrRoutingNumber: type: string description: The bank routing number extracted from the check. ocrCheckNumber: type: string description: The check number extracted from the check. ocrCheckTranCode: type: string description: The transaction code extracted from the check. ocrAmount: type: string description: The amount extracted via OCR from the check. ocrAmountStatus: type: string description: Status of the amount extraction process. ocrAmountConfidence: type: string description: Confidence score for the amount extraction (0 to 100). amountDiscrepancyDetected: type: boolean description: >- Flag indicating whether there's a discrepancy between the provided amount and the OCR-detected amount. endorsementDetected: type: boolean description: Flag indicating whether an endorsement was detected on the check. errors: type: array items: type: string description: List of error messages that occurred during processing. messages: type: array items: type: string description: List of informational messages about the processing. carLarMatchConfidence: type: string description: >- Confidence score for the match between Courtesy Amount Recognition (CAR) and Legal Amount Recognition (LAR). carLarMatchStatus: type: string description: Status of the CAR/LAR match. frontImage: type: string description: Processed front image of the check (Base64-encoded). rearImage: type: string description: Processed rear image of the check (Base64-encoded). checkType: type: number format: double description: |- Identifier for the type of check. Personal = 1 Business = 2 Only personal checks are supported for check capture. referenceNumber: type: string description: Reference number for the transaction. pageIdentifier: $ref: '#/components/schemas/type_:PageIdentifier' required: - success - processDate - amountDiscrepancyDetected - endorsementDetected - checkType ``` ## SDK Code Examples ```python Capture from payabli import payabli client = payabli( api_key="YOUR_API_KEY", ) client.check_capture.check_processing( entry_point="47abcfea12", front_image="/9j/4AAQSkZJRgABAQEASABIAAD...", rear_image="/9j/4AAQSkZJRgABAQEASABIAAD...", check_amount=12550, ) ``` ```typescript Capture import { PayabliClient } from "@payabli/sdk-node"; const client = new PayabliClient({ apiKey: "YOUR_API_KEY" }); await client.checkCapture.checkProcessing({ entryPoint: "47abcfea12", frontImage: "/9j/4AAQSkZJRgABAQEASABIAAD...", rearImage: "/9j/4AAQSkZJRgABAQEASABIAAD...", checkAmount: 12550 }); ``` ```go Capture import ( context "context" option "github.com/payabli/sdk-go/option" sdkgo "github.com/payabli/sdk-go" sdkgoclient "github.com/payabli/sdk-go/client" ) client := sdkgoclient.NewClient( option.WithApiKey( "", ), ) response, err := client.CheckCapture.CheckProcessing( context.TODO(), &sdkgo.CheckCaptureRequestBody{ EntryPoint: "47abcfea12", FrontImage: "/9j/4AAQSkZJRgABAQEASABIAAD...", RearImage: "/9j/4AAQSkZJRgABAQEASABIAAD...", CheckAmount: 12550, }, ) ``` ```csharp Capture using PayabliApi; var client = new PayabliApiClient("API_KEY"); await client.CheckCapture.CheckProcessingAsync( new CheckCaptureRequestBody { EntryPoint = "47abcfea12", FrontImage = "/9j/4AAQSkZJRgABAQEASABIAAD...", RearImage = "/9j/4AAQSkZJRgABAQEASABIAAD...", CheckAmount = 12550, } ); ``` ```ruby Capture require 'uri' require 'net/http' url = URI("https://api-sandbox.payabli.com/api/CheckCapture/CheckProcessing") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["requestToken"] = '' request["Content-Type"] = 'application/json' request.body = "{\n \"entryPoint\": \"47abcfea12\",\n \"frontImage\": \"/9j/4AAQSkZJRgABAQEASABIAAD...\",\n \"rearImage\": \"/9j/4AAQSkZJRgABAQEASABIAAD...\",\n \"checkAmount\": 12550\n}" response = http.request(request) puts response.read_body ``` ```java Capture HttpResponse response = Unirest.post("https://api-sandbox.payabli.com/api/CheckCapture/CheckProcessing") .header("requestToken", "") .header("Content-Type", "application/json") .body("{\n \"entryPoint\": \"47abcfea12\",\n \"frontImage\": \"/9j/4AAQSkZJRgABAQEASABIAAD...\",\n \"rearImage\": \"/9j/4AAQSkZJRgABAQEASABIAAD...\",\n \"checkAmount\": 12550\n}") .asString(); ``` ```php Capture request('POST', 'https://api-sandbox.payabli.com/api/CheckCapture/CheckProcessing', [ 'body' => '{ "entryPoint": "47abcfea12", "frontImage": "/9j/4AAQSkZJRgABAQEASABIAAD...", "rearImage": "/9j/4AAQSkZJRgABAQEASABIAAD...", "checkAmount": 12550 }', 'headers' => [ 'Content-Type' => 'application/json', 'requestToken' => '', ], ]); echo $response->getBody(); ``` ```swift Capture import Foundation let headers = [ "requestToken": "", "Content-Type": "application/json" ] let parameters = [ "entryPoint": "47abcfea12", "frontImage": "/9j/4AAQSkZJRgABAQEASABIAAD...", "rearImage": "/9j/4AAQSkZJRgABAQEASABIAAD...", "checkAmount": 12550 ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api-sandbox.payabli.com/api/CheckCapture/CheckProcessing")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```