API Documentation > Documentation Home
Documentation Home
The Point Of Marketing® API

The Point Of Marketing® API represents a huge leap for all of us at Repeat Returns. We are excited to share with you the result of listening to your feedback, adoption of new technologies in the marketplace, and advancements in loyalty rewards programs.
POM Online
POM Online Rapid Deployment Guide
Introduction
If full integration can't be scheduled to fit a merchant's timeline, use this guide to deploy POM Online to your system in mere minutes.
POM Online offers the features most merchants need at the time of a transaction:
- Instant Customer Lookup
- Account Balances
- Customer Enrollment
- Update Customer Accounts
- Loyalty Transactions
- Gift Card Transactions
- Reward Redemption
- Full Merchant Guide Documentation
Deployment
Deployment is as easy as adding a button to your system which opens a browser to the URL https://online.pointofmarketing.net/
when clicked.
Optionally, URL parameters can be included to pre-populate all POM Online form fields:
Parameters
Parameter | Type | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
search[field] | String |
|
||||||||||||
search[val] | String | The value to match against search[field] . |
||||||||||||
amount | Number | The amount of the transaction in dollars. | ||||||||||||
clerk | Integer | Value < 1,000,000. |
Examples
- Take the clerk to POM Online without pre-populating any fields:
https://online.pointofmarketing.net/
- Take the clerk to POM Online to enter a transaction for the customer with an email address of
:
https://online.pointofmarketing.net/?search[field]=email&search[val]=
- Take clerk #123 to POM Online to finalize a transaction for the customer with phone number 702-966-3001 in the amount of $19.23:
https://online.pointofmarketing.net/?search[field]=phone&search[val]=7029663001&amount=19.23&clerk=123
Resources > Member
/member
HTTP Headers
Parameter | Type | Constraints | Required |
---|---|---|---|
pom-username | String | Required | |
pom-nonce | String | Required | |
pom-hash | String | Required | |
pom-clerk | Integer | Value < 1,000,000. | Optional |
Parameters
Parameter | Type | Constraints | Default | Required |
---|---|---|---|---|
title | String | Value must be one of these: Mr, Mrs, Ms, Miss, Dr | NULL |
Optional |
first | String | length ≤ 100. | Empty String | Required |
last | String | length ≤ 100. | Empty String | Optional |
String | length ≤ 100. | Empty String | Required | |
birthday | String | length = 4 or 8. Format MMDD or YYYYMMDD. |
Empty String | Optional |
phones | Array | length ≤ 10. Array of string entries containing only digits. |
Empty | Optional |
address | String | length ≤ 200. | Empty String | Optional |
addressLine2 | String | length ≤ 100. | Empty String | Optional |
city | String | length ≤ 100. | Empty String | Optional |
state | String | length = 2. | Empty String | Optional |
postcode | String | length ≤ 7. | Empty String | Optional |
country | String | length = 2. | Empty String | Optional |
anniversary | String | length = 4 or 8. Format MMDD or YYYYMMDD. | Empty String | Optional |
householdSize | Integer | NULL |
Optional | |
spouseFirst | String | length ≤ 100. | Empty String | Optional |
spouseLast | String | length ≤ 100. | Empty String | Optional |
spouseEmail | String | length ≤ 100. | Empty String | Optional |
spouseBirthday | String | length = 4 or 8. Format MMDD or YYYYMMDD. | Empty String | Optional |
children | Array | length ≤ 10. Array entries of format
children[0][name]=value&children[0][birthday]=value
.Birthday of format MMDD or YYYYMMDD. |
Empty | Optional |
storeField | Array | length ≤ 5. Array entries are strings. | Empty | Optional |
chainField | Array | length ≤ 5. Array entries are strings. | Empty | Optional |
unsubscribed | Integer | 0 or 1. | 0 | Optional |
Return Object
Attribute | Type | Description |
---|---|---|
code | Integer | See Status Codes. |
msg | String | English description of code meaning.
|
id | Integer | memberId of newly-created member. null if code ≠ 200.
|
url | String | URL of newly-created member. null if code ≠ 200.
|
/member/?operator={value}&{nameValuePairs}
HTTP Headers
Parameter | Type | Constraints | Required |
---|---|---|---|
pom-username | String | Required | |
pom-nonce | String | Required | |
pom-hash | String | Required | |
pom-clerk | Integer | Value < 1,000,000. | Optional |
Parameters
Parameter | Type | Constraints | Required |
---|---|---|---|
{nameValuePairs} | Name-Value Pairs | Conforms to name1=urlencodedValue1&name2=urlencodedValue2& …
|
Required |
operator | String | Either AND or OR . Determines if name-value pairs are
all required (AND ) or only one must match (OR ).
|
Required |
Return Object
Attribute | Type | Description |
---|---|---|
code | Integer | See Status Codes. |
msg | String | English description of code meaning.
|
members | Array | Array of Member objects. Only memberId , first , email , and one entry in phones are guaranteed to be set. Perform a /member/{memberId} search to obtain all fields.
|
/member/{memberId}
HTTP Headers
Parameter | Type | Constraints | Required |
---|---|---|---|
pom-username | String | Required | |
pom-nonce | String | Required | |
pom-hash | String | Required | |
pom-clerk | Integer | Value < 1,000,000. | Optional |
Return Object
Attribute | Type | Description |
---|---|---|
code | Integer | See Status Codes. |
msg | String | English description of code meaning.
|
member | Object | If code = 200, then a Member object for the particular member; otherwise null .
|
HTTP Headers
Parameter | Type | Constraints | Required |
---|---|---|---|
pom-username | String | Required | |
pom-nonce | String | Required | |
pom-hash | String | Required | |
pom-clerk | Integer | Value < 1,000,000. | Optional |
Parameters
Parameter | Type | Constraints | Required |
---|---|---|---|
first | String | length ≤ 100. | Optional |
last | String | length ≤ 100. | Optional |
String | length ≤ 100. | Optional | |
birthday | String | length = 4 or 8. Format MMDD or YYYYMMDD. |
Optional |
phones | Array | length ≤ 10. Array of string entries containing only digits. |
Optional |
address | String | length ≤ 200. | Optional |
addressLine2 | String | length ≤ 100. | Optional |
city | String | length ≤ 100. | Optional |
state | String | length = 2. | Optional |
postcode | String | length ≤ 10. | Optional |
country | String | length = 2. | Optional |
anniversary | String | length = 4 or 8. Format MMDD or YYYYMMDD. | Optional |
householdSize | Integer | Optional | |
spouseFirst | String | length ≤ 100. | Optional |
spouseLast | String | length ≤ 100. | Optional |
spouseEmail | String | length ≤ 100. | Optional |
spouseBirthday | String | length = 4 or 8. Format MMDD or YYYYMMDD. | Optional |
children | Array | length ≤ 10. Array entries of format
children[0][name]=value&children[0][birthday]=value
.Birthday of format MMDD or YYYYMMDD. |
Optional |
storeField | Array | length ≤ 5. Array entries are strings. | Optional |
chainField | Array | length ≤ 5. Array entries are strings. | Optional |
active | Integer | 0 or 1. | Optional |
unsubscribed | Integer | 0 or 1. | Optional |
Return Object
Attribute | Type | Description |
---|---|---|
code | Integer | See Status Codes. |
msg | String | English description of code meaning.
|
HTTP Headers
Parameter | Type | Constraints | Required |
---|---|---|---|
pom-username | String | Required | |
pom-nonce | String | Required | |
pom-hash | String | Required | |
pom-clerk | Integer | Value < 1,000,000. | Optional |
Return Object
Attribute | Type | Description |
---|---|---|
code | Integer | See Status Codes. |
msg | String | English description of code meaning.
|
/member/{memberId}/offer
HTTP Headers
Parameter | Type | Constraints | Required |
---|---|---|---|
pom-username | String | Required | |
pom-nonce | String | Required | |
pom-hash | String | Required | |
pom-clerk | Integer | Value < 1,000,000. | Optional |
Return Object
Attribute | Type | Description |
---|---|---|
code | Integer | See Status Codes. |
msg | String | English description of code meaning.
|
offers | Array | An array of objects of the form {"offer":"", "instantAvailable":"", "instantExpires":"", "promotionCode":""} for offers available to the member. instant fields are of the form YYYY-MM-DD HH:II:SS |
Resources > Invite
/invite
These are merchant-driven invitations. Customer driven invitations are handled via communications with customers.
HTTP Headers
Parameter | Type | Constraints | Required |
---|---|---|---|
pom-username | String | Required | |
pom-nonce | String | Required | |
pom-hash | String | Required | |
pom-clerk | Integer | Value < 1,000,000. | Optional |
Parameters
Parameter | Type | Constraints | Required |
---|---|---|---|
first | Integer | Value < 1,000,000. | Required |
last | Integer | Value < 1,000,000. | Optional |
String | length ≤ 128. | Required |
Return Object
Attribute | Type | Description |
---|---|---|
code | Integer | See Status Codes. |
msg | String | English description of code meaning.
|
Resources > Transaction
/transaction
HTTP Headers
Parameter | Type | Constraints | Required |
---|---|---|---|
pom-username | String | Required | |
pom-nonce | String | Required | |
pom-hash | String | Required | |
pom-clerk | Integer | Value < 1,000,000. | Optional |
Parameters
Parameter | Type | Constraints | Required |
---|---|---|---|
transactionTypeId | Integer | A transactionTypeId. | Required |
memberId | Number | Card Number or Phone Number. If length = 10, then phone number assumed. | Required |
amount | Signed Number | Decimal with 2 decimal places. The amount of the transaction. | Required |
promotionCode | Integer | length ≤ 3. The promotion code, if used in the transaction. Is not the same as promotionId . |
Optional. |
terminal | Integer | length ≤ 3. | Optional |
Return Object
Attribute | Type | Description |
---|---|---|
code | Integer | See Status Codes. |
msg | String | English description of code meaning.
|
id | Integer | transactionId of newly-created transaction. null if code ≠ 200.
|
url | String | URL of newly-created transaction. null if code ≠ 200.
|
/transaction/{transactionId}
HTTP Headers
Parameter | Type | Constraints | Required |
---|---|---|---|
pom-username | String | Required | |
pom-nonce | String | Required | |
pom-hash | String | Required | |
pom-clerk | Integer | Value < 1,000,000. | Optional |
Return Object
Attribute | Type | Description |
---|---|---|
code | Integer | See Status Codes. |
msg | String | English description of code meaning.
|
Resources > Promotion
/promotion/{promotionId}
HTTP Headers
Parameter | Type | Constraints | Required |
---|---|---|---|
pom-username | String | Required | |
pom-nonce | String | Required | |
pom-hash | String | Required | |
pom-clerk | Integer | Value < 1,000,000. | Optional |
Return Object
Attribute | Type | Description |
---|---|---|
code | Integer | See Status Codes. |
msg | String | English description of code meaning.
|
promotion | Object | If code = 200, then a promotion object for the particular promotion; otherwise null .
|
HTTP Headers
Parameter | Type | Constraints | Required |
---|---|---|---|
pom-username | String | Required | |
pom-nonce | String | Required | |
pom-hash | String | Required | |
pom-clerk | Integer | Value < 1,000,000. | Optional |
Parameters
Parameter | Type | Constraints | Default | Required | ||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
active | Integer | 0 or 1. | 0 | Optional | ||||||||||||||||||||||||||||||||||||||||||||
subject | String | The subject line. Applies to emails only. | Empty String | Optional | ||||||||||||||||||||||||||||||||||||||||||||
bodyHtml | String | An HTML string for the HTML content of the promotional email. | Empty String | Optional | ||||||||||||||||||||||||||||||||||||||||||||
bodyText | String | A text string equivalent to the bodyHtml or the SMS/Push Notification text, depending on the deliveryMethod
value.
|
Empty String | Optional | ||||||||||||||||||||||||||||||||||||||||||||
sendDate | Date | MMDD format. | NULL |
Optional | ||||||||||||||||||||||||||||||||||||||||||||
sendHour | Integer | A value between 0 and 23 representing the hour to send the promotional item. Emails & Push Notifications are sent on the top of the hour while SMS are sent at the bottom of the hour. | NULL |
Optional | ||||||||||||||||||||||||||||||||||||||||||||
promoText | String | An HTML string containing the text of the promotional offer. | NULL |
Optional | ||||||||||||||||||||||||||||||||||||||||||||
promoExpiration | Date | YYYYMMDD format. | NULL |
Optional | ||||||||||||||||||||||||||||||||||||||||||||
deliveryMethod | Integer | A value representing one or more delivery methods from this table:
|
1 | Optional | ||||||||||||||||||||||||||||||||||||||||||||
memberSegment | Integer | A value representing one and only one of the following segments:
|
0 | Optional |
Return Object
Attribute | Type | Description |
---|---|---|
code | Integer | See Status Codes. |
msg | String | English description of code meaning.
|
Resources > Chain
/chain/{chainId}
HTTP Headers
Parameter | Type | Constraints | Required |
---|---|---|---|
pom-username | String | Required | |
pom-nonce | String | Required | |
pom-hash | String | Required | |
pom-clerk | Integer | Value < 1,000,000. | Optional |
Return Object
Attribute | Type | Description |
---|---|---|
code | Integer | See Status Codes. |
msg | String | English description of code meaning.
|
chain | Object | If code = 200, then a chain object for the particular chain; otherwise null .
|
HTTP Headers
Parameter | Type | Constraints | Required |
---|---|---|---|
pom-username | String | Required | |
pom-nonce | String | Required | |
pom-hash | String | Required | |
pom-clerk | Integer | Value < 1,000,000. | Optional |
Parameters
Parameter | Type | Constraints | Required |
---|---|---|---|
name | String | length ≤ 100. | Optional |
address | String | length ≤ 200. | Optional |
addressLine2 | String | length ≤ 100. | Optional |
city | String | length ≤ 100. | Optional |
state | String | length = 2. | Optional |
postcode | String | length ≤ 7. | Optional |
country | String | length = 2. | Optional |
timezone | String | IANA Time Zone Database value. E.G. America/Los_Angeles, America/Boise, America/Chicago, America/New_York, … |
Optional |
phone | String | length ≤ 10 | Optional |
cell | String | length ≤ 10 | Optional |
fax | String | length ≤ 10 | Optional |
url | String | length ≤ 100 | Optional |
contactName | String | length ≤ 100 | Optional |
contactEmail | String | length ≤ 100 | Optional |
managerName | String | length ≤ 100 | Optional |
managerEmail | String | length ≤ 100 | Optional |
managerPhone | String | length ≤ 10 | Optional |
Return Object
Attribute | Type | Description |
---|---|---|
code | Integer | See Status Codes. |
msg | String | English description of code meaning.
|
/chain/{chainId}/store
HTTP Headers
Parameter | Type | Constraints | Required |
---|---|---|---|
pom-username | String | Required | |
pom-nonce | String | Required | |
pom-hash | String | Required | |
pom-clerk | Integer | Value < 1,000,000. | Optional |
Return Object
Attribute | Type | Description |
---|---|---|
code | Integer | See Status Codes. |
msg | String | English description of code meaning.
|
stores | Array | An array of Store objects with only the storeId set.
|
Resources > Store
/store/{storeId}
HTTP Headers
Parameter | Type | Constraints | Required |
---|---|---|---|
pom-username | String | Required | |
pom-nonce | String | Required | |
pom-hash | String | Required | |
pom-clerk | Integer | Value < 1,000,000. | Optional |
Return Object
Attribute | Type | Description |
---|---|---|
code | Integer | See Status Codes. |
msg | String | English description of code meaning.
|
store | Object | If code = 200, then a store object for the particular store; otherwise null .
|
HTTP Headers
Parameter | Type | Constraints | Required |
---|---|---|---|
pom-username | String | Required | |
pom-nonce | String | Required | |
pom-hash | String | Required | |
pom-clerk | Integer | Value < 1,000,000. | Optional |
Parameters
Parameter | Type | Constraints | Required |
---|---|---|---|
name | String | length ≤ 100. | Optional |
address | String | length ≤ 200. | Optional |
addressLine2 | String | length ≤ 100. | Optional |
city | String | length ≤ 100. | Optional |
state | String | length = 2. | Optional |
postcode | String | length ≤ 7. | Optional |
country | String | length = 2. | Optional |
timezone | String | IANA Time Zone Database value. E.G. America/Los_Angeles, America/Boise, America/Chicago, America/New_York, … |
Optional |
phone | String | length ≤ 10 | Optional |
cell | String | length ≤ 10 | Optional |
fax | String | length ≤ 10 | Optional |
url | String | length ≤ 100 | Optional |
contactName | String | length ≤ 100 | Optional |
contactEmail | String | length ≤ 100 | Optional |
managerName | String | length ≤ 100 | Optional |
managerEmail | String | length ≤ 100 | Optional |
managerPhone | String | length ≤ 10 | Optional |
Return Object
Attribute | Type | Description |
---|---|---|
code | Integer | See Status Codes. |
msg | String | English description of code meaning.
|
Object Reference > Member
Fields
Field | Type | Description |
---|---|---|
title | String | Value must be one of these: Mr, Mrs, Ms, Miss, Dr |
first | String | length ≤ 100. |
last | String | length ≤ 100. |
String | length ≤ 100. | |
birthday | String | length = 4 or 8. Format MMDD or YYYYMMDD. |
phones | Array | length ≤ 10. Array of string entries containing only digits. |
address | String | length ≤ 200. |
addressLine2 | String | length ≤ 100. |
city | String | length ≤ 100. |
state | String | length = 2. |
postcode | String | length ≤ 7. |
country | String | length = 2. |
anniversary | String | length = 4 or 8. Format MMDD or YYYYMMDD. |
householdSize | Integer | |
spouseFirst | String | length ≤ 100. |
spouseLast | String | length ≤ 100. |
spouseEmail | String | length ≤ 100. |
spouseBirthday | String | length = 4 or 8. Format MMDD or YYYYMMDD. |
children | Array | length ≤ 10. Array entries of format
children[0][name]=value&children[0][birthday]=value
.Birthday of format MMDD or YYYYMMDD. |
storeField | Array | length ≤ 5. Array entries are strings. |
chainField | Array | length ≤ 5. Array entries are strings. |
pointBalance | Integer | Number of current points |
cashBalance | Decimal | Total current Gift Card & Rebate balances. |
unsubscribed | Integer | 0 or 1. |
Object Reference > Promotion
Promotion Ids
Id | Promotion | Send Date |
---|---|---|
Monthly Promotions | ||
24 | Monthly Promotion (Newsletter/eStatement) | 1st of the month |
30 | January Promotion (Game Day) | |
33 | February Promotion (Valentine's Day) | |
48 | March Promotion (St. Patrick's Day) | |
28 | April Promotion (Spring) | |
19 | May Promotion #1 (Mother's Day) | |
12 | May Promotion #2 (Good Grades) | |
11 | June Promotion (Father's Day) | |
29 | July Promotion (Summer) | |
6 | August Promotion (Back to School) | |
21 | September Promotion (Take a Night Off) | |
47 | October Promotion (Halloween) | |
32 | November Promotion (Thanksgiving) | |
43 | December Promotion #1 (Gift Cards) | |
15 | December Promotion #2 (Happy Holidays) | |
20 | December Promotion #3 (New Year) | |
Member-Specific Promotions | ||
36 | Welcome Email (Member Enrollment) | |
57 | Welcome Email (In-Store / Merchant Enrollment) | |
191 | Double Opt-In | |
14 | Half Birthday | |
2 | Birthday | 1 week prior to member's birthday |
235 | Birthday Club (2 Weeks Prior) | |
234 | Birthday Club (6 Weeks Prior) | |
233 | Birthday Club (8 Weeks Prior) | |
40 | Spouse's Half-Birthday | |
41 | Spouse's Birthday | |
192 | Child's Birthday | |
35 | Wedding Anniversary | |
3 | Enrollment Anniversary | |
Loyalty-Based Promotions | ||
228 | Post-Transaction Thank You | |
45 | Member Referral Invitation | |
46 | Member Referral Thank You | |
227 | Menu Promotion | |
23 | 30 - Reminder | |
25 | 60 - Something For You | |
8 | 90 - Member of the Month | |
16 | 120 - We Miss You | |
7 | 150 - Come Back | |
58 | Halfway to Reward #1 | |
61 | Halfway to Reward #2 | |
64 | Halfway to Reward #3 | |
67 | Halfway to Reward #4 | |
70 | Halfway to Reward #5 | |
73 | Halfway to Reward #6 | |
76 | Halfway to Reward #7 | |
79 | Halfway to Reward #8 | |
82 | Halfway to Reward #9 | |
85 | Halfway to Reward #10 | |
59 | Almost to Reward #1 | |
62 | Almost to Reward #2 | |
65 | Almost to Reward #3 | |
68 | Almost to Reward #4 | |
71 | Almost to Reward #5 | |
74 | Almost to Reward #6 | |
77 | Almost to Reward #7 | |
80 | Almost to Reward #8 | |
83 | Almost to Reward #9 | |
86 | Almost to Reward #10 | |
60 | Reward Earned #1 | |
63 | Reward Earned #2 | |
66 | Reward Earned #3 | |
69 | Reward Earned #4 | |
72 | Reward Earned #5 | |
75 | Reward Earned #6 | |
78 | Reward Earned #7 | |
81 | Reward Earned #8 | |
84 | Reward Earned #9 | |
87 | Reward Earned #10 | |
Additional Promotions | ||
42 | Extra Promotion #1 | |
49 | Extra Promotion #2 | |
50 | Extra Promotion #3 | |
51 | Extra Promotion #4 | |
182 | Extra Promotion #5 | |
300 | Extra Promotion #6 | |
301 | Extra Promotion #7 | |
302 | Extra Promotion #8 | |
303 | Extra Promotion #9 | |
304 | Extra Promotion #10 |
Fields
Field | Type | Description | ||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
active | Integer | 0 or 1. | ||||||||||||||||||||||||||||||||||||||||||||
subject | String | The subject line. Applies to emails only. | ||||||||||||||||||||||||||||||||||||||||||||
bodyHtml | String | An HTML string for the HTML content of the promotional email. | ||||||||||||||||||||||||||||||||||||||||||||
bodyText | String | A text string equivalent to the bodyHtml or the SMS/Push Notification text, depending on the deliveryMethod
value.
|
||||||||||||||||||||||||||||||||||||||||||||
sendDate | Date | Format: MMDD. If not set and not one of the "Additional Promotions" listed above, this promotion will not be sent. | ||||||||||||||||||||||||||||||||||||||||||||
sendHour | Integer | A value between 0 and 23 representing the hour to send the promotional item. Emails & Push Notifications are sent on the top of the hour while SMS are sent at the bottom of the hour. If not set and not one of the "Additional Promotions" listed above, this promotion will not be sent. | ||||||||||||||||||||||||||||||||||||||||||||
promoText | String | An HTML string containing the text of the promotional offer. If empty, the promotion will not be associated with the respective promotionId as active for redemption on a transaction. | ||||||||||||||||||||||||||||||||||||||||||||
promoExpiration | Date | YYYYMMDD format. | ||||||||||||||||||||||||||||||||||||||||||||
deliveryMethod | Integer | A value representing one or more delivery methods from this table:
|
||||||||||||||||||||||||||||||||||||||||||||
memberSegment | Integer | A value representing one and only one of the following segments:
|
Object Reference > Chain
Fields
Field | Type | Description |
---|---|---|
name | String | length ≤ 100. |
address | String | length ≤ 200. |
addressLine2 | String | length ≤ 100. |
city | String | length ≤ 100. |
state | String | length = 2. |
postcode | String | length ≤ 7. |
country | String | length = 2. |
timezone | String | IANA Time Zone Database value. E.G. America/Los_Angeles, America/Boise, America/Chicago, America/New_York, … |
phone | String | length ≤ 10 |
cell | String | length ≤ 10 |
fax | String | length ≤ 10 |
url | String | length ≤ 100 |
contactName | String | length ≤ 100 |
contactEmail | String | length ≤ 100 |
managerName | String | length ≤ 100 |
managerEmail | String | length ≤ 100 |
managerPhone | String | length ≤ 10 |
Object Reference > Store
Fields
Field | Type | Description |
---|---|---|
name | String | length ≤ 100. |
address | String | length ≤ 200. |
addressLine2 | String | length ≤ 100. |
city | String | length ≤ 100. |
state | String | length = 2. |
postcode | String | length ≤ 7. |
country | String | length = 2. |
timezone | String | IANA Time Zone Database value. E.G. America/Los_Angeles, America/Boise, America/Chicago, America/New_York, … |
phone | String | length ≤ 10 |
cell | String | length ≤ 10 |
fax | String | length ≤ 10 |
url | String | length ≤ 100 |
contactName | String | length ≤ 100 |
contactEmail | String | length ≤ 100 |
managerName | String | length ≤ 100 |
managerEmail | String | length ≤ 100 |
managerPhone | String | length ≤ 10 |
Object Reference > Transaction
Transaction Type Ids
Id | Transaction Type |
---|---|
100 | Sale |
200 | Points |
300 | Rebate |
400 | Promotion |
500 | Social Media |
600 | Gift Card |
Fields
Field | Type | Description |
---|---|---|
instant | String | Date & time of transaction. YYYY-MM-DD HH:MM:SS format. |
memberId | Integer | |
amount | Signed Number | Decimal with 2 decimal places. |
clerk | Integer | |
terminal | Integer | |
type | String | Indicates the type of transaction record. |
status | String | Good or Void |
points | Integer | Number of points earned/redeemed. |
rebate | Decimal | Amount of rebate, if any, in dollars. |
promotionId | Integer | promotionId , if used. |
Appendix > hash
Algorithm
hash
Algorithm
Custom HTTP headers are used for verifying payloads. There are 3 HTTP headers required for every call: pom-username
, pom-nonce
, pom-hash
.
The value for pom-username
is provided upon account approval. At that time you will also be provided with a password which will be needed in calculating the value of pom-hash
.
The pom-nonce
is case-sensitive and must be a nonce which minimally conforms to the following requirements:
- A character string of at least 8 characters.
- Randomly generated.
- Used for one-and-only-one call.
The pom-hash
is calculated by calculating the SHA-256 value of a string composed by concatenating the following UTF-8 encoded strings in the order shown here:
pom-nonce
- :
pom-username
- :
- Account Password
- :
- Payload Body
Payload Body by Request Method
The payload body for GET is empty unless there is a search clause or id. If there is a search clause, then the search clause excluding the ?
is the payload body. If there is an id, then the id is the payload body.
The payload body for POST and PUT is the body of the submission exactly as submitted.
The payload body for DELETE is empty.
Examples
pom-nonce
for all examples is aChw4QfmwA
.
pom-username
for all examples is exampleUser
.
Account Password for all examples is 1UserPass4Example
.
GET Request Method
No Payload
pom-hash
= SHA-256 of aChw4QfmwA:exampleUser:1UserPass4Example:
GET Request Method With Id
Payload = 12345
pom-hash
= SHA-256 of aChw4QfmwA:exampleUser:1UserPass4Example:12345
GET Request Method With Search
Payload = last=doe&first=jane
pom-hash
= SHA-256 of aChw4QfmwA:exampleUser:1UserPass4Example:operator=OR&last=doe&first=jane
POST Request Method
Payload = first=John&email=john@example.com
pom-hash
= SHA-256 of aChw4QfmwA:exampleUser:1UserPass4Example:first=John&email=john@example.com
PUT Request Method
Payload = phones[2]=555-123-4567&email=jane@example.com
pom-hash
= SHA-256 of aChw4QfmwA:exampleUser:1UserPass4Example:phones[2]=555-123-4567&email=jane@example.com
DELETE Request Method
No Payload
pom-hash
= SHA-256 of aChw4QfmwA:exampleUser:1UserPass4Example:
Appendix > Extension Affordances
Extension Affordances
Service providers can choose to build an extension to the Point Of Marketing® API. Some of these providers may make use of additional data within existing calls or need to have new calls made available.
The additional elements used by a specific provider must be obtained by that provider. API support is available only for API-questions not specific to a particular service provider.
Developers can be assured that all API Extensions conform with the guidelines set forth below.
Existing Method Calls
GET & DELETE Methods
To allow extension developers to include additional data in method calls, header elements may include additional headers of this form:
pom
-extensionIdentifier
-extension-field-name
For example, if an extensionIdentifier is eg
, then for the field custom-field-name
, the additional header would be pom-eg-custom-field-name
.
The extension-field-name
must consist of alphanumeric characters, the dash (-), or the underscore (_) only and will be treated as case-insensitive.
POST & PUT Methods
For these methods, the additional header options permitted for GET & DELETE are also permitted. When used, these should be consistent with those used for the GET & DELETE methods.
Additionally, POST & PUT support custom fields of this form:
extensionIdentifier
-extensionFieldName
For example, if an extensionIdentifier is eg
, then for the field customFieldName
, the additional parameter would be eg-customFieldName
.
The extensionFieldName
must consist of alphanumeric characters, the dash (-), or the underscore (_) only and will be treated as case-sensitive. Furthermore, the extensionFieldName
should follow a camelCase naming convention for consistency with the rest of the API.
Custom Resource Calls
Each extension will be provided with an extensionIdentifier
. For a given extensionIdentifier
, supported calls to the custom resource extensionCustomResource
with a resource id of extensionCustomResourceId
must be of the following formats:
/extensionIdentifier-extensionCustomResource
/extensionIdentifier-extensionCustomResource/extensionCustomResourceId
extensionCustomResourceId
is numeric.
/extensionIdentifier-extensionCustomResource/extensionCustomResourceId
extensionCustomResourceId
is numeric.
/extensionIdentifier-extensionCustomResource/extensionCustomResourceId
extensionCustomResourceId
is numeric.
SDK
Software Development Kit
Contact Us to request an SDK for one not provided below.
The PHP SDK is a fully-functional implementation of the Point Of Marketing® API. Simply upload to a PHP-enabled server and run the example.php script.
The SDK comes with a pre-packaged implementation allowing for calls as simple as these:
$response = $POM->get('member', $memberId);
$response = $POM->put('facebook-tab', '', $fields);
$response = $POM->post('member', $fields);
$response = $POM->delete('member', $memberId);
Status Codes
200 | OK | For GET or PUT , the object is returned.
|
201 | Created | For POST , the object resource URL is returned.
|
300 | Multiple Choices | Returned on search results with more than one result. The object resource URLs are returned. |
301 | Moved Permanently | Returned on search results with a single result. The object resource URL is returned. |
400 | Bad Request | Constraints were not satisfied. Details will be provided. |
401 | Unauthorized | Invalid POM or extension authentication credentials did not validate. |
404 | Not Found | The entity attempting to be accessed does not exist. It may have been deleted. |
413 | Request Entity Too Large | Details will be provided on which entity is too large. |
501 | Not Implemented | This call has not been implemented or does not exist. |
503 | Service Unavailable | This is for planned down times. |