Documentation

BankPay

  1. Home
  2. Docs
  3. BankPay
  4. API
  5. Transactions

Transactions

Transaction Interface

Transaction Intent object

{ 
    "amount_authorized": "5.99", 
    "amount_captured": null, 
    "amount_refunded_total": null, 
    "authorized_at": "2020-01-30T21:57:08Z", 
    "bank_account_id": "bank_account_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H", 
    "billing_address_id": "address_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H", 
    "cancel": null, 
    "captured_at": null, 
    "captured_status": null, 
    "capture_reference_id": null, 
    "consumer_id": "consumer_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H", 
    "extras": { 
        // ... Custom object
    }, 
    "id": "transaction_intent_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H", 
    "is_mailable": false, 
    "merchant_id": "291138", 
    "payments": [ 
        { 
            "amount": "1.50", 
            "scheduled_for": "2020-01-30" 
        }, 
        { 
            "amount": "1.50", 
            "scheduled_for": "2020-02-13" 
        }, 
        { 
            "amount": "1.50", 
            "scheduled_for": "2020-02-27" 
        }, 
        { 
            "amount": "1.49", 
            "scheduled_for": "2020-03-12" 
        } 
     ], 
     "reason": "The transaction has been approved.", 
     "reference_id": "4604290000079", 
     "refund": null, 
     "service_fee": "5.00", 
     "service_fee_accepted_at": "2020-01-30T21:57:02Z", 
     "service_fee_id": "service_fee_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H", 
     "status": "succeeded", 
     "type": "bankpay_bnpl" 
}
      • amount_authorized string

    The currency amount authorized of the transaction.

    • amount_captured string | null
    • The currency amount captured of the transaction.
    • amount_refunded_total string | null
    • The total amount refunded.
    • authorized_at datetime string | null
    • The date and time when the transaction intent was authorized.
    • bank_account_id string
    • Identifier of the associated bank account.
    • billing_address_id string | null
    • Identifier of the associated billing address.
    • cancel object | null
    • The latest cancel attempt.
    • captured_at datetime string | null
    • The date and time when the funds were captured.
    • capture_reference_id string | null
    • The latest capture attempt’s reference number
    • captured_status string | null
    • The status return during capture. One of "duplicate_request",  "error",  "error_cannot_confirm",  "expired",  "invalid_key_data","limit_exceeded" or "printed".
    • consumer_id string
    • Identifier of the associated consumer.
    • extras one-dimensional object|null
    • An object of custom values the client can attach to a transaction object when it’s created. Keys must be string.
    • id string
    • Permanent unique identifier of the transaction intent.
    • is_mailable boolean
    • Indicates whether or not the adverse action email can be sent. This field is only displayed when the publishable key is used.
    • payments array
    • The payments schedule for a Buy Now Pay Later transaction. This field will only be shown if the transaction type is bankpay_bnpl.
    • reference_id string | null
    • Identifier with which the consumer can reference the transaction.
    • reference_id string
    • Identifier with which the consumer can reference the transaction.
    • refund object | null
    • The latest refund attempt.
    • service_fee string
    • The currency amount of the service fee.
    • service_fee_accepted_at datetime string
    • The date and time when the service fee was accepted.
    • service_fee_id datetime string
    • Identifier of the associated service fee.
    • status string
    • The current status of the transaction intent. Possible values are: succeeded,  failed,  refunded,  canceled,  pending_authorization,                          pending_capture, pending_service_fee, or pending_service_fee_acceptance
    • transaction_adverse_type boolean
    • Indicates whether or not the transaction has an Adverse Action.
    • type string
    • The type of transaction. Possible vales are bankpay or bankpay_bnpl.

    Transaction Response Codes

    CodeLabelDescription
    00INVALID DL/STATE IDThe ID presented does not conform to known ID formats.
    01ID/DOB MISMATCHThe identification does not match the date of birth provided or on file.
    03INVALID SSNThe SSN or ITIN presented does not conform to known formats.
    04INVALID SERVICE TYPEThe client’s account information is configured for a different type of service. Please contact Certegy Client Relations at 800-237-7506.
    05INVALID DEVICE IDThe device ID is invalid.
    06ID RESTRICTIONSThe type of identification presented is not acceptable. Please contact Certegy Client Relations at 800-237-7506 if you feel this is an error.
    07DECLINE (NEGATIVE)Certegy could not approve the transaction (Negative).
    08APPROVALThe transaction has been approved.
    09INVALID ROUTING/ACCOUNT NUMBERThe Routing and/or Account Number does not conform to known formats.
    11INVALID ACCOUNT TYPEThe bank account type is invalid.
    12DECLINE (HIGH RISK)Certegy could not approve the transaction (High Risk).
    13EDIT ERRORS (REQ'D FIELD MISSING)Certain required information or data elements were missing from the request.
    14INVALID STATION NUMBERThe client's account information does not exist or has been deactivated in Certegy's system. Please contact Certegy Client Relations at 800-237-7506.
    15SYSTEM ERRORPlease contact the Certegy Help Desk at 800-237-7506.
    16PHONE NUMBER MISSINGThe consumer phone number is missing.
    17PHONE NUMBER INVALIDThe consumer phone number is invalid.
    18INVALID EMAIL ADDRESSThe email address is invalid.
    19ENTER THE DL AND DOBEnter the driver license number and DOB and re-send.
    21APPROVALThe transaction has been approved.
    22DECLINE (ROUTING/ACCOUNT NUMBER IS NOT ACHABLE)Certegy has determined that the bank account does not permit ACH transactions.
    24CHECK IS NOT ELIGIBLE CONVERSIONThe check is not eligible for conversion.
    25DECLINE (UNABLE TO DETERMINE IF ROUTING/ACCOUNT NUMBER IS ACHABLE)Certegy is unable to determine if the bank account can be converted to an electronic transaction.
    29VOID/CANCEL SUCCESSFULThe previously authorized transaction has been recalled and successfully voided from Certegy's system.
    30CANNOT VOID/CANCELCertegy was not able to recall the previously authorized transaction from our settlement system. For a Refund or Credit, these transactions cannot be cancelled.
    31ALREADY VOIDED/CANCELLEDThe transaction presented has been previously voided in Certegy's system.
    32DUPLICATE EFT/TRANSACTIONThis transaction has already been approved and processed through Certegy's system and cannot be processed again.
    33CERTEGY REF AND SEARCH REQUEST UID COMBINATION COULD NOT BE FOUND IN CERTEGY'S SYSTEMThe transaction was attempted to be voided, but the Certegy REF and Search Request UID do not match the original authorization.
    34TOO LATE TO VOID/CANCELThe transaction has already been processed through the ACH network. It can no longer be voided.
    38INVALID CHECK TYPEThe check type is invalid.
    66INVALID CONSUMER BILLING ADDRESSCertegy could not approve this transaction. The consumers address is invalid. Please re-check the consumers address and try again.
    67INVALID CONSUMER BILLING ADDRESS PLUS ROUTING/ACCOUNT NUMBER IS NOT ACHABLECertegy could not approve this transaction. The consumers address is invalid and this account cannot be processed as an ACH.
    68INVALID SHIPPING ADDRESSCertegy could not approve this transaction. The shipping address is invalid. Please re-check the shipping address and try again.
    69INVALID SHIPPING ADDRESS PLUS ROUTING/ACCOUNT NUMBER IS NOT ACHABLECertegy could not approve this transaction. The shipping address is invalid and this account cannot be processed as an ACH.
    70INVALID CONSUMER AND/OR SHIP TO FIRST NAME AND LAST NAMECertegy could not approve this transaction. The consumer and/or shipping first and last name is invalid. Please re-check the first and last name and try again.
    71INVALID CONSUMER AND/OR SHIP TO COMPANY NAMECertegy could not approve this transaction. The consumer and/or shipping company name is invalid. Please re-check the company name and try again.
    72INVALID CONSUMER AND/OR SHIP TO ADDRESS DATA. ADDRESS LINE 1 ADDRESS LINE 2 CITY STATE ZIPCertegy could not approve this transaction. The consumer and/or shipping address is invalid. Please re-check the address and try again.
    73DEBIT CAPTURE REQUEST: TRANSACTION HAS ALREADY BEEN CAPTURED/ACKNOWLEDGEThis debit transaction has already been captured in Certegy's system.
    74GOODWILL LINKED AND UNLINKED CREDIT REQUESTS: CREDIT AMOUNT IS OVER THE LIMITThe credit amount is over the limit. Please retry with a lower amount.
    75REFUND REQUEST: REFUND AMOUNT EXCEEDS THE DEBIT AMOUNTThe Refund amount exceeds the total approved amount of the associated debit transaction. Please retry with a new amount that is equal or lower than the original approved debit.
    76REFUND REQUEST: ORIGINAL APPROVED DEBIT HAS NOT BEEN CAPTUREDThe original approved debit transaction has not been captured. Please ensure the capture has been successfully processed, then resubmit the Refund request.
    77REFUND OR GOODWILL LINKED CREDIT REQUEST: ORIGINAL DEBIT TRANSACTIONS WAS CANCELLEDThe original debit was cancelled; therefore, we are unable to process a Refund or Goodwill Linked Credit. If a credit is required, please rerun the request as a Goodwill Unlinked Credit.
    78DEBIT CAPTURE REQUEST: CAPTURE ADJUSTED AMOUNT OVER THE LIMITThe adjusted amount is over the limit. Please retry the capture request with a lower amount or use the original approved amount.
    79DEBIT CAPTURE REQUEST: CAPTURE ADJUSTED AMOUNT OVER THE LIMIT AND EXCEEDED RETRIESThe adjusted amount is over the limit and has exceeded the number of retries. Please submit a new debit request.
    80REFUND REQUEST: ORIGINAL DEBIT TRANSACTION HAS NOT BEEN SENT FOR SETTLEMENTThe refund cannot be processed since the original approved debit has not been sent to settlement. Please cancel the debit or submit a Goodwill Credit.
    81REFUND REQUEST: ORIGINAL DEBIT TRANSACTION HAS NOT BEEN SENT FOR SETTLEMENTThe refund amount is less than the purchase amount. Partial refunds are not enabled at the time.
    82REFUND REQUEST: ORIGINAL DEBIT TRANSACTION HAS NOT BEEN SENT FOR SETTLEMENTThe Debit transaction related to the Refund request has been returned from the bank.

    Create Transaction Intent

    Success

    Request

    POST /api/transaction-intents
    Authorization: Bearer {SECRET_KEY}
    
    {
        "amount": 5.99,
        "bank_account": "bank_account_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
        "billing_address": {
            "city_locality": "Tampa",
            "country_code": "US",
            "line_1": "123 Main St.",
            "line_2": "Suite 100",
            "state_province": "FL",
        "postal_code": "33603"
        },
        "consumer_id": "consumer_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
        "product_code": "0001",
        "product_subcode": "0001",
        "store_number": "1",
        "submerchant_id": "1",
        "type": "bankpay"
    }
    
    • amount
      The currency amount of the transaction.
    • bank_account
      Permanent unique identifier of the bank account.
    • billing_address Object (optional)
      Consumer’s address. See Address object.
    • consumer_id
      Permanent unique identifier of the consumer.
    • extras Custom Object (optional)
      A custom object of values to be attached to this record.
    • product_code (optional)
      The product code for this transaction.
    • product_subcode (optional)
      The product subcode for this transaction.
    • store_number
      Identifier of location to which payment is being submitted.
    • submerchant_id (optional)
      The ID of the submerchant.
    • type
      The type of the transaction to create. One of bankpay or bankpay_bnpl. Defaults to bankpay.

    Example curl request:

    curl https://bankpay.certegy.com/api/transaction-intents \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer secret_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H' \
    -H 'Content-Type: application/json' \
    -d '{
        "amount": 5.99,
        "bank_account": "bank_account_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
        "consumer_id": "consumer_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
        "product_code": "0001",
        "product_subcode": "0001",
        "store_number": "1",
        "submerchant_id": "1",
        "type": "bankpay"
    }'
    

    Response

    HTTP/1.1 201 Created
    

    The data property is a Transaction Intent object.

    {
        "data": {
            "bank_account_id": "bank_account_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
            "billing_address": {
                "id": "address_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHhH",
                "standardized": true,
            },
            "consumer_id": "consumer_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
            "extras": {
                // ... Custom object
            },
            "id": "transaction_intent_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
            "status": "pending_service_fee_acceptance"
        },
        "meta": {
            "type": "transaction_intent"
        }
    }
    

    Example Errors

    Failure: Invalid data

    Response

    HTTP/1.1 422 Unprocessable Entity
    
    {
        "message": "The given data was invalid.",
        "errors": {
            "amount": [
                "invalid"
            ],
            "bank_account": [
                "invalid"
            ],
            "consumer_id": [
                "invalid"
            ]
        }
    }
    

    Create Transaction Intent with Authorization

    Success

    Request

    POST /api/transaction-intents
    Authorization: Bearer {SECRET_KEY}
    {
        "action": "authorize",
        "amount": 5.99,
        "bank_account": "bank_account_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
        "billing_address": {
            "city_locality": "Tampa",
            "country_code": "US",
            "line_1": "123 Main St.",
            "line_2": "Suite 100",
            "state_province": "FL",
            "postal_code": "33603"
        },
        "consumer_id": "consumer_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
        "extras": {
            // ... Custom object
        },
        "product_code": "0001",
        "product_subcode": "0001",
        "store_number": "1",
        "submerchant_id": "1",
        "service_fee_id": "service_fee_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H"
    }
      • action
        The action to do after the creation of the transaction intent.
      • amount
        The currency amount of the transaction.
      • bank_account
        Permanent unique identifier of the bank account.
      • billing_address Object (optional)
        Consumer’s address. See Address object.
      • consumer_id
        Permanent unique identifier of the consumer.
      • extras Custom Object (optional)
        A custom object of values to be attached to this record.
      • product_code (optional)
        The product code for this transaction.
      • product_subcode (optional)
        The product subcode for this transaction.
      • store_number
        Identifier of location to which payment is being submitted.
      • submerchant_id (optional)
        The ID of the submerchant.
      • service_fee_id
        The service fee id Service Fee Object.

      Response

      HTTP/1.1 201 Created

      This response will mirror a Authorize Transaction Response

      {
        "data": {
            "bank_account_id": "bank_account_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
            "billing_address": {
                "id": "address_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
                "standardized": false
             },
             "consumer_id": "consumer_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
             "extras": {
                 // ... Custom object
             },
             "id": "transaction_intent_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
             "service_fee_id": "service_fee_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
             "status": "pending_capture"
        },
        "meta": {
            "type": "transaction_intent"
        }
      }
      

      Example Errors

      Failure: Invalid data

      Response

      HTTP/1.1 422 Unprocessable Entity
      {
        "message": "The given data was invalid.",
        "errors": {
          "amount": [
            "invalid"
          ],
          "action": [
            "invalid"
          ],
          "bank_account": [
            "invalid"
          ],
          "consumer_id": [
            "invalid"
          ],
          "service_fee_id": [
            "invalid"
          ]
        }
      }
      

      Create Transaction Intent with Authorization and Capture

      Success

      Request

      POST /api/transaction-intents
      Authorization: Bearer {SECRET_KEY}
      
      {
          "action": "authorization_and_capture",
          "amount": 5.99,
          "bank_account": "bank_account_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
          "billing_address": {
              "city_locality": "Tampa",
              "country_code": "US",
              "line_1": "123 Main St.",
              "line_2": "Suite 100",
              "state_province": "FL",
              "postal_code": "33603"
          },
          "consumer_id": "consumer_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
          "extras": {
              // ... Custom object
          },
          "product_code": "0001",
          "product_subcode": "0001",
          "store_number": "1",
          "submerchant_id": "1",
          "service_fee_id": "service_fee_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H"
      }
      
      • amount
        The currency amount of the transaction.
      • bank_account
        Permanent unique identifier of the bank account.
      • billing_address Object (optional)
        Consumer’s address. See Address object.
      • consumer_id
        Permanent unique identifier of the consumer.’
      • extras Custom Object (optional)
        A custom object of values to be attached to this record.
      • product_code (optional)
        The product code for this transaction.
      • product_subcode (optional)
        The product subcode for this transaction.
      • store_number
        Identifier of location to which payment is being submitted.
      • submerchant_id (optional)
        The ID of the submerchant.
      • service_fee_id
        The service fee id Service Fee Object.

      Response

      HTTP/1.1 201 Created
      

      This response will mirror a Capture Transaction Response

      {
        "data": {
          "bank_account_id": "bank_account_7CJMP0g5u8Jm7gpbpfQfURKrgi8e9UlS",
          "billing_address": {
            "id": "address_uvmFpup6hxJfP6daezpREZKChLduGyf9",
            "standardized": false
          },
          "consumer_id": "consumer_3qxEaKluLAu6IJTe9K4se37RBdIymhiG",
          "extras": {
              // ... Custom object
          },
          "id": "transaction_intent_bKg1QD52HRdteB3Z26AEyv2QtfiVXHrD",
          "service_fee_id": "service_fee_1Xjrntj8hezL0P7mWcYvW8wTYCrFdXgn",
          "status": "succeeded"
        },
        "meta": {
          "type": "transaction_intent"
        }
      }
      

      Example Errors

      Failure: Invalid data

      Response

      HTTP/1.1 422 Unprocessable Entity
      {
        "message": "The given data was invalid.",
        "errors": {
          "amount": [
            "invalid"
          ],
          "action": [
            "invalid"
          ],
          "bank_account": [
            "invalid"
          ],
          "consumer_id": [
            "invalid"
          ],
          "service_fee_id": [
            "invalid"
          ]
        }
      }
      
      Failure: Authorization was declined and or failed

      Response

      HTTP/1.1 200 OK
      {
        "data": {
          "bank_account_id": "bank_account_7CJMP0g5u8Jm7gpbpfQfURKrgi8e9UlS",
          "billing_address": {
            "id": "address_JNZkBtF5AyWmJU7aAjdnEWNpLTIKlLVR",
            "standardized": false
          },
          "consumer_id": "consumer_3qxEaKluLAu6IJTe9K4se37RBdIymhiG",
          "id": "transaction_intent_69mIiwGmrLDHXs09TVxk6KKlSaWFIajc",
          "service_fee_id": "service_fee_1Xjrntj8hezL0P7mWcYvW8wTYCrFdXgn",
          "status": "failed"
        },
        "meta": {
          "type": "transaction_intent"
        }
      }
      

      List Transactions

      Success

      Request

      GET /api/transaction-intents
      Authorization: Bearer {SECRET_KEY}
      Example curl request:

      curl https://bankpay.certegy.com/api/transaction-intents \
        -H 'Accept: application/json' \
        -H 'Authorization: Bearer secret_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H'
      

      Response

      HTTP/1.1 200 OK

      The data property is an array of Transaction Intent objects.

      {
          "data": [
              {
                  "amount_authorized": "100.00",
                  "amount_captured": null,
                  "amount_refunded_total": null,
                  "authorized_at": "2021-09-30T14:57:53Z",
                  "bank_account_id": "bank_account_mG8VrblAOAaHNyjWAvdrvPZ5GhSSoKC5",
                  "billing_address_id": "address_RS0gKoWaSDTq6e97gH8YkdVmcybvcq1l",
                  "cancel": null,
                  "captured_at": null,
                  "capture_reference_id": null,
                  "captured_status": null,
                  "consumer_id": "consumer_4ED01g86F1GRXGpuSaHmFQ4ooEBb71Oh",
                  "extras": {
                      // ... Custom object
                  },
                  "id": "transaction_intent_eC0J3e1Daj6ydDBAlYfez1nnzoHLqUP3",
                  "is_mailable": false,
                  "merchant_id": "291135",
                  "reason": null,
                  "reference_id": null,
                  "refund": null,
                  "service_fee": null,
                  "service_fee_accepted_at": null,
                  "service_fee_id": null,
                  "status": "failed",
                  "transaction_adverse_type": false,
                  "type": "bankpay"
              },
              // ...
          ],
          "links": {
              "first": "[...]/api/transaction-intents?page=1",
              "last": "[...]/api/transaction-intents?page=4",
              "prev": "[...]/api/transaction-intents?page=1",
              "next": "[...]/api/transaction-intents?page=3"
          },
          "meta": {
              "current_page": 2,
              "from": 11,
              "last_page": 4,
              "path": "[...]/api/transaction-intents",
              "per_page": 10,
              "to": 20,
              "total": 35
          }
      }
      

      The links property contains links to other result set pages.

      • first string|null
        The first page URL.
      • last string|null
        The last page URL.
      • prev string|null
        The previous page URL.
      • next string|null
        The next page URL.

      The meta property contains information about the results.

      • current_page number
        The current page number.
      • from number
        The first result index in this request.
      • last_page number
        The last page number.
      • path string
        The API route path.
      • per_page number
        The number of results returned per page.
      • to number
        The last result index in this request.
      • total number
        The total number of results.

      Query Parameters

      The list can be adjusted by passing the following parameters via the request URL.

      • page number
        Changes the current page.
      • per_page number
        Changes the number of transactions returned per page.
      • reference_number string
        Filters the result set by reference number.
      • station_number string
        Filters the result set by station number.
      • status string
        Filters the result set by transaction status.
      • submerchant_id number
        Filters the result set by submerchant id.
      • type string
        Filters the result set by transaction type.

      Example Errors

      Failure: Invalid filter

      Response

      HTTP/1.1 422 Unprocessable Entity
      
      {
          "message": "The given data was invalid.",
          "errors": {
              "status": [
                  "invalid"
              ]
          }
      }
      

      Read Transaction Intent

      Success

      Request

      GET /api/transaction-intents/{transaction_intent_id}
      Authorization: Bearer {PUBLISHABLE_KEY | SECRET_KEY}

      Example curl request

      curl https://bankpay.certegy.com/api/transaction-intents/OWOMdb3CvaBV236C \
      -H 'Accept: application/json' \
      -H 'Authorization: Bearer secret_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H'
      

      Response ‘

      The data property is a Transaction Intent object.

      HTTP/1.1 200 OK
      

      Publishable Key Response

      {
        "data": {
          "amount_authorized": "5.99",
          "amount_captured": null,
          "amount_refunded_total": null,
          "authorized_at": "2020-01-30T21:57:08Z",
          "bank_account_id": "bank_account_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
          "billing_address_id": "address_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
          "cancel": null
          "consumer_id": "consumer_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
          "id": "transaction_intent_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
          "is_mailable": false,
          "merchant_id": "291138",
          "reason": null,
          "reference_id": null,
          "refund": null,
          "service_fee": "5.00",
          "service_fee_id": "service_fee_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
          "status": "pending_authorization"
          "type": "bankpay"
        },
        "meta": {
          "type": "transaction_intent"
        }
      }

      Secret Key Response

      {
        "data": {
          "amount_authorized": "5.99",
          "amount_captured": "5.99",
          "amount_refunded_total": null,
          "authorized_at": "2020-01-30T21:57:08Z",
          "bank_account_id": "bank_account_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
          "billing_address_id": "address_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
          "cancel": null,
          "captured_at": "2020-01-30T22:05:30Z",
          "captured_status": "succeeded",
          "capture_reference_id": "4604290000080",
          "consumer_id": "consumer_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
          "extras": {
              // ... Custom object
          },
          "id": "transaction_intent_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
          "merchant_id": "291138",
          "reason": "The transaction has been approved",
          "reference_id": "4604290000079",
          "refund": null,
          "service_fee": "5.00",
          "service_fee_accepted_at": "2020-01-30T21:57:02Z",
          "service_fee_id": "service_fee_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
          "status": "succeeded",
          "type": "bankpay"
        },
        "meta": {
          "type": "transaction_intent"
        }
      }
      

      Example Errors

      Transaction intent not found

      Response

      HTTP/1.1 404 Not Found
      
      {
      "message": "not_found"
      }
      

      Authorize Transaction

      Success

      Request

      POST PATCH /api/transaction-intents/{transaction_intent_id}
      Authorization: Bearer {SECRET_KEY}
      
      {
      "action": "authorize"
      }
      

      Example curl request:

      curl https://bankpay.certegy.com/api/transaction-intents/transaction_intent_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H\
      -X PATCH \
      -H 'Accept: application/json' \
      -H 'Authorization: Bearer secret_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H' \
      -H 'Content-Type: application/json' \
      -d '{ "action": "authorize" }'
      

      Response

      The data property is a Transaction Intent object.

      HTTP/1.1 200 OK
      {
        "data": {
          "amount_authorized": "5.99",
          "amount_captured": null,
          "amount_refunded_total": null,
          "authorized_at": "2020-01-30T21:57:08Z",
          "bank_account_id": "bank_account_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
          "billing_address_id": "address_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
          "cancel": null,
          "captured_at": null,
          "captured_status": null,
          "captured_reference_id": null,
          "consumer_id": "consumer_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
          "extras": {
              // ... Custom object
          },
          "id": "transaction_intent_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
          "merchant_id": "291138",
          "reason": "The transaction has been approved.",
          "reference_id": "4604290000079",
          "refund": null,
          "service_fee": "5.00",
          "service_fee_accepted_at": "2020-01-30T21:57:02Z",
          "service_fee_id": "service_fee_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
          "status": "pending capture",
          "type": "bankpay"
        },
        "meta": {
          "type": "pending_capture"
        }
      }
      

      Example Errors

      Already authorized

      Response

      HTTP/1.1 409 Conflict
      
      {
          "action": "authorize",
          "conflict": "already_occurred",
          "message": "Transaction intent was already authorized."
      }
      
      Transaction intent not found

      Response

      HTTP/1.1 404 Not Found
      
      {
           "message": "not_found"
      }
      

      Capture Transaction

      Success

      Request

      PATCH /api/transaction-intents/{transaction_intent_id}
      Authorization: Bearer {SECRET_KEY}
      
      {
           "action": "capture",
           "amount": "5.99"
      }
      

      Example curl request

      curl https://bankpay.certegy.com/api/transaction-intents/transaction_intent_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H \
      -X PATCH \
      -H 'Accept: application/json' \
      -H 'Authorization: Bearer secret_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H' \
      -H 'Content-Type: application/json' \
      -d '{ "action": "capture", "amount": "5.99" }'
      

      Response

      HTTP/1.1 200 OK
      

      The data property is a Transaction Intent object.

      {
        "data": {
          "amount_authorized": "5.99",
          "amount_captured": "5.99",
          "amount_refunded_total": null,
          "authorized_at": "2020-01-30T21:57:08Z",
          "bank_account_id": "bank_account_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
          "billing_address_id": "address_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
          "cancel": null,
          "captured_at": "2020-01-30T22:05:30Z",
          "captured_status": "succeeded",
          "capture_reference_id": "4604290000079",
          "consumer_id": "consumer_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
          "extras": {
              // ... Custom object
          },
          "id": "transaction_intent_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
          "merchant_id": "291138",
          "reason": "The transaction has been approved.",
          "reference_id": "4604290000079",
          "refund": null,
          "service_fee": "5.00",
          "service_fee_accepted_at": "2020-01-30T21:57:02Z",
          "service_fee_id": "service_fee_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
          "status": "succeeded"
          "type": "bankpay"
        },
        "meta": {
          "type": "transaction_intent"
        }
      }

      Example Errors

      Transaction intent not found

      Response

      HTTP/1.1 404 Not found
      
      {
      "message": "not_found"
      }
      
      Already captured

      Response

      HTTP/1.1 409 Conflict
      
      {
          "action": "capture",
          "conflict": "already_occurred",
          "message": "Transaction intent was already captured."
      }

      Refund Transaction

      During integration, please email your representative each time you want to test refunds with the reference number of the transactions.

      Success

      Request

      PATCH /api/transaction-intents/{transaction_intent_id}
      Authorization: Bearer {SECRET_KEY}
      
      {
           "action": "refund",
           "amount": 5.99
      }
      

      Example curl request

      curl https://bankpay.certegy.com/api/transaction-intents/transaction_intent_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H \
      -X PATCH \
      -H 'Accept: application/json' \
      -H 'Authorization: Bearer secret_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H' \
      -H 'Content-Type: application/json' \
      -d '{ "action": "refund", "amount": 5.99 }'
      

      Response

      HTTP/1.1 200 OK

      The data property is a Transaction Intent object.

      {
        "data": {
          "amount_authorized": "5.99",
          "amount_captured": "5.99",
          "amount_refunded_total": "5.99",
          "authorized_at": "2020-01-30T21:57:08Z",
          "bank_account_id": "bank_account_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
          "billing_address_id": "address_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
          "cancel": null,
          "captured_at": "2020-01-30T22:05:30Z",
          "captured_status": "succeeded",
          "capture_reference_id": "4604290000079",
          "consumer_id": "consumer_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
          "id": "transaction_intent_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
          "extras": {
              // ... Custom object
          },
          "merchant_id": "291138",
          "reason": "The transaction has been approved.",
          "reference_id": "4604290000079",
          "capture_reference_id": "5916440000065",
          "refund": {
              "amount": "5.99", 
              "created_at": "2020-01-30T22:30:30Z", 
              "message": "The previously authorized transaction has been recalled and successfully voided from Certegy's system.", 
              "reference_number": "4604290000096", 
              "response_code": "29", 
              "status": "succeeded" 
          },
          "service_fee": "5.00",
          "service_fee_accepted_at": "2020-01-30T21:57:02Z",
          "service_fee_id": "service_fee_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
          "status": "refunded",
          "type": "bankpay"
        },
        "meta": {
          "type": "transaction_intent"
        }
      }
      

      Example Errors

      Not possible to refund

      Response

      HTTP/1.1 409 Conflict
      
      {
          "action": "refund",
          "conflict": "not_ready",
          "message": "Transaction intent is not ready for refund."
      }
      

      Cancel Transaction

      Success

      Request

      PATCH /api/transaction-intents/{transaction_intent_id}
      Authorization: Bearer {SECRET_KEY}
      
      {
          "action": "cancel"
      }

      Example curl request

      curl https://bankpay.certegy.com/api/transaction-intents/transaction_intent_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H \
      -X PATCH \
      -H 'Accept: application/json' \
      -H 'Authorization: Bearer secret_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H' \
      -H 'Content-Type: application/json' \
      -d '{ "action": "cancel" }'
      

      Response

      HTTP/1.1 200 OK
      

      The data property is a Transaction Intent object.

      {
        "data": {
          "amount_authorized": "5.99",
          "amount_captured": "5.99",
          "amount_refunded_total": null,
          "authorized_at": "2020-01-30T21:57:08Z",
          "bank_account_id": "bank_account_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
          "billing_address_id": "address_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
          "cancel": {
              "amount": "5.99", 
              "created_at": "2020-01-30T22:30:30Z", 
              "message": "The previously authorized transaction has been recalled and successfully voided from Certegy's system.", 
              "reference_number": "4604290000098", 
              "response_code": "29", 
              "status": "succeeded" 
          },
          "captured_at": null,
          "captured_status": null,
          "capture_reference_id": null,
          "consumer_id": "consumer_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
          "extras": {
              // ... Custom object
          },
          "id": "transaction_intent_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
          "merchant_id": "291138",
          "reason": "The transaction has been approved.",
          "reference_id": "4604290000079",
          "refund": null,
          "service_fee": "5.00",
          "service_fee_accepted_at": "2020-01-30T21:57:02Z",
          "service_fee_id": "service_fee_Aa1ABb2BCc3CDd4DEe5EFf6FGg7GHh8H",
          "status": "canceled",
          "type": "bankpay"
        },
        "meta": {
          "type": "transaction_intent"
        }
      }

      Example Errors

      Not possible to cancel or already cancelled

      Response

      HTTP/1.1 409 Conflict
      
      {
          "action": "cancel",
          "conflict": "already_occurred",
          "message": "Transaction intent was already canceled."
      }
      

      Back to Top

      How can we help?