Payment Profiles

Update Payment Profile

PUT
/payment_profiles/{payment_profile_id}.json

Updates a payment profile.

Partial Card Updates

In the event that you are using the Authorize.net, Stripe, Cybersource, Forte or Braintree Blue payment gateways, you can update just the billing and contact information for a payment method. Note the lack of credit-card related data contained in the JSON payload.

In this case, the following JSON is acceptable:

{  "payment_profile": {    "first_name": "Kelly",    "last_name": "Test",    "billing_address": "789 Juniper Court",    "billing_city": "Boulder",    "billing_state": "CO",    "billing_zip": "80302",    "billing_country": "US",    "billing_address_2": null  }}

The result will be that you have updated the billing information for the card, yet retained the original card number data.

Specific notes on updating payment profiles

  • Merchants with Authorize.net, Cybersource, Forte, Braintree Blue or Stripe as their payment gateway can update their Customer’s credit cards without passing in the full credit card number and CVV.

  • If you are using Authorize.net, Cybersource, Forte, Braintree Blue or Stripe, Advanced Billing will ignore the credit card number and CVV when processing an update via the API, and attempt a partial update instead. If you wish to change the card number on a payment profile, you will need to create a new payment profile for the given customer.

  • A Payment Profile cannot be updated with the attributes of another type of Payment Profile. For example, if the payment profile you are attempting to update is a credit card, you cannot pass in bank account attributes (like bank_account_number), and vice versa.

  • Updating a payment profile directly will not trigger an attempt to capture a past-due balance. If this is the intent, update the card details via the Subscription instead.

  • If you are using Authorize.net or Stripe, you may elect to manually trigger a retry for a past due subscription after a partial update.

Authorization

BasicAuth
AuthorizationBasic <token>

The username is a Maxio Chargify API key. The password is x.

In: header

Path Parameters

payment_profile_id*integer

The Chargify id of the payment profile

Request Body

application/json

payment_profile*

Response Body

application/json

application/json

curl -X PUT "https://example.com/payment_profiles/0.json" \  -H "Content-Type: application/json" \  -d '{    "payment_profile": {      "first_name": "Graham",      "last_name": "Test",      "billing_address": "456 Juniper Court",      "billing_city": "Boulder",      "billing_state": "CO",      "billing_zip": "80302",      "billing_country": "US",      "billing_address_2": null    }  }'
{  "payment_profile": {    "id": 10088716,    "first_name": "Test",    "last_name": "Subscription",    "billing_address": "123 Montana Way",    "billing_city": "Billings",    "billing_state": "MT",    "billing_zip": "59101",    "billing_country": "US",    "billing_address_2": "",    "payment_type": "bank_account"  }}