FR Bank Statement (FR) OCR Ruby

The Ruby OCR SDK supports the Bank Statement (FR) API.

Using the sample below, we are going to illustrate how to extract the data that we want using the OCR SDK.
Bank Statement (FR) sample

Quick-Start

require 'mindee'

# Init a new client
mindee_client = Mindee::Client.new(api_key: 'my-api-key')

# Load a file from disk
input_source = mindee_client.source_from_path('/path/to/the/file.ext')

# Parse the file
result = mindee_client.enqueue_and_parse(
  input_source,
  Mindee::Product::FR::BankStatement::BankStatementV1
)

# Print a full summary of the parsed data in RST format
puts result.document

# Print the document-level parsed data
# puts result.document.inference.prediction

Output (RST):

Field Types

Standard Fields

These fields are generic and used in several products.

Basic Field

Each prediction object contains a set of fields that inherit from the generic Field class.
A typical Field object will have the following attributes:

  • value (String, Float, Integer, Boolean): corresponds to the field value. Can be nil if no value was extracted.
  • confidence (Float, nil): the confidence score of the field prediction.
  • bounding_box (Mindee::Geometry::Quadrilateral, nil): contains exactly 4 relative vertices (points) coordinates of a right rectangle containing the field in the document.
  • polygon (Mindee::Geometry::Polygon, nil): contains the relative vertices coordinates (Point) of a polygon containing the field in the image.
  • page_id (Integer, nil): the ID of the page, is nil when at document-level.
  • reconstructed (Boolean): indicates whether an object was reconstructed (not extracted as the API gave it).

Aside from the previous attributes, all basic fields have access to a to_s method that can be used to print their value as a string.

Amount Field

The amount field AmountField only has one constraint: its value is a Float (or nil).

Date Field

Aside from the basic Field attributes, the date field DateField also implements the following:

  • date_object (Date): an accessible representation of the value as a JavaScript object.

String Field

The text field StringField only has one constraint: it's value is a String (or nil).

Specific Fields

Fields which are specific to this product; they are not used in any other product.

Transactions Field

The list of values that represent the financial transactions recorded in a bank statement.

A BankStatementV1Transaction implements the following attributes:

  • amount (Float): The monetary amount of the transaction.
  • date (String): The date on which the transaction occurred.
  • description (String): The additional information about the transaction.

Attributes

The following fields are extracted for Bank Statement (FR) V1:

Account Number

account_number (StringField): The unique identifier for a customer's account in the bank's system.

puts result.document.inference.prediction.account_number.value

Bank Address

bank_address (StringField): The physical location of the bank where the statement was issued.

puts result.document.inference.prediction.bank_address.value

Bank Name

bank_name (StringField): The name of the bank that issued the statement.

puts result.document.inference.prediction.bank_name.value

Client Address

client_address (StringField): The address of the client associated with the bank statement.

puts result.document.inference.prediction.client_address.value

Client Name

client_name (StringField): The name of the client who owns the bank statement.

puts result.document.inference.prediction.client_name.value

Closing Balance

closing_balance (AmountField): The final amount of money in the account at the end of the statement period.

puts result.document.inference.prediction.closing_balance.value

Opening Balance

opening_balance (AmountField): The initial amount of money in an account at the start of the period.

puts result.document.inference.prediction.opening_balance.value

Statement Date

statement_date (DateField): The date on which the bank statement was generated.

puts result.document.inference.prediction.statement_date.value

Statement End Date

statement_end_date (DateField): The date when the statement period ends.

puts result.document.inference.prediction.statement_end_date.value

Statement Start Date

statement_start_date (DateField): The date when the bank statement period begins.

puts result.document.inference.prediction.statement_start_date.value

Total Credits

total_credits (AmountField): The total amount of money deposited into the account.

puts result.document.inference.prediction.total_credits.value

Total Debits

total_debits (AmountField): The total amount of money debited from the account.

puts result.document.inference.prediction.total_debits.value

Transactions

transactions (Array<BankStatementV1Transaction>): The list of values that represent the financial transactions recorded in a bank statement.

for transactions_elem in result.document.inference.prediction.transactions do
  puts transactions_elem.value
end

Questions?

Join our Slack