Overview
The ACME B2B Checkout API can be used to place an Order and create a Membership in ACME.
The Checkout API call is made up of a few different parts:
The Shopping Cart - This contains information about the items that will be purchased in the order and, if it’s a membership, the cardholder details.
Billing Contact Details - The Billing Contact represents who paid for the order, which is especially important if the person paying is different than the Order Contact. For credit card payments, the billing information must match the credit card used for verification with the banks.
Order Contact Details - Use these fields to send details on the Order Contact. If the item in the cart is a membership, Order Contact fields are optional. If you do not send Order Contact details, then ACME will set the Primary Cardholder’s Customer as the Order Contact for membership purchases.
Payment Details - This is where you specify the payment method, order notes, etc.
Building the Shopping Cart Fields
The Shopping Cart is where you specify the items in the order. If a membership is in the cart, it is also where you specify the cardholders.
For membership purchases, the Item Type is key, as this defines what lifecycle action is being performed.
For more information, please refer to our Knowledge Base Articles:
Membership Item Type - Available Values:
- MembershipPurchase
- MembershipRenewal
- MembershipUpgrade
- MembershipDowngrade
- MembershipCancel
- MembershipPostTermRenewal
- MembershipRejoin
- MembershipRenewalUpgrade
- MembershipPostTermRenewalUpgrade
- MembershipRejoinUpgrade
- MembershipPostTermRenewalDowngrade
- MembershipRejoinDowngrade
- MembershipRenewalDowngrade
Billing Contact Fields
Billing Contact fields are optional unless the payment method is ‘Credit Card’. For credit card verification and the best rates on processing fees, billing ZIP/Postal code is required, and billing full address is highly recommended. These values must match the billing information on the credit card.
When sending both Billing Contact and Order Contact fields
If they exactly match, the same customer will be set as both the Billing Contact and the Order Contact.
If they do not match, ACME will set the Order Contact as the customer on the order and record the Billing Contact details on the order (no customer will be created for Billing in this case).
- If the Billing Contact fields are omitted, then ACME will set the Order Contact as the Billing Contact (Note: When the payment method is credit card, we recommend always explicitly sending the Billing Contact fields.)
"billingFirstName": "Jim", "billingLastName": "Lee", "billingEmail": "jimlee@email.com", "billingPhoneNumber": "1234567892", "billingAddress1": "123 F Street", "billingAddress2":"", "billingCity": "Reno", "billingState": "Nevada", "billingZipCode": "89521", "billingCountry": "United States", "noEmail":"true"
Order Contact Fields
In order for ACME to make a customer record for an Order Contact, you must send First Name, Last Name, and one of: Email, Phone, or Address.
Order Contact fields are optional. If no Order Contact is sent and:
The items in the cart are non-membership, then the ACME order will be a “walk in” and will not have a customer associated with it.
The items in the cart are membership, then ACME will set the Primary Cardholder’s Customer as the Order Contact.
"contactFirstName":"Margot", "contactLastName":"Travers", "email":"margottravers@gmail.com", "phone":"2223334444", "streetAddress1":"787 Westmont Lane", "streetAddress2":"", "city":"Reno", "state":"NV", "zipCode":"89521", "country":"United States"
Payment Method Fields
The Payment Method fields allow you to specify the method of payment and optional order notes.
If the payment method is Check, Voucher, or Other, then “paymentMethod” is the only required field. Optionally send “paymentId” to record the check number, voucher number, or other payment ID (e.g. confirmation number for a wire transfer). We do recommend always sending the “paymentId”.
"paymentMethod" : "Check", "paymentId":"454"
If the payment method is Credit Card, then the following fields are required:
If the payment method is credit card, then the Billing Contact fields must match the billing information on the credit card. Even though ACME will copy the Order Contact fields into the Billing Contact if you do not send Billing Contact fields (in the case where Order Contact=Billing Contact), we highly recommend always explicitly sending the Billing Contact fields if the payment method is credit card.
"paymentMethod" : "CreditCard", "manualEntryCardNumber": "4333333333333333", "expDate": "1124", "cvc": "222"
Get Required IDs
The Checkout API shopping cart requires a few IDs be sent when purchasing a membership: Category ID, Offering ID, and Price Point ID.
If the lifecycle action is any other than ‘New’, you also must send Membership ID and Membership Card ID (if you wish to use the same membership card on the new membership version).
If you want to associate an existing ACME customer to a membership card, then you must send their Constituent Import ID.
Get Category ID, Offering ID, and Price Point ID
Run the following API call to obtain Category ID, Offering ID, and Price Point ID:
GET /v2/b2b/membership/levels?salesChannels={salesChannels}&isPublished=true&membershipLevelGroup=individualAndFamily
Where:
{salesChannel} is the salesChannel that the membership is allowed to be sold on. Most likely this will be “online”. Sales Channel options include:
- online (ACME B2C site or API site)
- pointOfSale (ACME POS)
- insideSalesIndividual (ACME Backoffice)
- salesforce
- kiosk
If you want to send multiple sales channels in the query then you can do so and comma separate them. For example:
GET /v2/b2b/membership/levels?salesChannels=online,insideSalesIndividual&isPublished=true&membershipLevelGroup=individualAndFamily
The payload returns a lot of information about each level that is published in ACME. Consult this to see where the required values display:
{ "id": "61f058acd7d4bd414417dfaa", < —---- CATEGORY ID "name": "Family", "rules": { "numberOfCardHolders": 4, "canGift": true, "startBeginningOfMonth": false, "expireEndOfMonth": false }, "benefits": [ { "description": "1 Guest pass per visit" } ], "offerings": [ { "id": "bbd04a2d6aa7400a90a7f39cceeda52b", < —---- OFFERING ID "name": "Standard", "subtitle": "", "description": "", "duration": 12, "benefits": [], "rules": { "numberOfCardHolders": 0, "canGift": false, "startBeginningOfMonth": false, "expireEndOfMonth": false }, "priceLists": [ { "id": "61f05875d7d4bd414417df9f", "name": "Standard", "description": "", "prices": [ { "personType": { "id": "5812348df71d1a4b23516c04", < —- PRICE POINT ID "name": "Child", "description": "Child", "active": true, "type": "Membership", "displayOrder": 0 }, "price": "350.00", "primePrice": "0.00"
Get Membership ID, Membership Card ID(s), and Constituent Import ID
If you already have the Customer ID
GET /v2/b2b/customers/{id}?includeAssociatedMemberships=true
Where:
{id} = the ACME Customer ID (aka database ID)
Example Output:
{ "id": 12982048, "customerSource": "acme", "customerId": "223095156", "externalCustomerImportId": "ACME223095156", "email": "fedelee@email.com", "firstName": "Fede", "lastName": "Lee", "phoneNumber": "1234567892", "deceased": false, "solicitationCodes": [], "address": [ { "id": 33893169, "streetAddress1": "123 X Street", "city": "Reno", "state": "Nevada", "zipCode": "89521", "country": "United States", "type": "primary", "isPrimary": true, "version": 0, "obfuscated": false } ], "attributes": [], "version": 0, "household": { "id": 30051938, "name": "Lee Household", "externalSource": "other" }, "memberships": [ { "id": 6464343, < —- MEMBERSHIP ID "importId": "ACME399157150", "externalMembershipId": "399157150", "membershipJoinedDate": "2024-01-11T00:00:00-08:00", "membershipStartDate": "2024-01-11T00:00:00-08:00", "membershipExpirationDate": "2025-01-31T23:59:59-08:00", "membershipStanding": "active", "cardholders": [ { "id": 20988622, < —- MEMBERSHIP CARD ID "membershipId": 6464343, "constituentImportId": "ACME223095156", < —- CONSTITUENT IMPORT ID "cardImportId": "ACME327994041", "cardType": "primary", "name": "Fede Lee", "barcode": "327994041", "acmeBarcode": "327994041", "email": "fedelee@email.com", "firstName": "Fede", "lastName": "Lee", "phoneNumber": "1234567892", "streetAddress1": "123 X Street", "city": "Reno", "state": "Nevada", "zipCode": "89521", "country": "United States", "deceased": "no", "primaryCard": "yes", "solicitationCodes": "", "startDate": "2024-01-11T00:00:00-08:00", "expirationDate": "2025-01-31T23:59:59-08:00", "cardStatus": "active", "printCount": 0, "printStatus": "notPrinted", "acmeCustomerNumber": "223095156", "addressId": 33893169, "excludeCardOnMemberCreation": false, "customerId": 12982048, "ignoreUpdates": false } ], "membershipCategory": "Family", "categoryId": "61f058acd7d4bd414417dfaa", "acmeMembershipNumber": "399157150", "isGift": false, "auxiliaryMembership": false, "offeringName": "Standard", "updatedOn": "2024-01-11T09:11:58-08:00", "updatedBy": 340, "offeringId": "bbd04a2d6aa7400a90a7f39cceeda52b", "pricePointId": "5812348df71d1a4b23516c04" } ], "obfuscated": false }
If you do not have the Customer ID
GET /v2/b2b/customers/advancedsearch?pageSize=50&page=1&sortField=customerId&sortDirection=asc&firstName={firstName}&lastName={lastName}&includeAssociatedMemberships=true
Where:
{firstName} = first name of the Customer you are searching for
{lastName} = last name of the Customer you are searching for
Example Output:
{ "list": [ { "id": 12982048, "customerSource": "acme", "customerId": "223095156", "externalCustomerImportId": "ACME223095156", < —- CONSTITUENT IMPORT ID "email": "fedelee@email.com", "firstName": "Fede", "lastName": "Lee", "phoneNumber": "1234567892", "deceased": false, "solicitationCodes": [], "version": 0, "memberships": [ { "id": 6464343, < —- MEMBERSHIP ID "importId": "ACME399157150", "externalMembershipId": "399157150", "membershipJoinedDate": "2024-01-11T00:00:00-08:00", "membershipStartDate": "2024-01-11T00:00:00-08:00", "membershipExpirationDate": "2025-01-31T23:59:59-08:00", "membershipStanding": "active", "cardholders": [ { "id": 20988622, < —- MEMBERSHIP CARD ID "membershipId": 6464343, "constituentImportId": "ACME223095156", "cardImportId": "ACME327994041", "cardType": "primary", "name": "Fede Lee", "barcode": "327994041", "acmeBarcode": "327994041", "email": "fedelee@email.com", "firstName": "Fede", "lastName": "Lee", "phoneNumber": "1234567892", "deceased": "no", "primaryCard": "yes", "solicitationCodes": "", "startDate": "2024-01-11T00:00:00-08:00", "expirationDate": "2025-01-31T23:59:59-08:00", "cardStatus": "active", "printCount": 0, "printStatus": "notPrinted", "acmeCustomerNumber": "223095156", "excludeCardOnMemberCreation": false, "customerId": 12982048, "ignoreUpdates": false } ], "membershipCategory": "Family", "categoryId": "61f058acd7d4bd414417dfaa", "acmeMembershipNumber": "399157150", "isGift": false, "auxiliaryMembership": false, "updatedOn": "2024-01-11T09:11:58-08:00", "updatedBy": 340, "offeringId": "bbd04a2d6aa7400a90a7f39cceeda52b", "pricePointId": "5812348df71d1a4b23516c04" } ], "obfuscated": false } ], "pagination": { "page": 1, "pageSize": 50, "sortDirection": "asc", "sortField": "customerId", "count": 1 } }
Auto Renew Memberships
Auto Renew memberships must be processed with a credit card, even if there is no payment due, in order to generate a secure token for future processing.
Auto Renew memberships not paid with credit card will result in subscriptions with no payment method attached.
Optional Auto Renew memberships require the flag membershipInfo.isAutorenew (see B2C Purchase New Membership). If the flag is not included, the default value is false.
Example Payloads:
1. Buy a new ACME membership where: Primary member is a brand new customer in ACME and the Order Contact, Billing Contact, and Primary Member are all the same person.
{ "shoppingCart": { "items": [ { "quantity": 1, "itemType": "MembershipPurchase", "membershipInfo": { "membershipCategoryId":"61f058acd7d4bd414417dfaa", "membershipOfferingId":"bbd04a2d6aa7400a90a7f39cceeda52b", "pricePointId":"58123480969c6d59d976b8fa", "externalMembershipId": "MemNum098765", "membershipCards": [{ "cardType":"primary", "firstName":"Tyler", "lastName":"Lee", "email":"tylerlee@email.com", "phoneNumber":"1234567892", "streetAddress1":"123 F Street", "city":"Reno", "state":"Nevada", "zipCode":"89521", "country":"United States", "customerExternalId": "CUST555555" }] } } ] }, "paymentMethod" : "Other", "paymentId": "123456", "notes" : "Order note 1/11/24: Customer expressed interest in learning more about our Education programs." }
Example response after sending the API call
{ "orderNumber": "100200605", "id": "44329249", "customerId": 12982062, "membershipId": 6464362, "contactFirstName": "Tyler", "contactLastName": "Lee", "email": "tylerlee@email.com", "phoneNumber": "1234567892", "address1": "123 F Street", "country": "United States", "city": "Reno", "state": "Nevada", "zipCode": "89521", "billingFirstName": "Tyler", "billingLastName": "Lee", "billingEmail": "tylerlee@email.com", "billingPhoneNumber": "1234567892", "billingAddress1": "123 F Street", "billingCountry": "United States", "billingCity": "Reno", "billingZipCode": "89521", "billingState": "Nevada", "discountedTotalAmount": "150.00", "totalAmount": "150.00", "discountedOriginalTotalAmount": "150.00", "originalTotalAmount": "150.00", "paidAmount": "150.00", "balanceAmount": "0.00", "refundAmount": "0.00", "saleChannel": "InsideSalesIndividual", "checkInStatus": "NotCheckedIn", "notes": "Order note 1/11/24: Customer expressed interest in learning more about our Education programs.", "creationDate": "2024-01-11T20:09:39-08:00", "orderItems": [ { "itemType": "MembershipPurchase", "itemId2": "600bace713cb42b8a56c22833d37ccca", "itemName": "AR Optional", "pricePointId": "5cde1cd11f02166eca047b8b", "pricePointName": "Individual Member", "itemDetailId": "6464362", "parentItemId": "65586394", "comboTemplateType": "fixedPrice", "basicOriginalQuantity": 1, "originalQuantity": 1, "basicQuantity": 1, "quantity": 1, "unitPrice": "150.00", "discountedUnitPrice": "150.00", "discountedOriginalAmount": "150.00", "originalAmount": "150.00", "discountedAmount": "150.00", "amount": "150.00", "balanceAmount": "0.00", "itemTypeNg": "Event", "conversionStatus": "NoConversion", "itemId": "65586394" } ], "createdOn": "2024-01-11T20:09:39-08:00", "createdBy": "340", "updatedOn": "2024-01-11T20:09:39-08:00", "updatedBy": "340", "paymentDueDate": "2024-01-11T20:09:39-08:00", "tenantId": 107, "visitorId": "5779835", "legacy": false, "hideEventDate": false, "invoiceAfter": false, "paymentId": "123456", "obfuscated": false }
2. Buy a new ACME membership where the primary member is already a customer in ACME. The Order Contact, Billing Contact, and Primary Member are all the same person.
- This payload only includes the required fields for this use case. Refer to the sections above for additional fields you could include.
- In this example, the primary member is already a customer in ACME so we are including their Customer Import ID as membershipCards.constituentImportId
If you send Constituent Import ID, ACME will update the customer record with the any new information included in the payload.
{ "shoppingCart": { "items": [ { "quantity": 1, "itemType": "MembershipPurchase", "membershipInfo": { "membershipCategoryId":"61f058acd7d4bd414417dfaa", "membershipOfferingId":"bbd04a2d6aa7400a90a7f39cceeda52b", "pricePointId":"58123480969c6d59d976b8fa", "membershipCards": [{ "constituentImportId":"123456", "cardType":"primary", "firstName":"Carla", "lastName":"Lee", "email":"carlalee@email.com", "phoneNumber":"1234567892", "streetAddress1":"123 G Street", "city":"Reno", "state":"Nevada", "zipCode":"89521", "country":"United States" }] } } ] }, "paymentMethod" : "Other", "paymentId": "123456" }
3. Buy a new ACME membership where the Billing and Order Contact are the same person but different from the Primary Cardholder
We are not explicitly sending Billing Contact information here because ACME will copy the Order Contact information to the Billing Contact. This is only recommended if the payment method is not Credit Card.
{ "shoppingCart": { "items": [ { "quantity": 1, "itemType": "MembershipPurchase", "saleChannel":"", "membershipInfo": { "membershipCategoryId":"61f058acd7d4bd414417dfaa", "membershipOfferingId":"bbd04a2d6aa7400a90a7f39cceeda52b", "pricePointId":"58123480969c6d59d976b8fa", "membershipCards": [{ "cardType":"primary", "firstName":"Nadia", "lastName":"Lee", "name": "Nadia Lee", "email":"nadialee@email.com", "phoneNumber":"1234567892", "streetAddress1":"123 F Street", "streetAddress2":"Apt C", "city":"Reno", "state":"Nevada", "zipCode":"89521", "country":"United States" }] } } ] }, "contactFirstName":"Margot", "contactLastName":"Travers", "email":"margottravers@gmail.com", "phone":"2223334444", "streetAddress1":"787 Westmont Lane", "city":"Reno", "state":"NV", "zipCode":"89521", "country":"United States", "paymentMethod" : "Check", "paymentId":"545" }
4. Buy a new ACME membership where Billing Contact, Order Contact, and Primary Cardholder are all a different person.
- They do not want an Order Confirmation email to be sent so the variable noEmail: true is sent
{ "shoppingCart": { "items": [ { "quantity": 1, "itemType": "MembershipPurchase", "saleChannel":"", "membershipInfo": { "membershipCategoryId":"61f058acd7d4bd414417dfaa", "membershipOfferingId":"bbd04a2d6aa7400a90a7f39cceeda52b", "pricePointId":"58123480969c6d59d976b8fa", "isGift":"false", "isAutorenew":"false", "membershipCards": [{ "cardType":"primary", "firstName":"Kara", "lastName":"Lee", "name": "Kara Lee", "email":"karalee@email.com", "phoneNumber":"1234567892", "streetAddress1":"123 F Street", "streetAddress2":"Apt C", "city":"Reno", "state":"Nevada", "zipCode":"89521", "country":"United States" }] } } ] }, "billingFirstName": "Jim", "billingLastName": "Lee", "billingEmail": "jimlee@email.com", "billingPhoneNumber": "1234567892", "billingAddress1": "123 K Street", "billingCity": "Reno", "billingState": "Nevada", "billingZipCode": "89521", "billingCountry": "United States", "noEmail": "true", "contactFirstName":"Margot", "contactLastName":"Travers", "email":"margottravers@gmail.com", "phone":"2223334444", "streetAddress1":"787 Westmont Lane", "city":"Reno", "state":"NV", "zipCode":"89521", "country":"United States", "paymentMethod" : "Voucher", "paymentId":"123456" }
5. Buy a membership with credit card as payment method
If the payment method is credit card, then the Billing Contact fields must match the billing information on the credit card. Even though ACME will copy the Order Contact fields into the Billing Contact if you do not send Billing Contact fields (in the case where Order Contact=Billing Contact), we highly recommend always explicitly sending the Billing Contact fields if the payment method is credit card.
{ "shoppingCart": { "items": [ { "quantity": 1, "itemType": "MembershipPurchase", "membershipInfo": { "membershipCategoryId":"61f058acd7d4bd414417dfaa", "membershipOfferingId":"bbd04a2d6aa7400a90a7f39cceeda52b", "pricePointId":"5812348df71d1a4b23516c04", "membershipCards": [ { "cardType":"primary", "firstName":"Evan", "lastName":"Lee", "name": "Evan Lee", "email":"evanlee@email.com", "phoneNumber":"1234567892", "streetAddress1":"123 F Street", "city":"Reno", "state":"Nevada", "zipCode":"89521", "country":"United States" }] } } ] }, "billingFirstName": "Robbie", "billingLastName": "Payer", "billingEmail": "robbiepayer@acmeticketing.com", "billingPhoneNumber": "1234567892", "billingAddress1": "123 G Street", "billingCity": "Reno", "billingState": "Nevada", "billingZipCode": "89521", "billingCountry": "United States", "contactFirstName":"Margot", "contactLastName":"Travers", "email":"margottravers@gmail.com", "phone":"2223334444", "streetAddress1":"787 Westmont Lane", "city":"Reno", "state":"NV", "zipCode":"89521", "country":"United States", "paymentMethod" : "CreditCard", "manualEntryCardNumber":"4333333333333333", "expDate":"1125", "cvc":"222" }
In this example, the Primary Member, Order Contact, and Billing Contact are all the same person. We do not have to send the Order Contact details because ACME will copy the Primary Cardholder information to the Order Contact. We are explicitly sending the Billing Contact details because the payment method is credit card.
{ "shoppingCart": { "items": [ { "quantity": 1, "itemType": "MembershipPurchase", "membershipInfo": { "membershipCategoryId":"61f058acd7d4bd414417dfaa", "membershipOfferingId":"bbd04a2d6aa7400a90a7f39cceeda52b", "pricePointId":"5812348df71d1a4b23516c04", "membershipCards": [ { "cardType":"primary", "firstName":"Evan", "lastName":"Lee", "name": "Evan Lee", "email":"evanlee@email.com", "phoneNumber":"1234567892", "streetAddress1":"123 F Street", "city":"Reno", "state":"Nevada", "zipCode":"89521", "country":"United States" }] } } ] }, "billingFirstName": "Evan", "billingLastName": "Lee", "billingEmail": "evanlee@email.com", "billingPhoneNumber": "1234567892", "billingAddress1": "123 F Street", "billingCity": "Reno", "billingState": "Nevada", "billingZipCode": "89521", "billingCountry": "United States", "paymentMethod" : "CreditCard", "manualEntryCardNumber":"4333333333333333", "expDate":"1125", "cvc":"222" }
In this example, the Primary Member is one person and the Order Contact and Billing Contact are another person. We are sending the same customer information for both Order Contact and Billing Contact
{ "shoppingCart": { "items": [ { "quantity": 1, "itemType": "MembershipPurchase", "membershipInfo": { "membershipCategoryId":"61f058acd7d4bd414417dfaa", "membershipOfferingId":"bbd04a2d6aa7400a90a7f39cceeda52b", "pricePointId":"5812348df71d1a4b23516c04", "membershipCards": [ { "cardType":"primary", "firstName":"Evan", "lastName":"Lee", "name": "Evan Lee", "email":"evanlee@email.com", "phoneNumber":"1234567892", "streetAddress1":"123 F Street", "city":"Reno", "state":"Nevada", "zipCode":"89521", "country":"United States" }] } } ] }, "billingFirstName": "Margot", "billingLastName": "Travers", "billingEmail": "margottravers@gmail.com", "billingPhoneNumber": "2223334444", "billingAddress1": "787 Westmont Lane", "billingCity": "Reno", "billingState": "Nevada", "billingZipCode": "89521", "billingCountry": "United States", "contactFirstName":"Margot", "contactLastName":"Travers", "email":"margottravers@gmail.com", "phone":"2223334444", "streetAddress1":"787 Westmont Lane", "city":"Reno", "state":"NV", "zipCode":"89521", "country":"United States", "paymentMethod" : "CreditCard", "manualEntryCardNumber":"4333333333333333", "expDate":"1125", "cvc":"222" }
6. Member renews their ACME Membership
membershipInfo.membershipId = the ACME Membership ID for the member's current membership.
membershipInfo.membershipCards.Id = the ACME Membership Card ID for the member's card that already exists
membershipInfo.membershipCards.constituentImportId = the Customer Import ID for the Primary Member's Customer Record
{ "shoppingCart": { "items": [ { "quantity": 1, "itemType": "MembershipRenewal", "membershipInfo": { "membershipId": 6809972, "membershipCategoryId":"61f058acd7d4bd414417dfaa", "membershipOfferingId":"bbd04a2d6aa7400a90a7f39cceeda52b", "pricePointId":"5812348df71d1a4b23516c04", "membershipCards": [{ "id": 22421598, "constituentImportId":"ACME284728871", "cardType":"primary", "firstName":"Jamie", "lastName":"Hara", "name": "Jamie Hara", "email":"jamiehara@testing.com", "phoneNumber":"3146558585", "streetAddress1":"333 Westmont Lane" "city":"Reno", "state":"Nevada", "zipCode":"89521", "country":"United States" }] } } ] }, "paymentMethod" : "Other", "paymentId": "123456" }
7. Member upgrades their ACME membership
{ "shoppingCart": { "items": [ { "quantity": 1, "itemType": "MembershipUpgrade", "membershipInfo": { "membershipId": 6809975, "membershipCategoryId":"581234f51f02162cee948842", "membershipOfferingId":"18993d0d7bf24c61932ebbed487488c4", "pricePointId":"58123480969c6d59d976b8fa", "membershipCards": [{ "id": 22421600, "constituentImportId":"ACME284728871", "cardType":"primary", "firstName":"Maren", "lastName":"Calhoun", "name": "Maren L Calhoun", "email":"maren@calhoun.com", "phoneNumber":"1112223333", "streetAddress1":"123 C Street", "streetAddress2":"", "city":"Reno", "state":"Nevada", "zipCode":"89521", "country":"United States" }] } } ] }, "paymentMethod" : "Voucher" "paymentId":"555" }
8. Member upgrades their ACME membership and adds an additional cardholder
The secondary card does not yet exist, so we are not sending a membershipCard.id. The customer associated to the secondary card also does not yet exist, so we are not sending membershipCard.constituentImportId for the secondary card.
The secondary cardholder will become a customer in ACME as long as First Name, Last Name, and one of: email, phone, or address is supplied.
In this example the secondary cardholder will become an ACME Customer:
{ "shoppingCart": { "items": [ { "quantity": 1, "itemType": "MembershipUpgrade", "membershipInfo": { "membershipId": 6809975, "membershipCategoryId":"581234f51f02162cee948842", "membershipOfferingId":"18993d0d7bf24c61932ebbed487488c4", "pricePointId":"58123480969c6d59d976b8fa", "membershipCards": [ { "id": 22421600, "constituentImportId":"ACME284728871", "cardType":"primary", "firstName":"Maren", "lastName":"Calhoun", "name": "Maren L Calhoun", "email":"maren@calhoun.com", "phoneNumber":"1112223333", "streetAddress1":"123 C Street", "city":"Reno", "state":"Nevada", "zipCode":"89521", "country":"United States" }, { "cardType":"secondary", "firstName":"Kyle", "lastName":"Calhoun", "name": "Kyle Calhoun", "email":"kyle@calhoun.com", "phoneNumber":"1112223334", "streetAddress1":"123 C Street", "city":"Reno", "state":"Nevada", "zipCode":"89521", "country":"United States" } ] } } ] }, "paymentMethod" : "Voucher" "paymentId":"555" }
In this example the secondary cardholder will not become an ACME Customer and will instead just be a "Name on Card" member:
{ "shoppingCart": { "items": [ { "quantity": 1, "itemType": "MembershipUpgrade", "membershipInfo": { "membershipId": 6809975, "membershipCategoryId":"581234f51f02162cee948842", "membershipOfferingId":"18993d0d7bf24c61932ebbed487488c4", "pricePointId":"58123480969c6d59d976b8fa", "membershipCards": [ { "id": 22421600, "constituentImportId":"ACME284728871", "cardType":"primary", "firstName":"Maren", "lastName":"Calhoun", "name": "Maren L Calhoun", "email":"maren@calhoun.com", "phoneNumber":"1112223333", "streetAddress1":"123 C Street", "city":"Reno", "state":"Nevada", "zipCode":"89521", "country":"United States" }, { "cardType":"secondary", "firstName":"Kyle", "lastName":"Calhoun", "name": "Kyle Calhoun" } ] } } ] }, "paymentMethod" : "Other", "paymentId": "123456" }
9. Purchase a new Auto Renew membership (Offering set to Auto Renew: Required)
membershipInfo.isAutorenew = true is not needed here since the Membership Offering is configured to be Auto Renew Required. Payment method must be Credit Card though.
{ "shoppingCart": { "items": [ { "quantity": 1, "itemType": "MembershipPurchase", "membershipInfo": { "membershipCategoryId":"61f058acd7d4bd414417dfaa", "membershipOfferingId":"bbd04a2d6aa7400a90a7f39cceeda52b", "pricePointId":"5812348df71d1a4b23516c04", "membershipCards": [ { "cardType":"primary", "firstName":"Evan", "lastName":"Lee", "name": "Evan Lee", "email":"evanlee@email.com", "phoneNumber":"1234567892", "streetAddress1":"123 F Street", "city":"Reno", "state":"Nevada", "zipCode":"89521", "country":"United States" }] } } ] }, "billingFirstName": "Evan", "billingLastName": "Lee", "billingEmail": "evanlee@email.com", "billingPhoneNumber": "1234567892", "billingAddress1": "123 F Street", "billingCity": "Reno", "billingState": "Nevada", "billingZipCode": "89521", "billingCountry": "United States", "paymentMethod" : "CreditCard", "manualEntryCardNumber":"4333333333333333", "expDate":"1125", "cvc":"222" }
10. Purchase a new Auto Renew membership (Offering set to Auto Renew: Optional) and Opt In to Auto Renew
{ "shoppingCart": { "items": [ { "quantity": 1, "itemType": "MembershipPurchase", "membershipInfo": { "membershipCategoryId":"61f058acd7d4bd414417dfaa", "membershipOfferingId":"bbd04a2d6aa7400a90a7f39cceeda52b", "pricePointId":"5812348df71d1a4b23516c04", "isAutorenew":"true", "membershipCards": [ { "cardType":"primary", "firstName":"Evan", "lastName":"Lee", "name": "Evan Lee", "email":"evanlee@email.com", "phoneNumber":"1234567892", "streetAddress1":"123 F Street", "city":"Reno", "state":"Nevada", "zipCode":"89521", "country":"United States" }] } } ] }, "billingFirstName": "Evan", "billingLastName": "Lee", "billingEmail": "evanlee@email.com", "billingPhoneNumber": "1234567892", "billingAddress1": "123 F Street", "billingCity": "Reno", "billingState": "Nevada", "billingZipCode": "89521", "billingCountry": "United States", "paymentMethod" : "CreditCard", "manualEntryCardNumber":"4333333333333333", "expDate":"1125", "cvc":"222" }
11. Purchase a new membership (Offering set to Auto Renew: Optional) and Do NOT Opt In to Auto Renew
Since the member is not opting in to Auto Renew, there are no requirements on which payment method to use.
{ "shoppingCart": { "items": [ { "quantity": 1, "itemType": "MembershipPurchase", "membershipInfo": { "membershipCategoryId":"61f058acd7d4bd414417dfaa", "membershipOfferingId":"bbd04a2d6aa7400a90a7f39cceeda52b", "pricePointId":"5812348df71d1a4b23516c04", "isAutorenew":"false", "membershipCards": [ { "cardType":"primary", "firstName":"Evan", "lastName":"Lee", "name": "Evan Lee", "email":"evanlee@email.com", "phoneNumber":"1234567892", "streetAddress1":"123 F Street", "city":"Reno", "state":"Nevada", "zipCode":"89521", "country":"United States" }] } } ] }, "paymentMethod" : "Check", "paymentId":"455" }