Result Objects

Result objects are wrapper objects that indicate whether or not the API call was a success and, if successful, include the requested data.
Note
API calls that don't have validations, such as searches, will return a collection of requested objectsinstead of a result object.

Success resultsAnchorIcon

If the API call was successful, the `success?` on the result will return {true}. The target object will be available as a member of the result object.
  1. Ruby
result.success? #=> true
transaction = result.transaction

Error resultsAnchorIcon

If the API call was not successful, the success on the result will return {false}. An error may be due to:
  1. Ruby
result.success? #=> false
result.errors
The errors result object will only be populated if the error is due to a failed validation. In this case, the object will contain one or more validation errors indicating which parameters were invalid:
  1. Ruby
result = gateway.customer.create(
    :email => "invalid_email",
    :credit_card => {
        :number => "not_numeric",
    }
)

result.errors.each do |error|
    puts error.attribute
    puts error.code
    puts error.message
end

result.errors.for(:customer).each do |error|
    puts error.attribute
    puts error.code
    puts error.message
end

result.errors.for(:customer).for(:credit_card).each do |error|
    puts error.attribute
    puts error.code
    puts error.message
end
For details on transaction error results, see the transaction response object.

MessageAnchorIcon

The message on the error result gives a human-readable description of what went wrong, regardless of the cause and nature of the error.
  1. Ruby
p result.message #=> "Amount is required.\nCredit card number is invalid."
The message can contain multiple error messages.
Note
This was added in version {{sdkVersionForDate "Jul09_2010"}}

ParamsAnchorIcon

Error results include the parameters that were submitted. This can be useful during Transparent Redirects to repopulate your form if validations fail.
  1. Ruby
p result.params
#=> {"transaction" => {"amount" => "12.00", "credit_card" => {"cardholder_name" => "John Doe"}}}
For PCI compliance reasons, credit card number and cvv parameters are not included.

See AlsoAnchorIcon