Search for transactions
Find a single transaction
Finding a single transaction based on the UID returned to when the transaction was created is easy.
$transaction = Pencepay_Transaction::find('transaction_uid');
When searching for multiple transactions, you can use search criteria appropriate to the specific data type.
You can search for transactions using a multitude of different search filters. Depending on the data type of the search field, different search operators (e.g. is, in, contains, beginsWith, endsWith) are available to you.
Customer
Searching for transactions based on Customer data.
$search = Pencepay_Request_TransactionSearch::build()
->billingCompany()->is('Some Company Ltd')
->billingFirstName()->is('John')
->billingLastName()->is('Hancock')
->billingLine1()->is('Street 123')
->billingLine2()->is('')
->billingCity()->is('Zagreb')
->billingPostalCode()->is('10000')
->billingCountryCode()->in(array('5111233', '1233334'));
$collection = Pencepay_Transaction::search('customer_uid', $search);
Billing address
You can search for transactions based on billing address.
$search = Pencepay_Request_TransactionSearch::build()
->billingCompany()->is('Some Company Ltd')
->billingFirstName()->is('John')
->billingLastName()->is('Hancock')
->billingLine1()->is('Street 123')
->billingLine2()->is('')
->billingCity()->is('Zagreb')
->billingPostalCode()->is('10000')
->billingCountryCode()->in(array('GB', 'DE'));
Credit Card
Searching for transactions based on CreditCard data.
$search = Pencepay_Request_TransactionSearch::build()
->cardholderName()->is('John Hancock')
->cardholderBin()->is('435010')
->cardNumberLast4()->is('1002');
Transaction properties
Search for transactions based on other properties, like transaction ID, type, payment method used etc.
$search = Pencepay_Request_TransactionSearch::build()
->ids()->in(array('5111233', '1233334'))
->paymentMethod()->in(array('VISA'))
->amount()->is(20.55)
->currencyCode()->is('EUR')
->status()->in(array('AUTHORIZED'))
->approvalCode()->is('ANB14A2')
->live()->in(array('LIVE'))
->tags()->in(array('TAG_CODE1', 'TAG_CODE2'))
->created()->greaterThanOrEqualTo(1417993999);