Customer and Payment Updates

Customer Contact Details Update

When a customer changes their email address associated with their account, Ordergroove needs to be notified of this change. This notification is sent via a PATCH request to the set contact details endpoint.

Destination

Staging: https://staging.restapi.ordergroove.com/customers/{merchant_user_id}/set_contact_details
Production: https://restapi.ordergroove.com/customers/{merchant_user_id}/set_contact_details

headers = {
'authorization': '{"public_id": "<MERCHANT_PUBLIC_ID>", "ts": <SECONDS_SINCE_EPOCH>, "sig_field": "<MERCHANT_USER_ID>", "sig": "<SIGNATURE>"}',
'content-type': 'application/json'
}
{
"email": "<New_Email>",
"merchant": "<Merchant_Public_id>",
"merchant_user_id": "<Merchant_User_Id>",
"phone_number": "<Phone_Number>"
}

Customer Contact Details Responses

Success Response

If a successful connection is made, the request will always result in a secure HTTP response object with code 200 and a JSON payload

{
"phone_number": "<Phone_Number>",
"email": "<Email>"
}

Error Responses

In the event of an error with the request, one of the following error codes may be returned with the corresponding JSON payload

{
"[field_name]": "field_name error detail"
}
{
"detail": "Authentication Failed"
}
{
"detail": "Unable to find requested asset."
}

Customer Payment Update

When a customer changes their default payment for subscriptions within their account wallet, Ordergroove needs to be notified of this change. This notification is sent via a POST request to the update payment default endpoint.

Destination:

Staging: https://staging.v2.ordergroove.com/customer/update_payment_default
Production: https://api.ordergroove.com/customer/update_payment_default

📘

Note

Each field needs to be URL encoded (special characters such as & will otherwise break the update request), not just the encrypted fields. The entire post should not be URL encoded, just the fields individually.

update_request={
    "merchant_id": "<MERCHANT_ID>",
    "user": {
        "user_id": "<MERCHANT_USER_ID>",
        "ts": "<TIME_STAMP>", // timestamp is seconds since epoch
        "sig": "<SIGNATURE>" // Hmac signature based on user id and timestamp | Url encoded
    },
    "payment": {
        "label": "<LABEL>", // optional
        "card_type": "<ENUMERATED_CARD_TYPE>",   //  1 = Visa, 2 = MasterCard, 3= American Express, 4 = Discover
        "cc_exp_date": "<MM/YYYY_AES_ENCRYPTED>", //should be url encoded after being encrypted | Value should always be 12/2099 for PayPal
        "cc_last_4": "<CC_LAST_4_DIGITS_AES_ENCRYPTED>", //should be url encoded after being encrypted
        "cc_holder": "<CC_HOLDER_AES_ENCRYPTED>", //should be url encoded after being encrypted
        "token_id":"<TOKEN_ID>" // optional,
        "billing": { // optional
            "first_name": "<FIRST_NAME>",
            "last_name": "<LAST_NAME>",
            "phone": "<PHONE>",
            "address": "<ADDRESS>",
            "address2": "<ADDRESS2>",
            "city": "<CITY>",
            "country_code": "<COUNTRY_CODE>",
            "zip_postal_code": "<ZIP>",
            "fax": "<FAX>",
            "state_province_code": "<STATE_PROVINCE_CODE>",
            "company_name": "<COMPANY_NAME>"
        }
    }
}

Customer Payment Update Responses

Success Response

If all validations pass, and the customer payment is updated successfully, this API will simply respond with "SUCCESS".

Error messages

The following is the list of possible messages when an "error" result is provided in the response. In case of an error message, no updates to the customer are performed.

  • "Invalid Merchant"
  • "Invalid Request"
    • An invalid JSON object is the most likely cause of this error
  • "Customer does not exist"
  • "Could not decode cc_exp_date"
  • "<merchant_name> is not configured to accept <payment_field>"