Searching
Search Fields
We support three types of search fields:
- Text fields
- Multiple value fields
- Range fields
Learn more about working with search results.
Text fields
Text Fields can be searched using 5 operators: is
, is_not
, starts_with
, ends_with
, and contains
. Each search Text Field can't exceed 255 characters. Here is an example searching for customer email on a transaction.
- Ruby
search_results = gateway.transaction.search do |search|
search.customer_email.is "john.smith@example.com"
end
search_results = gateway.transaction.search do |search|
search.customer_email.is_not "john.smith@example.com"
end
search_results = gateway.transaction.search do |search|
search.customer_email.starts_with "john.smith"
end
search_results = gateway.transaction.search do |search|
search.customer_email.ends_with "example.com"
end
search_results = gateway.transaction.search do |search|
search.customer_email.contains "smith"
end
Multiple value fields
Search fields that accept multiple values support two operators: is
and in
.
- Ruby
search_results = gateway.transaction.search do |search|
search.status.is Braintree::Transaction::Status::Authorized
end
search_results = gateway.transaction.search do |search|
search.status.in(
Braintree::Transaction::Status::Authorized,
Braintree::Transaction::Status::SubmittedForSettlement
)
end
Range fields
Ranges support four operators: is
, between
, >=
, and <=
.
For non-time-based filters, between
is inclusive and >=
and <=
are respected as written.
For time-based filters, the lower bound will always be inclusive and the upper bound will always be exclusive, regardless of the range operator used. Additionally, one minute is automatically added to the upper bound.
Example: A search condition of "between 12/17/2015 16:00 and 12/17/2015 17:00" will include transactions created at 12/17/2015 16:00:00 and 12/17/2015 17:00:59 but will not include a transaction created at 12/17/2015 17:01:00.
- Ruby
search_results = gateway.transaction.search do |search|
search.amount.is("15.00")
end
search_results = gateway.transaction.search do |search|
search.amount >= "10.00"
end
search_results = gateway.transaction.search do |search|
search.amount <= "20.00"
end
search_results = gateway.transaction.search do |search|
search.amount.between("10.00", "20.00")
end
search_results = gateway.transaction.search do |search|
search.created_at.between("12/17/2015 17:00", "12/17/2015 17:00")
end