POST /payment_sources/{cust-payment-source-id}/switch_gateway_account
Moves a card payment source from one gateway account to another.
Use this operation to migrate payment methods between gateway accounts, such as when:
- consolidating gateway accounts
- switching from Spreedly to direct gateway integration
- aligning payment sources with regional/business unit gateway configurations
Supported gateways
See the Use Cases section for the list of supported source-destination gateway combinations.
Impact on reference_id
This operation updates the reference_id attribute of the payment source. In case you are using this value for any downstream system integrations, you will need to update the reference_id for the payment source in the downstream system to the new value.
Prerequisites & Constraints
- The
payment_source.typemust becard. - The destination payment gateway account must be active and not archived.
Impacts
- The following attributes are updated:
gateway_account_idgatewayreference_id- The role (primary or backup) of the payment source is not changed.
Use Cases
Supported source-destination gateway combinations
The API supports only the following source-destination gateway combinations:
| Source | Destination |
|---|---|
Any of the gateways via Spreedly. These include Authorize.net, Bambora, BlueSnap, Moneris, Orbital (Chase Paymentech), Paymill, PayPal Payments Pro, PayPal Payflow Pro, SagePay, Worldline Online Payments, Worldpay. |
|
| PayPal Express Checkout | PayPal Commerce |
Servers
- {protocol}://{site}.{environment}:{port}/api/v2
- {protocol}://{site}-test.{environment}:{port}/api/v2
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
cust-payment-source-id |
String | Yes |
Request headers
| Name | Type | Required | Description |
|---|---|---|---|
chargebee-request-origin-device |
String | No |
The device from which the customer has made the request |
Content-Type |
String | Yes |
The media type of the request body.
Default value: "application/x-www-form-urlencoded" |
chargebee-event-webhook |
String | No |
skip only webhooks Valid values:
|
chargebee-business-entity-id |
String | No |
If the site has multiple business entities, you can use this custom HTTP header to specify the business entity for which Chargebee should perform the operation. |
chargebee-event-actions |
String | No |
skip all actions to be done on the events Valid values:
|
chargebee-request-origin-user |
String | No |
The email address of your customer/user. Use this when the email address has only ASCII characters. |
chargebee-request-origin-ip |
String | No |
The IP address of the customer where the request originated |
chargebee-request-origin-user-encoded |
String | No |
The Base64-encoded email address of your customer/user. Use this if the email address has UTF-8 characters. When this header is provided, the header chargebee-request-origin-user is ignored. |
chargebee-event-email |
String | No |
skip only emails Valid values:
|
Request body fields
| Name | Type | Required | Description |
|---|---|---|---|
gateway_account_id |
String | Yes |
The gateway account you want to switch to. |
How to start integrating
- Add HTTP Task to your workflow definition.
- Search for the API you want to integrate with and click on the name.
- This loads the API reference documentation and prepares the Http request settings.
- Click Test request to test run your request to the API and see the API's response.