Airwallex Gateway Guide

close

Services and Compatibility

Payment Gateway Company Name:
Airwallex
Services that work with Spreedly:
  • Airwallex
Supported operations:
Purchase, Authorize, Capture, Refund, Void, Verify
Supported payment types:
Credit Card
Spreedly 3DS2 Global Supported
Yes
Gateway Specific 3DS2 Supported
No
Populate MIT GSF Support
No
Regions:
Asia Pacific, Europe
API endpoint URL:
https://pci-api.airwallex.com/api/v1

Authentication and Security

Specific names for credentials:
Client Id, Client Api Key

Onboarding Merchants in:

Adding an Airwallex gateway

To add a Airwallex gateway:


curl https://core.spreedly.com/v1/gateways.xml \
  -u 'C7cRfNJGODKh4Iu5Ox3PToKjniY:4UIuWybmdythfNGPqAqyQnYha6s451ri0fYAo4p3drZUi7q2Jf4b7HKg8etDtoKJ' \
  -H 'Content-Type: application/xml' \
  -d '<gateway>
        <gateway_type>airwallex</gateway_type>
        <client_id>Your client_id</client_id>
        <client_api_key>Your client_api_key</client_api_key>
      </gateway>'

<gateway>
  <token>EV51aGxpyQ50OSMDph183cTQczz</token>
  <gateway_type>airwallex</gateway_type>
  <name>Airwallex</name>
  <description nil="true"/>
  <merchant_profile_key nil="true"/>
  <sub_merchant_key nil="true"/>
  <client_id>Your client_id</client_id>
  <characteristics>
    <supports_purchase type="boolean">true</supports_purchase>
    <supports_authorize type="boolean">true</supports_authorize>
    <supports_capture type="boolean">true</supports_capture>
    <supports_credit type="boolean">true</supports_credit>
    <supports_general_credit type="boolean">false</supports_general_credit>
    <supports_void type="boolean">true</supports_void>
    <supports_adjust type="boolean">false</supports_adjust>
    <supports_verify type="boolean">true</supports_verify>
    <supports_reference_purchase type="boolean">false</supports_reference_purchase>
    <supports_purchase_via_preauthorization type="boolean">false</supports_purchase_via_preauthorization>
    <supports_offsite_purchase type="boolean">false</supports_offsite_purchase>
    <supports_offsite_authorize type="boolean">false</supports_offsite_authorize>
    <supports_offsite_synchronous_purchase type="boolean">false</supports_offsite_synchronous_purchase>
    <supports_offsite_synchronous_authorize type="boolean">false</supports_offsite_synchronous_authorize>
    <supports_3dsecure_purchase type="boolean">false</supports_3dsecure_purchase>
    <supports_3dsecure_authorize type="boolean">false</supports_3dsecure_authorize>
    <supports_3dsecure_2_mpi_purchase type="boolean">true</supports_3dsecure_2_mpi_purchase>
    <supports_3dsecure_2_mpi_authorize type="boolean">true</supports_3dsecure_2_mpi_authorize>
    <supports_store type="boolean">false</supports_store>
    <supports_remove type="boolean">false</supports_remove>
    <supports_fraud_review type="boolean">false</supports_fraud_review>
    <supports_network_tokenization type="boolean">false</supports_network_tokenization>
    <supports_populate_mit_fields type="boolean">false</supports_populate_mit_fields>
  </characteristics>
  <credentials>
    <credential>
      <name>client_id</name>
      <value>Your client_id</value>
    </credential>
  </credentials>
  <gateway_settings>
  </gateway_settings>
  <gateway_specific_fields>
    <gateway_specific_field>request_id</gateway_specific_field>
    <gateway_specific_field>merchant_order_id</gateway_specific_field>
    <gateway_specific_field>return_url</gateway_specific_field>
    <gateway_specific_field>skip_3ds</gateway_specific_field>
  </gateway_specific_fields>
  <payment_methods>
    <payment_method>credit_card</payment_method>
  </payment_methods>
  <state>retained</state>
  <redacted type="boolean">false</redacted>
  <sandbox type="boolean">false</sandbox>
  <mode>default</mode>
  <created_at type="dateTime">2022-08-18T06:23:35Z</created_at>
  <updated_at type="dateTime">2022-08-18T06:23:35Z</updated_at>
</gateway>


env = Spreedly::Environment.new('C7cRfNJGODKh4Iu5Ox3PToKjniY', '4UIuWybmdythfNGPqAqyQnYha6s451ri0fYAo4p3drZUi7q2Jf4b7HKg8etDtoKJ', base_url: 'https://core.spreedly.com')
env.add_gateway(:airwallex, client_id: "Your login", client_api_key: "Your client_api_key")


#<Spreedly::Gateway:0x00007fca20385ff8
@token="ZR6VHHKwrMnu4quLTdhGQW00cX1",
@created_at="2022-04-11T19:13:38Z",
@updated_at="2022-04-11T19:13:38Z",
@gateway_type="airwallex",
@state="retained",
@name="Airwallex",
@credentials={"client_id"=>"Your login"}>

Third-party 3D Secure 2 auth data

Spreedly will automatically handle the field mapping for sending third-party 3DS2 authentication data to Airwallex. For more information about how to use this feature, see the 3DS2 Third-party Authentication Guide. Spreedly fields map to the relevant Airwallex fields as described in the following table. Please see Airwallex Payment Intents documentation for detailed descriptions of each of these fields and when to use them.

Spreedly Field Airwallex Field
three_ds_version version
ecommerce_indicator eci
authentication_value authentication_value
directory_server_transaction_id ds_transaction_id
three_ds_server_trans_id three_ds_server_transaction_id

Gateway specific fields

Spreedly supports the following gateway specific fields when transacting with a Airwallex gateway:

  • request_id
  • merchant_order_id
  • return_url
  • skip_3ds

The request_id is a unique identifier for each transaction call. Since most calls to Airwallex via Spreedly will result in multiple calls between Spreedly and Airwallex, Spreedly will append the type of request being made to the end of the request_id to satisfy uniqueness requirements. If you wish to provide your own value, note that this field must be unique per transaction.

The merchant_order_id may be used to correspond with an ID in your order system.

Unique values for request_id and merchant_order_id will automatically be provided if not supplied.

skip_3ds is a boolean and by default it is not passed (false). Set it to true if you want to skip 3DS regardless of the risk score and SCA. Merchants will need to reach out to Airwallex in order to enable this configuration on their Airwallex account.

Please refer to using a payment method for more information on how to send GSFs

Stored credentials

For Airwallex, sending stored credential fields can be done using Spreedly’s first class support. For any Authorize or Purchase request, you need to include two fields which tell Spreedly a little bit more about the nature of the transaction:

  • stored_credential_initiator
  • stored_credential_reason_type

Learn more about how Spreedly enables seamless use of stored credentials by reviewing our Stored Credentials Guide.