Transaction
Transaction: Search
Returns a collection of Transaction response objects.
For operators available on search fields, see the search fields page.
- Ruby
collection = gateway.transaction.search do |search|
search.customer_id.is "the_customer_id"
end
collection.each do |transaction|
puts transaction.amount
end
Parameters
:amount
rangexx
or x.xx
.:authorized_at
range:billing_company
text:billing_region
text:created_at
range:created_using
multipleThe data used to create the transaction. Possible values:
Braintree::Transaction::CreatedUsing::Token
Braintree::Transaction::CreatedUsing::FullInformation
:credit_card_card_type
multipleThe type of credit card used in the transaction. Possible values:
"American Express"
"Discover"
"Maestro"
"JCB"
"MasterCard"
"UnionPay"
"Visa"
:credit_card_customer_location
multipleThe location of the customer in the transaction. Possible values:
international
us
The number of the card used in the transaction.
Card number search is restricted: starts with searches up to the first 6 digits, ends with searches last 4 digits, and contains is not allowed.
The unique identifier of the card number. See the transaction response reference for more details.
:currency
text:customer_email
text:customer_fax
text:customer_id
text:customer_phone
text:debit_network
multiple:disbursement_date
rangeOnly available for certain account types; contact us for details.
The date the transaction was disbursed to your bank account. This field does not include a time value.
:dispute_date
rangeOnly available for certain account types; contact us for details.
The date the transaction was disputed. This field does not include a time value.
:failed_at
range:gateway_rejected_at
range:id
text:ids
multiple:merchant_account_id
multipleThe merchant account IDs associated with transactions.
A fragment of the merchant account ID to search for.
:contains
text:ends_with
text:is
text:is_not
text:starts_with
text:order_id
text:payment_instrument_type
multiple:refund
multipleWhether or not the transaction is a refund. The value may be either true or false. This parameter must be used in conjunction with type
.
:settled_at
range:shipping_region
text:source
multipleHow a transaction was created. Possible values:
Api
ControlPanel
Recurring
- OAuth application client ID of the transaction facilitator
:status
multipleThe list of statuses to search for. Possible statuses:
Authorizing
Authorized
AuthorizationExpired
SubmittedForSettlement
Settling
SettlementPending
SettlementDeclined
Settled
Voided
ProcessorDeclined
GatewayRejected
Failed
:type
multiplePossible values:
Sale
Credit
:user
multiple:voided_at
rangeExamples
Credit card
- Ruby
search_results = gateway.transaction.search do |search|
search.credit_card_cardholder_name.is "Patrick Smith"
search.credit_card_expiration_date.is "05/2012"
search.credit_card_number.ends_with "1111"
end
Searching On Customer Details
- Ruby
search_results = gateway.transaction.search do |search|
search.customer_company.is "Braintree"
search.customer_email.is "smith@example.com"
search.customer_fax.is "5551231234"
search.customer_first_name.is "Tom"
search.customer_last_name.is "Smith"
search.customer_phone.is "5551231234"
search.customer_website.is "http://example.com"
end
See search fields for a list of available operators. They allow you to do nice things like this:
- Ruby
search_results = gateway.transaction.search do |search|
search.customer_email.ends_with "example.com"
end
Billing address
- Ruby
search_results = gateway.transaction.search do |search|
search.billing_first_name.is "Paul"
search.billing_last_name.is "Smith"
search.billing_company.is "Braintree"
search.billing_street_address.is "123 Main St"
search.billing_extended_address.is "Suite 123"
search.billing_locality.is "Chicago"
search.billing_region.is "IL"
search.billing_postal_code.is "12345"
search.billing_country_name.is "United States of America"
end
Shipping address
- Ruby
search_results = gateway.transaction.search do |search|
search.shipping_first_name.is "Paul"
search.shipping_last_name.is "Smith"
search.shipping_company.is "Braintree"
search.shipping_street_address.is "123 Main St"
search.shipping_extended_address.is "Suite 123"
search.shipping_locality.is "Chicago"
search.shipping_region.is "IL"
search.shipping_postal_code.is "12345"
search.shipping_country_name.is "United States of America"
end
Other top-level attributes
- Ruby
search_results = gateway.transaction.search do |search|
search.order_id.is "myorder"
search.processor_authorization_code.is "123456"
end
Vault associations
You can search for transactions associated to a payment method token.
- Ruby
search_results = gateway.transaction.search do |search|
search.payment_method_token.is "the_token"
end
How the transaction was created
You can search for transactions that were created using a token.
- Ruby
search_results = gateway.transaction.search do |search|
search.created_using.is Braintree::Transaction::CreatedUsing::Token
end
Or transactions that were created using full credit card information.
- Ruby
search_results = gateway.transaction.search do |search|
search.created_using.is Braintree::Transaction::CreatedUsing::FullInformation
end
Those are the only two choices for created_using.
Customer location
Customers in the US.
- Ruby
search_results = gateway.transaction.search do |search|
search.credit_card_customer_location.is Braintree::CreditCard::CustomerLocation::US
end
Or international customers.
- Ruby
search_results = gateway.transaction.search do |search|
search.credit_card_customer_location.is Braintree::CreditCard::CustomerLocation::International
end
Merchant account
A specific one.
- Ruby
search_results = gateway.transaction.search do |search|
search.merchant_account_id.is "my_merchant_account"
end
Or any of several.
- Ruby
search_results = gateway.transaction.search do |search|
search.merchant_account_id.in "account_1", "account_2"
end
Credit card type
A specific one.
- Ruby
search_results = gateway.transaction.search do |search|
search.credit_card_card_type.is Braintree::CreditCard::CardType::Visa
end
Or any of several.
- Ruby
search_results = gateway.transaction.search do |search|
search.credit_card_card_type.in(
Braintree::CreditCard::CardType::Visa,
Braintree::CreditCard::CardType::MasterCard,
Braintree::CreditCard::CardType::Discover
)
end
Transaction status
Another one or many search field.
- Ruby
search_results = gateway.transaction.search do |search|
search.status.in(
Braintree::Transaction::Status::ProcessorDeclined,
Braintree::Transaction::Status::GatewayRejected
)
end
Transaction source
API, Control Panel, or Recurring Billing.
- Ruby
search_results = gateway.transaction.search do |search|
search.source.in(
Braintree::Transaction::Source::Api,
Braintree::Transaction::Source::ControlPanel,
Braintree::Transaction::Source::Recurring
)
end
Transaction type
The two types of transactions are sale and credit. Refunds are a special kind of credit, so there are some extra options around them.
- Ruby
search_results = gateway.transaction.search do |search|
search.type.is Braintree::Transaction::Type::Sale
end
This will return all credits, regardless of whether they're refunds, or standalone credits.
- Ruby
search_results = gateway.transaction.search do |search|
search.type.is Braintree::Transaction::Type::Credit
end
If you only want the refunds:
- Ruby
search_results = gateway.transaction.search do |search|
search.type.is Braintree::Transaction::Type::Credit
search.refund.is true
end
And if you only want the credits that aren't refunds:
- Ruby
search_results = gateway.transaction.search do |search|
search.type.is Braintree::Transaction::Type::Credit
search.refund.is false
end
Amount
It's a range field.
- Ruby
search_results = gateway.transaction.search do |search|
search.amount.between "100.00", "200.00"
end
search_results = gateway.transaction.search do |search|
search.amount >= "100.00"
end
search_results = gateway.transaction.search do |search|
search.amount <= "100.00"
end
Status changes
You can search for transactions that entered a given status at a certain date and time. For instance, you can find all transactions which were submitted for settlement in the past 3 days.
You can search on these statuses:
- created_at
- authorized_at
- submitted_for_settlement_at
- settled_at
- voided_at
- processor_declined_at
- gateway_rejected_at
- failed_at
- authorization_expired_at
A few examples:
- Ruby
search_results = gateway.transaction.search do |search|
search.created_at >= Time.now - 60*60*24 # a day ago
end
- Ruby
search_results = gateway.transaction.search do |search|
search.settled_at >= Time.now - 60*60*24 # a day ago
end
- Ruby
search_results = gateway.transaction.search do |search|
search.processor_declined_at >= Time.now - 60*60*24 # a day ago
end
Dispute date range
- Ruby
search_results = gateway.transaction.search do |search|
search.dispute_date >= Time.now - 60*60*24 # a day ago
end