This article mirrors the full Admoji API reference. For the interactive, always-up-to-date version with a searchable sidebar and live code samples, visit docs.admoji.com.
https://openapi.admoji.com. All requests require an ApiKey header — see How to Find your API Key.On this page
Introduction
API endpoint
https://openapi.admoji.com
Welcome to Admoji API. You can use our API to access Admoji API endpoints, which can get information on various resources in our database.
You can view code examples in the dark area to the right, and you can switch the programming language of the examples with the tabs in the top right.
How To
Integrate a website
- Acquire Account
ApiKeyfrom the Account section (Settings > Account settings > API Keys tab) in the CRM - Integrate add customer endpoint
- Integrate add signup transaction endpoint
- Integrate add upsell transaction endpoint (optional)
Authentication
Example Request With Authentication Headers
# Authorization headers must be passed for every request
$ curl "API_ENDPOINT" \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111"
Open API uses ApiKey to allow access to the API.
ApiKey is unique for each CRM account and available in the CRM under Settings > Account settings > API Keys tab
Open API expects the ApiKey to be included in all API requests to the server using a header like the following:
Authorization: ApiKey secret_492796e421a34666a5695d53cd311111
GET Test credentials
Definition
GET https://openapi.admoji.com/api/v2/open/test-auth
Request Example
$ curl -X GET 'https://openapi.admoji.com/api/v2/open/test-auth' \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111"
Response Example
{
"Status": 0,
}
Test auth credentials. The endpoint returns "Status": 0 in case provided credentials are valid. Otherwise "Status": 1 will be rerurned.
Idempotent Requests
Request Example
$ curl -X POST 'https://openapi.admoji.com/api/v2/open/example-post-method' \
-H "Idempotency-Key: 3a2ebd06-e52f-47d2-92c4-66a107022f8e"
What is idempotency?
An API call or operation is idempotent if it has the same result no matter how many times it is applied.
Admoji APIs require idempotency keys to protect against accidental duplicate calls when duplicate calls can have negative consequences (for example, charging a credit card twice). For example, suppose you make a successful payment request, but your connection fails before you receive success confirmation. If you make the exact same request again, the endpoint knows it is a duplicate request and does NOT charge the card a second time. The result of your duplicate Charge requests is the same as if you had only made the request once.
Generate keys
An idempotency key is a unique value generated by the client which the server uses to recognize subsequent retries of the same request. Idempotency keys can be anything, but they need to be unique. Virtually all popular programming languages provide a function for generating unique strings.
| Language | Function |
|---|---|
Ruby |
SecureRandom.uuid |
PHP |
uniqid |
Java |
UUID.randomUUID |
Python |
uuid (Python 2, Python 3) |
C# |
Guid.NewGuid |
Node |
uuid |
When required
All POST requests require idempotency keys. Sending idempotency keys in GET, PUT and DELETE requests has no effect and should be avoided, as these requests are idempotent by definition.
Keys expire after 24 hours, so a new request is generated if a key is reused outside of that time frame. The idempotency layer compares incoming parameters to those of the original request and errors unless they’re the same to prevent accidental misuse.
Products
POST Create product
Definition
POST https://openapi.admoji.com/api/v2/open/products
Request Example
$ curl -X POST 'https://openapi.admoji.com/api/v2/open/products' \
-H "content-type: application/json" \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111" \
-d '{
"Name": "Widget Pro",
"Amount": 29.99,
"ProductType": "signup",
"Sku": "WDG-PRO-001",
"ExternalProductId": "12345",
"SiteId": 1003998
}'
Response Example
{
"Status": 0,
"ProductId": 11622
}
Create a new product. Idempotent: if a product with the same ExternalProductId or Sku already exists for this account, the existing product is returned unchanged.
Request arguments
| Parameter | Type | Description |
|---|---|---|
NameRequired |
string(50) |
Product name |
AmountRequired |
decimal |
Product price |
ProductTypeRequired |
string |
Product type. Valid values: signup, recurring
|
SkuOptional |
string(100) |
Product SKU |
ExternalProductIdOptional |
string(100) |
External product ID (e.g. WooCommerce product ID) used for idempotency |
SiteIdOptional |
int |
Site ID to associate the product with |
PUT Update product
Definition
PUT https://openapi.admoji.com/api/v2/open/products/:id
Request Example
$ curl -X PUT 'https://openapi.admoji.com/api/v2/open/products/11622' \
-H "content-type: application/json" \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111" \
-d '{
"Name": "Widget Pro Updated",
"Amount": 34.99,
"ProductType": "signup",
"Sku": "WDG-PRO-002",
"SiteId": 1003998
}'
Response Example
{
"Status": 0,
"ProductId": 11622
}
Update name, price, type and SKU of an existing product.
Request arguments
| Parameter | Type | Description |
|---|---|---|
ProductIDRequired |
int |
Product ID (in URL path) |
NameRequired |
string(50) |
Product name |
AmountRequired |
decimal |
Product price |
ProductTypeRequired |
string |
Product type. Valid values: signup, recurring
|
SkuOptional |
string(100) |
Product SKU |
SiteIdOptional |
int |
Site ID to associate the product with |
POST Create variants
Definition
POST https://openapi.admoji.com/api/v2/open/products/:id/variants
Request Example
$ curl -X POST 'https://openapi.admoji.com/api/v2/open/products/11622/variants' \
-H "content-type: application/json" \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111" \
-d '{
"Variants": [
{
"VariantName": "Widget Pro - Red / Large",
"Combination": "[{\"Attribute\":\"Color\",\"Option\":\"Red\"},{\"Attribute\":\"Size\",\"Option\":\"Large\"}]",
"Price": 34.99,
"Sku": "WDG-PRO-RED-LG"
},
{
"VariantName": "Widget Pro - Blue / Small",
"Combination": "[{\"Attribute\":\"Color\",\"Option\":\"Blue\"},{\"Attribute\":\"Size\",\"Option\":\"Small\"}]",
"Price": 29.99,
"Sku": "WDG-PRO-BLU-SM"
}
]
}'
Response Example
{
"Status": 0,
"Variants": [
{
"VariantProductId": 101,
"VariantName": "Widget Pro - Red / Large"
},
{
"VariantProductId": 102,
"VariantName": "Widget Pro - Blue / Small"
}
]
}
Bulk-create variants for a product. Idempotent: variants whose normalized Combination already exists are returned without creating duplicates. Results are returned in the same order as the input array.
Request arguments
| Parameter | Type | Description |
|---|---|---|
ProductIDRequired |
int |
Product ID (in URL path) |
VariantsRequired |
array |
Array of variant objects |
Variant definition
| Parameter | Type | Description |
|---|---|---|
VariantNameRequired |
string(200) |
Display name (e.g. “Widget Pro - Red / Large”) |
CombinationRequired |
string |
JSON-encoded array of attribute/option pairs: [{"Attribute":"Color","Option":"Red"}]
|
PriceRequired |
decimal |
Variant price |
SkuOptional |
string(100) |
Variant SKU |
POST Create variant options
Definition
POST https://openapi.admoji.com/api/v2/open/products/:id/variant-options
Request Example
$ curl -X POST 'https://openapi.admoji.com/api/v2/open/products/11622/variant-options' \
-H "content-type: application/json" \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111" \
-d '{
"Options": [
{
"Name": "Color",
"Options": "[\"Red\",\"Blue\",\"Green\"]"
},
{
"Name": "Size",
"Options": "[\"Small\",\"Medium\",\"Large\"]"
}
]
}'
Response Example
{
"Status": 0
}
Upsert variant attribute definitions for a product (e.g. Size → [“S”,“M”,“L”]). Idempotent: existing options with the same Name are updated in-place.
Request arguments
| Parameter | Type | Description |
|---|---|---|
ProductIDRequired |
int |
Product ID (in URL path) |
OptionsRequired |
array |
Array of option definition objects |
Option definition
| Parameter | Type | Description |
|---|---|---|
NameRequired |
string(100) |
Attribute name (e.g. “Color”, “Size”) |
OptionsRequired |
string |
JSON-encoded array of option values (e.g. ["Red","Blue","Green"]) |
Subscriptions
POST Import subscription
Definition
POST https://openapi.admoji.com/api/v2/open/subscriptions
Request Example
$ curl -X POST 'https://openapi.admoji.com/api/v2/open/subscriptions' \
-H "content-type: application/json" \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111" \
-d '{
"CustomerId": 8563080,
"ProductId": 11622,
"SiteId": 1003998,
"Amount": 29.99,
"BillingIntervalDays": 30,
"TotalCycles": 0,
"NextChargeDate": "2026-06-15T00:00:00Z",
"ProcessorId": 1234,
"VaultToken": "cus_ABC123xyz",
"ExternalSubscriptionId": "WC-5678"
}'
Response Example
{
"Status": 0,
"SubscriptionId": 961111
}
Import an active subscription into the CRM. Idempotent by ExternalSubscriptionId: re-submitting the same subscription returns the existing record.
If both VaultToken and ProcessorId are provided, a payment method is created and linked to the subscription.
Request arguments
| Parameter | Type | Description |
|---|---|---|
CustomerIdRequired |
int |
Customer ID |
ProductIdRequired |
int |
Product ID |
AmountRequired |
decimal |
Recurring charge amount |
BillingIntervalDaysRequired |
int |
Days between charges (e.g. 30 for monthly, 7 for weekly). Range: 1-3650 |
NextChargeDateRequired |
datetime |
Next charge date in UTC |
SiteIdOptional |
int |
Site ID. Falls back to customer’s site, then first active site |
TotalCyclesOptional |
int |
Total charges to run. 0 = unlimited (default) |
ProcessorIdOptional |
int |
Processor ID for vaulted payment method |
VaultTokenOptional |
string(500) |
Gateway vault token (NMI CustomerVaultID, Stripe cus_xxx, etc.) |
ExternalSubscriptionIdOptional |
string(100) |
External subscription ID for idempotency (stored as WC-{id}) |
PUT Update subscription
Definition
PUT https://openapi.admoji.com/api/v2/open/subscriptions/:id
Request Example
$ curl -X PUT 'https://openapi.admoji.com/api/v2/open/subscriptions/961111' \
-H "content-type: application/json" \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111" \
-d '{
"Status": "cancelled",
"Amount": 34.99,
"NextChargeDate": "2026-07-15T00:00:00Z"
}'
Response Example
{
"Status": 0,
"SubscriptionId": 961111
}
Update status, amount, or next charge date of an existing subscription.
Request arguments
| Parameter | Type | Description |
|---|---|---|
SubscriptionIDRequired |
int |
Subscription ID (in URL path) |
StatusOptional |
string |
New status. Valid values: active, cancelled, onhold
|
AmountOptional |
decimal |
New recurring amount |
NextChargeDateOptional |
datetime |
New next charge date in UTC |
Fulfillment
GET List fulfillment orders
Definition
GET https://openapi.admoji.com/api/v2/open/fulfillment-orders?
datefrom=:datefrom&
orderId:=orderId&
customerId:=customerId
Request Example
$ curl -X GET 'https://openapi.admoji.com/api/v2/open/fulfillment-orders?
datefrom=1489613633&
orderId=2081996772&
customerId=21008751059' \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111" \
Response Example
{
"Status": 0,
"Orders": [
{
"SiteID": 1004394,
"CustomerID": 9036886,
"FirstName": "Rachelle",
"LastName": "Ly",
"Address1": "25 Teaneck",
"Address2": "",
"City": "Ridgefield Park",
"State": "NJ",
"Zipcode": "07660",
"Country": "US",
"Email": "test@test.com",
"Phone": "123456789",
"OrderItems": [
{
"OrderID": "2081996772",
"OrderDate": 1506384000,
"TransactionID": "ABC3535912159",
"Amount": 4.96,
"Qty": 1,
"Sku": "CLNS",
"ProductId": "14927831",
"ProductName": "Cleanse Pure Pro Sign Up",
"ProviderName": "Provider #1",
"FulfillmentID": 1122,
"ShippingStatus": "shipped",
"CrmShippingStatus": "Shipped",
"DateShipped": 1737124769
}
]
},
{
"SiteID": 1004394,
"CustomerID": 9036886,
"FirstName": "Rachelle",
"LastName": "Ly",
"Address1": "25 Teaneck",
"Address2": "",
"City": "Ridgefield Park",
"State": "NJ",
"Zipcode": "07660",
"Country": "US",
"Email": "test@test.com",
"Phone": "123456789",
"OrderItems": [
{
"OrderID": "2081996772",
"OrderDate": 1506384000,
"TransactionID": "ABC3535911434",
"Amount": 4.95,
"Qty": 1,
"Sku": "GRCA",
"ProductName": "Garcinia Pure Pro Sign Up",
"ProviderName": "Provider #2",
"FulfillmentID": 1125,
"ShippingStatus": "error",
"CrmShippingStatus": "Failed",
"DateShipped": 1737125234
}
]
}
]
}
The endpoint returns information about all transactions recorded in the CRM waiting for fulfillment
Request arguments
| Parameter | Description |
|---|---|
dateFrom |
Timestamp in unix format (in seconds), e.g. 1490547296
|
orderId |
Order ID (main order, related to payment) |
customerId |
Customer ID |
PUT Update tracking
Definition
PUT https://openapi.admoji.com/api/v2/open/fulfillment-orders
Request Example
$ curl -X PUT 'https://openapi.admoji.com/api/v2/open/fulfillment-orders' \
-H "content-type: application/json" \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111" \
-d '{
"Rows": [
{ TransactionID: "ABC3124666711", TrackingNo: "1Z93E856YW91234321" },
{ TransactionID: "ABC3156227643", TrackingNo: "1Z93E8560391234567" },
{ TransactionID: "ABC3156227622", TrackingNo: "1Z93E8560395941234" }
]
}'
Response Example
{
"Status": 0
}
The endpoint allows you to update tracking information
PUT Cancel fulfillment order
Definition
PUT https://openapi.admoji.com/api/v2/open/fulfillment-order/:fulfillmentId/cancel
Request Example
$ curl -X PUT 'https://openapi.admoji.com/api/v2/open/fulfillment-order/12345/cancel' \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111"
Response Example
{
"Status": 0
}
Cancel a pending fulfillment order.
Request arguments
| Parameter | Type | Description |
|---|---|---|
fulfillmentIdRequired |
int |
Fulfillment order ID (in URL path) |
Customers
GET List customers
Definition
GET https://openapi.admoji.com/api/v2/open/customers
?dateFromUtc =:dateFromUtc
&dateToUtc =:dateToUtc
&dateModifiedFromUtc =:dateModifiedFromUtc
&dateModifiedToUtc =:dateModifiedToUtc
&customerID =:customerID
&steptypes =:steptypes
&types =:types
&customeridafter =:customeridafter
&sort =:sort
Request Example
$ curl -X GET 'https://openapi.admoji.com/api/v2/open/customers?dateFromUtc=1489613633&dateToUtc=1489713633&customerid=10316104&steptypes=inquiry,declined&types=test&customeridafter=1234567&sort=desc' \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111"
Response Example
{
"Status": 0,
"Customers": [
{
"CustomerID": 10311111,
"SiteID": 1005111,
"SiteName": "SiteName",
"FirstName": "Victoria",
"LastName": "Pooh",
"Address1": null,
"Address2": null,
"City": null,
"State": null,
"Zipcode": null,
"Country": null,
"Phone": "9893111111",
"Email": "Lee11111@gmail.com",
"ExternalID": "14b6f8ab-8ce1-4f93-8340-ec41931783dc",
"DateEnteredUtc": 1535676533,
"DateModifiedUtc": 1535676444,
"IsBlacklisted": true,
"BlacklistFields": [
"PhoneNumber",
"Address",
"IpAddress",
"Email"
],
"IpAddress": null,
"StepType": "Inquiry",
"IsTest": false,
"IsChargeback":false,
"IsCancelled":false
}
]
}
List Customers
Request arguments
| Parameter | Type | Description |
|---|---|---|
dateFromUtc dateToUtc dateModifiedFromUtc dateModifiedToUtcOptional |
int |
Timestamp in unix format (in seconds), e.g. 1490547296
|
customerIDOptional |
int |
Customer ID |
externalIDOptional |
string |
External ID of customer (in another system) |
customerIDafterOptional |
int |
Customer ID After |
steptypesOptional |
string |
List of step types. Valid values are: inquiry, declined, buyer, all
|
typesOptional |
string |
List of types. Valid values are: real, test, all
|
sortOptional |
string |
Sort direction. Valid values are: asc, desc
|
POST Add customer
Definition
POST https://openapi.admoji.com/api/v2/open/customers
Request Example
$ curl -X POST 'https://openapi.admoji.com/api/v2/open/customers' \
-H "content-type: application/json" \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111" \
-H "Idempotency-Key: 3a2ebd06-e52f-47d2-92c4-66a107022f8e" \
-d '{
"SiteID":"1003998",
"FirstName":"Winnie",
"LastName":"Pooh",
"Email":"email@gmail.com",
"ExternalID": "14b6f8ab-8ce1-4f93-8340-ec41931783dc",
"Phone":"1234567890",
"Address1":"Address1 Value",
"Address2":"Address2 Value",
"City":"City",
"State":"CA",
"CountryISO":"us",
"ZipCode":"123456",
"IpAddress":"127.0.0.1",
"AffiliateID":"mike",
"SubAffiliateID":"john",
"SubAffiliateID2":"abc",
"SubAffiliateID3":"123",
"SubAffiliateID4":null,
"SubAffiliateID5":null,
"MDFs": [
{Name: "Weight", Value: "5kg"},
{Name: "Color", Value: "green"},
{Name: "Size", Value: "M"}
],
"CustomValue1": "cv1",
"CustomValue2": "cv2",
"CustomValue3": null,
"CustomValue4": null,
"CustomValue5": null,
"SessionID": null
}'
Before you run a transaction, a customer record must first be created in the CRM. After a customer record is created, multiple transactions can be run against it
Request arguments
| Parameter | Description |
|---|---|
SiteIDRequired |
The SiteID the new customer will belong to |
SessionIDOptional |
Session ID returned from Add Click call |
ExternalIDOptional |
Identifier of the customer in the external system. It can be used to match customer in Response CRM with the customer in another system. |
Response Example
{
"Status": 0,
"CustomerID": 8982438
}
PUT Edit customer
Definition
PUT https://openapi.admoji.com/api/v2/open/customers/:customerid
Request Example
$ curl -X PUT 'https://openapi.admoji.com/api/v2/open/customers/9271111' \
-H "content-type: application/json" \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111" \
-d '{
FirstName: "Firstname",
LastName: "LastName",
Email: "customer@test.com",
ExternalID: "14b6f8ab-8ce1-4f93-8340-ec41931783dc",
Phone: "1234567890",
Address1: "Address1",
Address2: "Address2",
City: "City 17",
State: "CA",
CountryISO: "us",
ZipCode: "123456",
IpAddress: "127.0.0.1",
AffiliateID: "aff",
SubAffiliateID: "subaff",
SubAffiliateID2: "subaff2",
SubAffiliateID3: "subaff3",
SubAffiliateID4: "subaff4",
SubAffiliateID5: "subaff5",
CustomValue1: "cv1",
CustomValue2: "cv2",
CustomValue3: "cv3",
CustomValue4: null,
CustomValue5: null
}'
Edit customer info
Request arguments
| Parameter | Description |
|---|---|
CustomerIDRequired |
The customer ID to update |
Response Example
{
"Status": 0
}
GET List notes
Definition
GET https://openapi.admoji.com/api/v2/open/customers/notes/:customerid
Request Example
$ curl -X GET 'https://openapi.admoji.com/api/v2/open/customers/notes/9241111' \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111"
Response Example
{
"Status": 0,
"Notes": [
{
"Note": "Email of type 'OrderConfirmation' was sent",
"Type": "confirmation",
"OrderID": null,
"DateEnteredUtc": 1506384000,
"EnteredBy": null
},
{
"Note": "Custom text",
"Type": "custom",
"OrderID": 161420,
"DateEnteredUtc": 1506384000,
"EnteredBy": "User1"
},
]
}
List customer’s notes
Request arguments
| Parameter | Description |
|---|---|
CustomerIDRequired |
The customer ID to query notes for. |
Response arguments
| Parameter | Description |
|---|---|
Type |
Note type. Possible values are: custom, refund, recurring, chargeback, confirmation, cancel, change
|
POST Add note
Definition
POST https://openapi.admoji.com/api/v2/open/customers/notes/:customerid
Request Example
$ curl -X POST 'https://openapi.admoji.com/api/v2/open/customers/notes/9241111' \
-H "content-type: application/json" \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111" \
-H "Idempotency-Key: 3a2ebd06-e52f-47d2-92c4-66a107022f8e" \
-d '{
"Note": "Custom Text",
"OrderID": 161420
}'
Response Example
{
"Status": 0,
}
Add customer note
Request arguments
| Parameter | Description |
|---|---|
NoteRequired |
Note content |
OrderIDOptional |
Order ID |
POST Mark as chargeback
Definition
POST https://openapi.admoji.com/api/v2/open/customers/mark-chargeback
Request Example
$ curl -X POST 'https://openapi.admoji.com/api/v2/open/customers/mark-chargeback' \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111"
-H "Idempotency-Key: 3a2ebd06-e52f-47d2-92c4-66a107022f8e" \
-d '{
CustomerID: 12148089,
Option: "cbalert",
GatewayTransactionID: "ABC111222333444",
Note: "Custom message to add to customer notes"
}'
Response Example
{
"Status": 0,
}
Mark customer as chargeback, blacklist and deactivate recurrings.
Request arguments
| Parameter | Type | Description |
|---|---|---|
CustomerIDRequired |
CustomerID | |
OptionRequired |
enum | Mark customer as chargeback or chargeback alert. Possible values are: cb, cbalert
|
GatewayTransactionIDRequired |
string | Gateway Transaction ID to mark as chargeback |
Note |
string | Optional message to add to customer notes |
POST Mark as cancelled
Definition
POST https://openapi.admoji.com/api/v2/open/customers/mark-cancelled
Request Example
$ curl -X POST 'https://openapi.admoji.com/api/v2/open/customers/mark-cancelled' \
-H "content-type: application/json" \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111" \
-d '{
"CustomerIDs": [
9181111,9182222,9183333,9184444,9185555
]
}'
Response Example
{
"Status": 0,
}
Mark customer as cancelled and deactivate all recurrings
PUT Update payment method
Definition
PUT https://openapi.admoji.com/api/v2/open/customers/payment-method
Request Example
$ curl -X PUT 'https://openapi.admoji.com/api/v2/open/customers/payment-method' \
-H "content-type: application/json" \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111" \
-d '{
"CustomerID": 9270311,
"PaymentInformation":
{
"CCNumber": "4111111111111111",
"ExpMonth": "5",
"ExpYear": "2018",
"NameOnCard": "First Last",
"CVV": "123",
"PaymentMethodToken":
{
"Source": "Stripe",
"OneTimeCardToken": "tok_123456"
}
}
}'
Response Example
{
"Status": 0
}
Update customer payment method
Request arguments
| Parameter | Type | Description |
|---|---|---|
CustomerIDRequired |
int |
CustomerID |
|
PaymentInformation Required |
object |
Payment Information |
Payment information definition
| Parameter | Description | Description |
|---|---|---|
CCNumberRequired |
min(12) |
Credit Card Number |
ExpMonthRequired |
string(2) |
Expiration Month |
ExpYearRequired |
string(4) |
Expiration Year |
NameOnCardRequired |
string |
Name On Card |
CVVRequired |
string |
CVV |
|
PaymentMethodToken Optional |
object |
Payment Token |
Payment token definition
| Parameter | Description | Description |
|---|---|---|
SourceRequired |
string |
Possible values: ‘Stripe’ |
OneTimeCardTokenRequired |
string |
One-time card token obtained using js-plugin provided by the gateway (for example Stripe.js) |
GET Get gateway tokens
Definition
GET https://openapi.admoji.com/api/v2/open/customers/:customerid/gateway-tokens
Request Example
$ curl -X GET 'https://openapi.admoji.com/api/v2/open/customers/15475958/gateway-tokens' \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111"
Response Example
{
"Status": 0,
"CustomerID": 15475958,
"Integrations": [
{
"ProcessorID": 1234,
"ProcessorName": "GoLance Stripe",
"GatewayID": 45,
"GatewayCustomerId": "cus_ABC123xyz"
}
],
"PaymentMethods": [
{
"ProcessorID": 1234,
"GatewayPaymentMethodId": "pm_XYZ789abc",
"CardType": "visa",
"Last4": "4242",
"ExpMonth": "12",
"ExpYear": "2028",
"DateEnteredUtc": 1736950200
}
]
}
Returns the gateway customer ID and payment method IDs stored for a customer from tokenized payment processors. Use this to retrieve Stripe Customer ID and PaymentMethod ID for direct Stripe API integration.
Request arguments
| Parameter | Type | Description |
|---|---|---|
customeridRequired |
int |
Customer ID (in URL path) |
Response arguments
| Parameter | Type | Description |
|---|---|---|
Integrations |
array |
List of gateway customer integrations for this customer |
Integrations[].ProcessorID |
int |
CRM Processor ID |
Integrations[].ProcessorName |
string |
Processor name as configured in CRM |
Integrations[].GatewayID |
int |
Gateway type identifier. 45 = StripeTokenized |
Integrations[].GatewayCustomerId |
string |
Gateway customer ID (e.g. Stripe cus_xxx) |
PaymentMethods |
array |
List of stored tokenized payment methods for this customer |
PaymentMethods[].ProcessorID |
int |
CRM Processor ID — use to match with Integrations
|
PaymentMethods[].GatewayPaymentMethodId |
string |
Gateway payment method ID (e.g. Stripe pm_xxx) |
PaymentMethods[].CardType |
string |
Card brand (e.g. visa, mastercard) |
PaymentMethods[].Last4 |
string |
Last 4 digits of the card |
PaymentMethods[].ExpMonth |
string |
Card expiration month |
PaymentMethods[].ExpYear |
string |
Card expiration year |
PaymentMethods[].DateEnteredUtc |
int |
Timestamp when the payment method was stored (unix seconds) |
Recurrings
GET List recurrings
Definition
GET https://openapi.admoji.com/api/v2/open/recurrings/:customerid
Request Example
$ curl -X GET 'https://openapi.admoji.com/api/v2/open/recurrings/9241111' \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111"
Response Example
{
"Status": 0,
"Recurrings": [
{
"RecurringID": 961111,
"ProductID": 14111,
"ProductName": "Product Name NO SHIP",
"SignUpOrderID": 810520412, // initial order which initiated recurring payments cycle
"GroupID": 9111,
"GroupName": "Group Name",
"StickyMID": null,
"StickyMIDName": null,
"IsActive": true,
"NextChargeDueDate": 1506384000,
"RetryChargeDueDate": 1506384000,
"DateEnteredUtc": 1506384000,
"DateModifiedUtc": 1506384000,
"DateDeactivatedUtc": null,
"CycleNum": 3, // current cycle number
"Amount": 3.12,
"TotalChargesToRun": 0, // 0 - indefinitely
"Cycles": [
{
"CycleNum": 1,
"Amount": 3.99,
"IsShippable": true,
"Delay": 10,
},
{
"CycleNum": 2,
"Amount": 3.12,
"IsShippable": true,
"Delay": 15 // delay in days after previous transaction
},
]
},
{
"RecurringID": 962222,
"ProductID": 14222,
"ProductName": "Charge Name SHIP",
"GroupID": 9222,
"GroupName": "Group Name",
"StickyMID": null,
"StickyMIDName": null,
"IsActive": false,
"NextChargeDueDate": 1506384000,
"RetryChargeDueDate": 1506384000,
"DateEnteredUtc": 1506384000,
"DateModifiedUtc": 1506384000,
"DateDeactivatedUtc": 1506384000,
"CycleNum": 1,
"Amount": 5.12,
"TotalChargesToRun": 1,
"Cycles": [
{
"CycleNum": 1,
"Amount": 3.99,
"IsShippable": true,
"Delay": 10,
},
{
"CycleNum": 2,
"Amount": 3.12,
"IsShippable": true,
"Delay": 15
},
]
}
]
}
List customer’s recurrings
Request arguments
| Parameter | Description |
|---|---|
CustomerIDRequired |
The customer ID to query recurrings for. |
SignUpOrderIDOptional |
Filter by initial signup order ID |
SiteIDOptional |
Filter by site ID |
Response arguments
| Parameter | Description |
|---|---|
StickyMID |
The future merchant processor ID of a Recurring Charge. |
StickyMIDName |
The future merchant processor name of a Recurring Charge. |
PUT Edit recurrings
Definition
PUT https://openapi.admoji.com/api/v2/open/recurrings
Request Example
$ curl -X PUT 'https://openapi.admoji.com/api/v2/open/recurrings' \
-H "content-type: application/json" \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111" \
-d '{
"CustomerIDs": [
10036501,
10036436,
10036388
],
"RecurringID": 20985915,
"RecurringProductID": 15891,
"NewValues":
{
"Amount": 1.22,
"NextChargeDueDateUtc": 1747270923,
"PushDueDateDays": 30,
"IsActive": false,
"ProductID": 34412,
}
}'
Response Example
{
"Status": 0
}
Edit amount, next charge due date or active status for one or many customers.
Request arguments
| Parameter | Description |
|---|---|
CustomerIDsOptional |
Customers to update recurrings |
RecurringIDOptional |
Recurring ID (can be found using List Recurrings call). Either RecurringID or CustomerIDs must be specified |
RecurringProductIDOptional |
This ID you you can find in product configuration section as ProductID |
|
NewValues Required |
Object containing new values |
New Values definition
| Parameter | Type | Description |
|---|---|---|
AmountOptional |
decimal |
New amount |
NextChargeDueDateUtcOptional |
unixtime |
New next charge due date in UTC timezone |
PushDueDateDaysOptional |
int |
Number of days to add to the current value |
IsActiveOptional |
bool |
New active status |
ProductIDOptional |
int |
New product id |
QuantityOptional |
int |
New quantity |
RecurringIDOptional |
int |
New recurring ID |
CyclesOptional |
int |
Number of billing cycles |
POST Deactivate recurring
Definition
POST https://openapi.admoji.com/api/v2/open/recurrings/deactivate
Request Example
$ curl -X POST 'https://openapi.admoji.com/api/v2/open/recurrings/deactivate' \
-H "content-type: application/json" \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111" \
-H "Idempotency-Key: 3a2ebd06-e52f-47d2-92c4-66a107022f8e" \
-d '{
"CustomerID": 10561111,
"RecurringIDs": [111,222,333] //optional
}'
Response Example
{
"Status":0,
"Good": true
}
Deactivate all or specified only recurrings for a customer
Request arguments
| Parameter | Type | Description |
|---|---|---|
CustomerIDRequired |
int |
Customer to update |
RecurringIDsOptional |
array |
Recurrings to deactivate. Send null or empty to deactivate all customer recurrings |
POST Trigger recurring
Definition
POST https://openapi.admoji.com/api/v2/open/recurrings/run
Request Example
$ curl -X POST 'https://openapi.admoji.com/api/v2/open/recurrings/run' \
-H "content-type: application/json" \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111" \
-H "Idempotency-Key: 3a2ebd06-e52f-47d2-92c4-66a107022f8e" \
-d '{
"RecurringID": 10561111,
"Amount": 1.05 //optional
}'
Response Example
{
"Status":0,
"Transaction":{
"OrderInfo":{
"Response":"1",
"ResponseText":"Approval"
}
}
}
Trigger recurring transaction using a recurring ID
Request arguments
| Parameter | Type | Description |
|---|---|---|
RecurringIDRequired |
int |
Recurring ID retrieved using List Recurrings call |
AmountOptional |
decimal |
Change recurring amount |
Orders
Most properties are self-explanatory
POST Add click
Definition
POST https://openapi.admoji.com/api/v2/open/clicks
Request Example
$ curl -X POST 'https://openapi.admoji.com/api/v2/open/clicks' \
-H "content-type: application/json" \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111" \
-H "Idempotency-Key: 3a2ebd06-e52f-47d2-92c4-66a107022f8e" \
-d '{
"SessionID": null,
-- OR --
"SiteID": 1001111,
"RequestUri": "https://landing.com/offer/?affId=ABCDEFGH&s1=abc&s2=123",
"IpAddress": "127.0.0.1",
"PageType": "Lead",
"AffiliateID":"ABCDEFGH",
"SubAffiliateID":"abc",
"SubAffiliateID2":"123",
"SubAffiliateID3":null,
"SubAffiliateID4":null,
"SubAffiliateID5":null
},'
{
"Status": 0,
"Good": true,
"Result": {
"SessionID": "9c21575ca227438a9502373a2d606ccc"
}
}
The Add Click API allows you to track your landing page visits in the CRM Reports.
On a successful Add Click call, a SessionID for the landing page session will be created. Pass SessionID on subsequent calls on additional pages in order to track when each page was visited.
Request arguments
| Parameter | Type | Description |
|---|---|---|
SessionIDOptional |
uuid |
SessionID returned from the initial Add Click call |
SiteIDRequired if sessionId is null |
int |
Site ID |
IpAddressRequired if sessionId is null |
string |
Must be a valid ipv4 or ipv6 format |
RequestUriRequired if sessionId is null |
string |
The URL requested by the customer when they landed on the page (Ex. https://landing.com/offer/?affId=ABCDEF&c1=abc&c2=111222333) |
PageTypeRequired |
enum |
Possible values are: Presell, Lead, Checkout, Upsell1, Upsell2, Upsell3, Upsell4, Thankyou
|
AffiliateIDOptional |
string |
Affiliate ID or code found in the Affiliate section of the CRM |
UserClickIDOptional |
string |
External click ID for tracking purposes |
POST Add order
Definition
POST https://openapi.admoji.com/api/v2/open/orders
Request Example
$ curl -X POST 'https://openapi.admoji.com/api/v2/open/orders' \
-H "content-type: application/json" \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111" \
-H "Idempotency-Key: 3a2ebd06-e52f-47d2-92c4-66a107022f8e" \
-d '{
"CustomerID": 8563080,
"OrderID": 10561111, //optional. value from approved signup request
"IpAddress": "127.0.0.1",
"CouponCode": "OFF10",
"BillingAddress": { //optional if OrderID provided
"FirstName": "Winnie",
"LastName": "Pooh",
"Address1": "Boschenmeer Str",
"Address2": "Paarl",
"City": "Paarl",
"CountryISO": "us",
"State": "SAWestern Cape",
"ZipCode": "7646"
},
"PaymentInformation": { //optional if OrderID provided
// CC
"ExpMonth": "05",
"ExpYear": "2018",
"CCNumber": "4111111111111111",
"NameOnCard": "First Last",
"CVV": "123",
// 3DS v1 and v2 optional values (see details on the left)
"ThreeDs": {
"XID": "cf6705f7-67f7-4f3a-9402-a409cb4929ac",
"CAVV": "AAACB5IXYQAAABc3SBdhAAABBCC=",
"ECI": "05",
"Status": "Y",
"Version": "2.1.0",
},
// 3DS v1 and v2 optional values to use with first recurring transaction
"ThreeDsRecurring": {
"XID": "cac4d016-2a30-4079-aced-1ed2620b02bf",
"CAVV": "AAACB5IXYQAAABc3SBdhAAABBCC=",
"ECI": "07",
"Status": "N",
"Version": "2.1.0",
},
// ACH
"AchAba": "123456789",
"AchAccountNumber": "1234567890123456",
"AccountType" "Checking",
// SEPA
"CheckIban": "DEST1000200030004000500",
"CheckName": "First Name",
"SepaPhoneToken": "65636bea2ef14968b955afd42ab2d00d",
"SepaPhonePin": "1234"
// information for tokenized payments
"PaymentMethodToken" : {
"Source": "Stripe",
"OneTimeCardToken": "sk_12345678"
},
// OPTIONAL
"ProcessorID": 1234,
"GatewayOrderID": "ExternalOrderID"
},
"Products": [
{
"ProductID": 11622,
},
{
"ProductID": 11633,
"Quantity": 1 // optional
},
{
"ProductID": 11644,
"Amount": 3.12, // optional
"Quantity": 1 // optional
"ShipAmount": 5, // optional
},
{
"ProductID": 11655,
"VariantProductID": 101, // variant ID from Create Variants call
"Quantity": 2
},
],
// merchant defined properties to store additional information about the order
"MerchantDefined": {
"merchantDefinedField1": "value1",
"merchantDefinedField2": "123"
}
}'
{
"Status":0,
"Transaction":{
"CustomerInfo":{
"FirstName":"Lynda",
"LastName":"Henson",
"ShippingAddress":"62 pericho close",
"BillingAddress":"Boschenmeer 342",
"Phone":"0895376618",
"Email":"lyndahenson@hotmail.com",
"IsProcessingFilter": false
},
"OrderInfo":{
"OrderID":11223344,
"Products":[
{
"ProductName":"AU AUD Garcinia Refill 0.00",
"ProductAmount":0
}
],
"SalesTax":0,
"SubTotalAmount":0,
"ShippingAmount":0,
"TotalAmount":0,
"TransactionID":"ABCD127916635",
"CustomerID":8563080,
"Response":"1",
"ResponseText":"Auto Approval for zero amount",
"ProcessorID": 1234,
"Descriptor": "Descriptor1234"
}
}
}
After a customer is inserted, a transaction may be run against it. You may also run another transaction on and existing customers cardholder data
Request arguments
| Parameter | Type | Description |
|---|---|---|
CustomerIDRequired |
int |
CustomerID |
OrderIDOptional |
int |
Order ID received from previously added approved signup request to tie together as a single order |
IpAddressRequired |
string |
Customer IP |
BillingAddressRequired |
object |
Billing Address |
|
PaymentInformation Required |
object |
Payment Information |
|
Products Required |
array |
Products |
MerchantDefinedOptional |
object |
Additional information about the order with merchant defined properties (key-value pairs, where key must have a length greater than 3 and less than 50 symbols) |
Payment information definition
| Parameter | Type | Description |
|---|---|---|
ExpMonthRequired |
string(2) |
Expiration Month |
ExpYearRequired |
string(4) |
Expiration Year |
CCNumberRequired |
min(12) |
Credit Card Number |
NameOnCardRequired |
string |
Name On Card |
CVVRequired |
string |
CVV |
|
ThreeDs Optional |
object |
3DS v1 and v2 values |
|
ThreeDsRecurring Optional |
object |
3DS v1 and v2 values |
AccountTypeOptional |
string |
Checking or Savings |
AchAbaOptional |
digits |
9 digit ABA number Code only (routing number) |
AchAccountNumberOptional |
digits |
16 digit account number Code only |
ProcessorIDOptional |
int |
Force processor to use |
GatewayOrderIDOptional |
string |
External Order ID sent to gateway |
|
PaymentMethodToken Optional |
object |
information for payments made using gateway generated token |
ThreeDs Definition
| Parameter | Type | Description |
|---|---|---|
XIDOptional |
string |
3DS V1: XID Value 3DS V2: dsTransId value |
CAVVOptional |
string |
3DS V1: CAVV Value 3DS V2: authenticationValue value |
ECIOptional |
string |
Electronic Commerce Indicator |
StatusOptional |
string |
Status |
VersionOptional |
string |
Version |
Products definition
| Parameter | Type | Description |
|---|---|---|
ProductIDRequired |
int |
Product ID |
VariantProductIDOptional |
int |
Variant ID returned from the Create Variants call. Same ProductID can appear multiple times if each has a different VariantProductID |
AmountOptional |
decimal |
Override amount. Auto-populated from variant if VariantProductID is set |
QuantityOptional |
int |
Override quantity |
IsPricePerPackageOptional |
bool |
Send true in case you want to override quantity, but you don’t want the order amount auto calculated |
ShipAmountOptional |
decimal |
Override shipping costs (from product settings) |
SkuOptional |
string |
Override SKU. Auto-populated from variant if VariantProductID is set |
OptionsOptional |
array |
Array of variant option selections: [{"Variant":"Color","Option":"Red"}]
|
Token Definition
| Parameter | Type | Description |
|---|---|---|
SourceRequired |
string |
Gateway name which owns the token. Possible values: GoDaddy, Stripe, Nmi, FluidpayCard, FluidpayGooglePay, FluidpayApplePay |
OneTimeCardTokenRequired |
string |
Token generated by JS plugin provided by the gateway |
POST Mark order as complete
Definition
POST https://openapi.admoji.com/api/v2/open/complete/:orderid
Request Example
$ curl -X POST 'https://openapi.admoji.com/api/v2/open/complete/12345678' \
-H "content-type: application/json" \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111"
Response Example
{
"Status":0
}
On thank you page you can use the endpoint to mark entire order as completed and trigger email autoresponders immediately.
You must pass OrderID received from signup call to each upsell call and use the same OrderID in this endpoint.
Request arguments
| Parameter | Type | Description |
|---|---|---|
OrderIDRequired |
int |
Order ID received in response from signup call |
PUT Update order
Definition
PUT https://openapi.admoji.com/api/v2/open/orders/:orderid
Request Example
$ curl -X PUT 'https://openapi.admoji.com/api/v2/open/orders/12345678' \
-H "content-type: application/json" \
-H "Idempotency-Key: 3a2ebd06-e52f-47d2-92c4-66a107022f8e" \
-d '{
"AmountToCharge": -4, // positive value on additional charge, negative - on refund
"ProductsNewValues": [
{
"ProductID": 11644,
"Amount": 3.12,
"Quantity": 1
},
],
}'
Response Example
{
"Status":0,
"Transaction": {
"OrderID": 12345678,
"CustomerID": 7788766,
"TransactionID": "pi_12345", // gateway transaction id
"OperationType": "refund", // refund or sale
"Response": "1",
"ResponseText": "Approved",
"ProcessorID": 1107,
"Descriptor": "Processor descriptor"
}
}
Update order positions with additional transaction (refund or sale)
Request arguments
| Parameter | Type | Description |
|---|---|---|
OrderIDRequired |
int |
Order ID |
AmountToChargeOptional |
decimal |
Amount for additional transaction to be commited. If zero or not set no transaction will take place. Value greater than zero will trigger ‘sale’ transaction (additional money will be withdrawn from the customer’s account). Value less than zero will trigger 'refund’ transaction. |
|
ProductsNewValues Required |
array |
Order positions that must be changed. If existing order position isn’t included in the list it won’t be changed. |
Update products definition
| Parameter | Type | Description |
|---|---|---|
ProductIDRequired |
int |
Product ID |
AmountOptional |
decimal |
Override amount |
QuantityOptional |
int |
New quantity value for order position. If set to zero - position will be deleted from the order. |
GET List transactions
Definition
GET https://openapi.admoji.com/api/v2/open/transactions
?txnCrmIDAfter=:txnCrmIDAfter
&dateFromUtc=:dateFromUtc
&dateToUtc=:dateToUtc
&siteids=:siteids
&txntype=:txntype
&ordertype=:ordertype
&testtype=:testtype
&txnstatus=:txnstatus
&txnGatewayID=:txnGatewayID
&customerID=:customerID
&orderID=:orderID
&lastName=:lastName
&email=:email
&last4=:last4
&processor=:processor
&affid=:affid
&amountfrom=:amountfrom
&amountto=:amountto
&phone=:phone
&bin=:bin
&authcode=:authcode
&campaignID=:campaignID
&customerExternalID=:customerExternalID
&processorExternalID:=processorExternalID
&productExternalID:=productExternalID
&transacitonCrmID:=transacitonCrmID
&fetch:=fetch
&offset:=offset
&sort=:sort
Request Example
$ curl -X GET 'https://openapi.admoji.com/api/v2/open/transactions?dateFromUtc=1489613633&dateToUtc=1489613633&txnCrmIDAfter=12722176&siteids=1004394&txntype=sale,auth,refund&ordertype=signup,recurring,recurringshipping,upsell&txnstatus=approved,declined,failed&txnGatewayID=123456&customerID=123456&lastName=test&email=email@gmail.com&last4=1234&processor=processor_id&affid=affid&amountfrom=1&amountto=50&phone=123456789&testtype=real&bin=123456&authcode=111222&sort=desc' \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111"
{
"Status": 0,
"Transactions": [
{
"TransactionType": "sale",
"Status": "Approved",
"TransactionCrmID": 12722173,
"TransactionGatewayID": 3534881111,
"AVSStatus": "",
"CVVStatus": "",
"TimeUtc": 1506384000,
"Processor": "nmaguc1111",
"MidNum": "2538965",
"Amount": 4.96,
"CustomerID": 9031111,
"SiteID": 1004111,
"FirstName": "Jessica",
"LastName": "Parker",
"Email": "jess11111@yahoo.com",
"Phone": "1231112411",
"IsTest":false,
"IpAddress": "192.168.100.100",
"BinNo": "411111",
"AuthCode": "111222",
"BinNo": "411111",
"CCNumber": "4607",
"CCType": "Visa",
"CCExpiration": "05/2026",
"AffiliateID": "255",
"AffiliateSubID": "4184",
"Currency": "USD",
"Merchant": "Merchant",
"BillingCycle": 0,
"NextChargeDueDate": null,
"GatewayOrderID":null,
"TrackingNo": null,
"IsChargeback": false,
"ChargebackDateOfNotice": null,
"AuthCode": "06343A",
"MerchantDefined": {
"merchantDefinedField1": "value 1",
"merchantDefinedField2": "value 2"
},
"ShippingAddress": {
"FirstName": "Jessica",
"LastName": "Parker",
"Address1": "1111 Garrison circle",
"Address2": "",
"City": "Abingdon",
"State": "MD",
"Country": "us",
"Zipcode": "21111",
"Phone": "4439511111"
},
"BillingAddress": {
"FirstName": "Nicholas",
"LastName": "Cage",
"Address1": "111 concord point drive",
"Address2": "",
"City": "Perryville",
"State": "MD",
"Country": "us",
"ZipCode": "21111"
},
"OrderInfo": {
"OrderID": 111222333,
"OrderType": "Upsell",
"OrderDescription": "Product Transaction (Upsell Charge)",
"SalesTax": 0,
"SubTotalAmount": 4.96,
"ShippingAmount": 0,
"TotalAmount": 4.96,
"RecurringID": 1223122,
"Status": "Success",
"TimeUtc": 1740954885,
"OrderProducts": [
{
"ProductID": 14260,
"ProductName": "Product Sign Up",
"Amount": 4.96,
"Qty": 1,
"Sku": "PRDCT",
"IsShippable": true
}
],
"Fulfillments": [
{
"FulfillmentID": 12233,
"TrackingNo": null,
"Status": "error",
"CrmStatus": "Cancelled",
"DateShippedUtc": null
},
{
"FulfillmentID": 12234,
"TrackingNo": "tracking-abcd",
"Status": "SHIPPED",
"CrmStatus": "Shipped",
"DateShippedUtc": 1711765994
}
]
}
},
]
}
Returns a list of transactions.
Request arguments
| Parameter | Description |
|---|---|
dateFromUtc |
Timestamp in unix format (in seconds), e.g. 1490547296
|
dateToUtc |
Timestamp in unix format (in seconds), e.g. 1490547296
|
txnCrmIDAfter |
The CRM transaction ID of the last Transaction pulled, the response would include all transactions after this ID |
siteIDs |
List of SiteIDs, e.g. 1002000,1002001,1002002
|
txnstatus |
List of transaction statuses. Valid values are: approved, declined, failed, all
|
txntype |
List of transaction types. Valid values are: auth, sale, refund, void, capture, all
|
ordertype |
List of order types. Valid values are: signup, recurring, recurringshipping, upsell, all
|
testtype |
Transaction test type. Valid values are: real, test, all
|
txnGatewayID |
Gateway Transaction ID |
customerID |
Customer ID |
orderID |
Order ID |
lastName |
Customer’s last name |
email |
Customer’s email |
phone |
Customer’s phone |
last4 |
Credit Card Last 4 Digits |
processor |
Processor MID |
affid |
Affiliate ID |
amountfrom |
Transaction Amount From |
amountto |
Transaction Amount To |
bin |
Card Bin |
authcode |
Transaction AuthCode |
campaignID |
External ID of site (can be set on the site’s page) |
customerExternalID |
External ID of customer |
processorExternalID |
External ID of processor |
productExternalID |
External ID of product (SKU) |
transacitonCrmID |
Unique identifier of transaction assigned by CRM |
fetch |
amount of transactions to return (not more than 1000) |
offset |
amount of transactions to skip |
sort |
Sort direction. Valid values are: asc, desc
|
POST Refund transaction
Definition
POST https://openapi.admoji.com/api/v2/open/customer/refund
Request Example
$ curl -X POST 'https://openapi.admoji.com/api/v2/open/customer/refund' \
-H "content-type: application/json" \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111" \
-H "Idempotency-Key: 3a2ebd06-e52f-47d2-92c4-66a107022f8e" \
-d '{
"TransactionID": "ABC12345678",
"Amount": 5.67,
"Type": "void"
}'
{
"Status": 0,
"ResponseText": "SUCCESS"
}
Refunds or void a transaction.
Request arguments
| Parameter | Description |
|---|---|
TransactionIDRequired |
Transaction ID |
AmountOptional |
Amount to refund. Default is full amount |
TypeOptional |
Transaction Type. Valid values are: void, refund. Default is refund
|
GET Get order updates logs
Definition
GET https://openapi.admoji.com/api/v2/open/orders/logs?orderId=:orderid&customerId=:customerId
Request Example
$ curl -X GET 'https://openapi.admoji.com/api/v2/open/orders/logs?orderid=17861420' \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111"
Response Example
{
"Status": 0,
"Logs": [
{
"OrderID": 17861420,
"Transaction": {
"Type": "sale",
"GatewayTransactionId": "pi_123456"
},
"Changes": [
{
"FieldName": "TotalAmount",
"OldValue": 24.0,
"NewValue": 36.0
}
],
"OrderPositionChanges": [
{
"ProductId": 34702,
"Changes": [
{
"FieldName": "Quantity",
"OldValue": 3,
"NewValue": 7
}
]
}
]
}
]
}
Returns a list of order changes made during transaction refund and order update operations. It contains changes on the header level (Balance, TotalAmount, SubTotalAmount fields) and on the level of order positions (Quantity, Amount, TotalAmount fields).
PUT Mark order as chargeback
Definition
PUT https://openapi.admoji.com/api/v2/open/orders/:orderId/chargeback
Request Example
$ curl -X PUT 'https://openapi.admoji.com/api/v2/open/orders/1234567/chargeback' \
-H "content-type: application/json" \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111" \
-d '{
"ChargebackAmount": 29.99,
"ChargebackDate": "2026-05-01T00:00:00Z",
"ChargebackReasonCode": "10.4",
"ChargebackType": "first_chargeback"
}'
Response Example
{
"Status": 0
}
Mark a specific order as chargeback.
Request arguments
| Parameter | Type | Description |
|---|---|---|
orderIdRequired |
int |
Order ID (in URL path) |
ChargebackAmountOptional |
decimal |
Amount of the chargeback |
ChargebackDateOptional |
datetime |
Date of chargeback in UTC |
ChargebackReasonCodeOptional |
string |
Chargeback reason code |
ChargebackTypeOptional |
string |
Type of chargeback. Valid values: first_chargeback, second_chargeback, chargeback_reversal, pre_arbitration
|
POST Capture order
Definition
POST https://openapi.admoji.com/api/v2/open/capture/:orderId
Request Example
$ curl -X POST 'https://openapi.admoji.com/api/v2/open/capture/1234567' \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111"
Response Example
{
"Status": 0
}
Capture a previously authorized order.
Request arguments
| Parameter | Type | Description |
|---|---|---|
orderIdRequired |
int |
Order ID (in URL path) |
Processors
GET List processors
Definition
GET https://openapi.admoji.com/api/v1/open/processors
?dateFromUtc=:dateFromUtc
Request Example
$ curl -X GET 'https://openapi.admoji.com/api/v1/open/processors?dateFromUtc=1489613633' \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111"
{
"Status": 0,
"Good": true,
"Result": [
{
"ProcessorID": 1111,
"ProcessorName": "MID11",
"MonthlyLimit": 50000.00,
"IsActive": true,
"Sale": 16624.68,
"VoidRefund": 608.22,
"PercentageUsed": 0.33
},
{
"ProcessorID": 2222,
"ProcessorName": "MID22",
"MonthlyLimit": 50000.00,
"IsActive": true,
"Sale": 14424.12,
"VoidRefund": 236.53,
"PercentageUsed": 0.29
},
{
"ProcessorID": 3333,
"ProcessorName": "MID33",
"MonthlyLimit": 50000.00,
"IsActive": true,
"Sale": 14022.85,
"VoidRefund": 540.64,
"PercentageUsed": 0.28
}
]
}
Returns a list of processors
Payments
Square Payments
Send SquareCardNonce in Add Singup Request
"PaymentInformation": {
"SquareCardNonce": "cnon:CBASEJkB6xrRB5rEvkiUUax1111",
}
Make sure your site has Square Processor selected in site configuration
Integrate Square Payment Form In a Website. For a complete walkthrough refer to Square Developer Portal. You can download integration samples at Square GitHub repo
Call Add Customer as described in the documentation
Send
SquareCardNoncereceived from Square Payment Form API in Add Signup Transaction callSubsequent transactions for the customer do not require any additional parameters
POST PayPal Checkout
Definition
POST https://openapi.admoji.com/api/v1/open/payments/paypal/v2/orders
Request Example
$ curl -X POST 'https://openapi.admoji.com/api/v1/open/payments/paypal/v2/orders' \
-H "content-type: application/json" \
-H "Authorization: ApiKey pk_paypal_492796e421a34666a5695d53cd311111" \
-d '{
"CustomerID": 8563080,
"Products": [
{
"ProductID": 11115
}
],
"ReturnUrl": "https://www.mysite.com/thankyou.html",
"CancelUrl": "https://www.mysite.com/cancel.html",
}'
Response Example
{
"Status": 0,
"CrmOrderID": 10231111,
"PaymentID": "PAY-1111136774956921FLPJSSCQ"
}
Definition
POST https://openapi.admoji.com/api/v1/open/payments/paypal/v2/orders/capture
Request Example
$ curl -X POST 'https://openapi.admoji.com/api/v1/open/payments/paypal/v2/orders/capture' \
-H "content-type: application/json" \
-H "Authorization: ApiKey pk_paypal_492796e421a34666a5695d53cd311111" \
-d '{
"OrderID": "47D66896A39351234",
"CrmOrderID": 10232041
}'
Response Example
{
"Status": 0,
"ResponseText": "approved"
}
For more information please refer to Paypal Documentation
You can download integration sample here. Right click the link above and click “Save As”
POST Sezzle Checkout
Definition
POST https://openapi.admoji.com/api/v2/open/transactions/sezzle/create-checkout
Request Example
$ curl -X POST 'https://openapi.admoji.com/api/v2/open/transactions/sezzle/create-checkout' \
-H "content-type: application/json" \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111" \
-d '{
"CustomerID": 8563080,
"Products": [
{
"ProductID": 11115
}
],
"CompleteUrl": "https://www.mysite.com/thankyou.html",
"CancelUrl": "https://www.mysite.com/cancel.html",
}'
Response Example
{
"Status": 0,
"Good": true,
"Result": {
"CrmOrderID": 12491111,
"CheckoutUrl": "https://sandbox.checkout.sezzle.com?id=0153e70a-c684-434a-b986-3157cc621111"
}
}
- Add Customer as described in the documentation
- On checkout page call /sezzle/create-checkout endpoint to create Sezzle checkout URL.
- Redirect customer using link received in API response.
- Once approved or canceled customer will be redirected to either CompleteUrl or CancelUrl specified in Step 2.
POST Flopay
Definition
POST https://openapi.admoji.com/api/v2/open/payments/flopay
Request Example
$ curl -X POST 'https://openapi.admoji.com/api/v2/open/payments/flopay' \
-H "content-type: application/json" \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111" \
-d '{
"CustomerID": 8563080,
"Products": [
{
"ProductID": 11115
}
],
"SuccessUrl": "https://www.mysite.com/thankyou.html",
"CancelUrl": "https://www.mysite.com/cancel.html",
"Mode": "OneTimePayment"
}'
Response Example
{
"Status": 0,
"Good": true,
"Result":
{
"CrmOrderID": 14143838,
"PaymentID": "PcTaXT0wdhwY2GbWsG3z",
"RedirectUrl": "https://sandbox.checkout.flopay.co/?order_id=PcTaXT0wdhwY2GbWsG3z"
}
}
- Add Customer as described in the documentation
- On checkout page call /payments/flopay endpoint to create Flopay payment URL.
- Redirect customer using link received in API response.
- Once approved or canceled customer will be redirected to either SuccessUrl or CancelUrl specified in Step 2.
Sites, Groups and Products
Query sites, product groups and products
GET List sites, groups and products
Definition
GET https://openapi.admoji.com/api/v2/open/sites
Request Example
$ curl -X GET 'https://openapi.admoji.com/api/v2/open/sites' \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111"
{
"Status": 0,
"Sites": [
{
"ID": 1004000,
"Name": "Product 1",
"Groups": [
{
"ID": 9398,
"ProductGroupGUID": "3b652ef7-20ab-4693-af52-5662276a1111",
"Name": "Product Pro",
"Charges": [
{
"ID": 14111,
"Name": "Product Sign Up",
"Type": "Signup Charge",
"Amount": 6.95,
"Sku": "ABC-12345",
"RecurringCycles": []
},
{
"ID": 19111,
"Name": "Charge1 Recurring",
"Type": "Recurring Charge",
"Amount": 89.92,
"Sku": "906271932",
"RecurringCycles": [
{
"CycleNum": 1,
"Amount": 89.92,
"Delay": 16,
"IsShippable": false
},
{
"CycleNum": 2,
"Amount": 89.92,
"Delay": 30,
"IsShippable": true
},
{
"CycleNum": 3,
"Amount": 89.92,
"Delay": 30,
"IsShippable": true
}
]
}
]
}
]
}
]
}
The endpoint returns information about all sites, groups and products of a given client
GET Check Coupon
Definition
GET https://openapi.admoji.com//api/v2/open/sites/:siteid/coupons/:couponcode
Request Example
$ curl -X GET 'https://openapi.admoji.com/api/v2/open/sites/1003806/coupons/10OFF' \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111"
{
"Status": 0,
"Coupon": {
"Discount": 10,
"IsFlat": false,
"CouponType": "BasePrice",
"IsActive": true
}
}
The endpoint returns information about coupon
POST Generate Coupon
Definition
POST https://openapi.admoji.com/api/v2/open/sites/:siteid/generate-coupon/:couponid
Request Example
$ curl -X POST 'https://openapi.admoji.com/api/v2/open/sites/1003806/generate-coupon/928' \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111"
{
"Status": 0,
"Coupon": {
"CouponID": 929,
"Code": "SPW0XLDDUL8O",
"Discount": 10.00,
"CouponType": "BasePrice",
"ProductID": 26153,
"Product": "Product Name",
"IsFlat": false,
"IsActive": true,
"IsRecurring": false,
"RecurringDiscount": null,
"MaxCycles": null
}
}
Generate a new coupon based on existing coupon ID
Webhooks
Webhooks allow your application to receive real-time, push notification of various events. openapi.admoji.com
POST Registering a webhook
Definition
POST https://openapi.admoji.com/api/v2/open/webhooks
Request Example
$ curl -X POST 'https://openapi.admoji.com/api/v2/open/webhooks' \
-H "content-type: application/json" \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111" \
-d '{
"SiteID": 1004394,
"Event": "RmaCreated",
"PayloadURL": "https://mydomain.com/test-post"
}'
Response Example
{
"Status": 0
}
Each time a matching event occurs, we will make a POST call to the URL you provide. If the call fails, we will retry up to a maximum of 10 attempts, with exponential backoff.
Request arguments
| Parameter | Description |
|---|---|
EventRequired |
The event type name. Valid values: RmaCreated, TransactionCreated, RecurringDeactivated
|
PayloadURLRequired |
The URL we will send notifications to. |
SiteIDOptional |
If no SiteID provided webhook becomes global on an account |
GET List webhooks
Definition
GET https://openapi.admoji.com/api/v2/open/webhooks
Request Example
$ curl -X GET 'https://openapi.admoji.com/api/v2/open/webhooks' \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111"
Response Example
{
"Status": 0,
"WebHooks": [
{
"WebHookID": 1,
"SiteID": null,
"PayloadURL": "https://mydomain.com/test-post",
"FailedAttempts": 0,
"NextRunUtc": 1558732782,
"IsActive": true,
"Event": "RmaCreated"
},
{
"WebHookID": 2,
"SiteID": 1004433,
"PayloadURL": "https://mydomain.com/test-post2",
"FailedAttempts": 5,
"NextRunUtc": null,
"IsActive": true,
"Event": "TransactionCreated"
}
]
}
List the webhooks your application has registered on an account.
PUT Edit a webhook
Definition
PUT https://openapi.admoji.com/api/v2/open/webhooks/:webhookid
Request Example
$ curl -X PUT 'https://openapi.admoji.com/api/v2/open/webhooks/11' \
-H "content-type: application/json" \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111" \
-d '{
"PayloadURL": "https://example.com/webhook.php",
"IsActive": true,
"FailedAttempts": 0
}'
Response Example
{
"Status": 0
}
Edit specific properties of a webhook
DELETE Deleting a webhook
Definition
DELETE https://openapi.admoji.com/api/v2/open/webhooks/:webhookid
Request Example
$ curl -X DELETE 'https://openapi.admoji.com/api/v2/open/webhooks/11' \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111"
Response Example
{
"Status": 0
}
When you delete a webhook, we will no longer send notifications to it.
GET Webhook stats
Definition
GET https://openapi.admoji.com/api/v2/open/webhooks/stats/:webhookid
Request Example
$ curl -X GET 'https://openapi.admoji.com/api/v2/open/webhooks/stats/1' \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111"
Response Example
{
"Status": 0,
"RMAs": [
{
"RmaNo": "RMA134811111",
"StatusCode": 200,
"Response": "OK",
"DateEnteredUtc": 1506384000
},
{
"RmaNo": "RMA3286172222",
"StatusCode": 400,
"Response": "OK",
"DateEnteredUtc": 1506384000
},
{
"RmaNo": "RMA3286683333",
"StatusCode": 400,
"Response": "Unable to connect to the remote server",
"DateEnteredUtc": 1506384000
}
]
}
List the webhooks your application has registered on an account.
Request arguments
| Parameter | Description |
|---|---|
webhookidRequired |
The webhook to list posted events. |
POST Test Post
Definition
POST https://openapi.admoji.com/api/v2/open/webhooks/test-post/:webhookid
Request Example
$ curl -X POST 'https://openapi.admoji.com/api/v2/open/webhooks/test-post/1' \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111"
Response Example
{
"Status": 0,
"Posted": {
"SiteID": 1001111,
"SiteName": "Site Name",
"ClientID": 1234,
"ClientName": "Client Name",
"SalesTax": 0,
"SubTotalAmount": 0.99,
"TotalAmount": 0.99,
"Customer": {
"CustomerID": 10110011,
"FirstName": "john",
"LastName": "smith",
"Email": "email@gmail.com"
},
"Transaction": {
"CrmTransactionID": 10110001,
"GatewayTransactionID": "e630d0b34556d92ee",
"CrmType": "signup",
"GatewayType": "sale",
"Response": "approved",
"ResponseText": "approved",
"DateEnteredUtc": "2019-05-24T21:11:32.3914431Z"
},
"Products": [
{
"Amount": 0.99,
"Quantity": 1,
"TotalAmount": 0.99,
"Name": "Test Product",
"Tax": 0,
"IsShippable": false,
"GatewayProductKey": null
}
]
},
"Response": "Received"
}
Make a test post for a specific webhook
Events Description
RmaCreated payload example:
{
"CustomerID":8965939,
"ShippingStatus":"SHIPPED",
"TrackingNo":"9274899999887314241111",
"ReturnStatus":null,
"RmaNo":"RMA3325333158",
"RmaReason": "Return Refund",
"RmaDateEnteredUtc": ""
}
TransactionCreated payload example:
{
"SiteID": 1001111,
"SiteName": "Test Site",
"ClientID": 1234,
"ClientName": "Test Client",
"SalesTax": 0,
"SubTotalAmount": 24.98,
"TotalAmount": 24.98,
"Customer": {
"CustomerID": 10929074,
"FirstName": "Steven",
"LastName": "Smith",
"Email": "mail@gmail.com"
},
"Transaction": {
"CrmTransactionID": 11671111,
"GatewayTransactionID": "61698911111",
"CrmType": "signup",
"GatewayType": "sale",
"Response": "declined",
"ResponseText": "This transaction has been declined.",
"DateEnteredUtc": "2019-04-30T04:48:10.7569932Z"
},
"Products": [
{
"Amount": 24.98,
"Quantity": 1,
"TotalAmount": 24.98,
"Name": "Product Name",
"Tax": 0,
"IsShippable": false,
"GatewayProductKey": null
}
]
}
RecurringDeactivated payload example:
{
"EventType": "RecurringDeactivated",
"Cause": "ManualCancel",
"SiteID": 1001234,
"CustomerID": 10961111,
"FirstName": "Winnie",
"LastName": "Pooh",
"Address1": "8 rue Street Address",
"Address2": null,
"Email": "test@hotmail.fr",
"Phone": "0668531111",
"Zipcode": "82000",
"State": "82",
"CountryISO": "FR",
"DeactivatedRecurrings": [
{
"RecurringID": 1578202
}
],
"CustomerRecurrings": [
{
"RecurringID": 1578111,
"Amount": 96.99,
"Product": "Product Name Recurring",
"IsActive": true
},
{
"RecurringID": 1578222,
"Amount": 95.99,
"Product": "Product Name 2 Recurring",
"IsActive": true
}
]
}
Request arguments
| Event | Description |
|---|---|
RmaCreated |
Each time a new RMA is created in a customer’s account, we will immediately send information about it in a RmaCreated event. |
TransactionCreated |
Each time a new transaction is created in a customer’s account, we will immediately send information about it in a TransactionCreated event. |
RecurringDeactivated |
Triggered each time a recurring is deactivated |
RecurringDeactivated Event Cause
| Event | Description |
|---|---|
MarkBlacklist |
Marked as blacklisted in customer’s profile |
MarkCancelled |
Marked as cancelled in customer’s profile |
MarkChargeback |
Marked as chargeback in customer’s profile |
Chargeback |
When chargeback added |
Rma |
When RMA added |
Decline |
On transaction decline |
ManualCancel |
Manually marked as deactivated in customer’s profile |
ContinuityReport |
Deactivated on bulk update in continuity report |
OpenApiCancel |
Deactivated using OpenAPI call |
OpenApiEdit |
Deactivated using OpenAPI call |
OpenApiCancelCustomer |
Deactivated using OpenAPI call |
Misc
GET Check BIN
Definition
GET https://openapi.admoji.com/api/v2/open/check-bin/:cardbin
Request Example
$ curl -X GET 'https://openapi.admoji.com/api/v2/open/check-bin/374455' \
-H "Authorization: ApiKey secret_492796e421a34666a5695d53cd311111"
Response Example
{
"Status": 0,
"Bin": {
"Bin": 374455,
"Brand": "AMERICAN EXPRESS",
"Bank": "BANK OF AMERICA",
"Type": "CREDIT",
"Category": "PERSONAL PLATINUM REVOLVE",
"IsoCountry": "UNITED STATES",
"Isoa2": "US",
"Isoa3": "USA",
"Isonumber": 840,
"Www": "HTTP://WWW.BANKOFAMERICA.COM/",
"Phone": "18778335617"
}
}
Check credit card BIN
Request arguments
| Parameter | Type | Description |
|---|---|---|
cardbinRequired |
int |
First 6 digits of the credit card number |
Response Codes
Status codes
| Status | Description |
|---|---|
0 |
Sucessful API call |
1 |
Validation Error. See error description in ErrorMessage field |
2 |
Internal server error |
Transaction codes
| Response | Description |
|---|---|
1 |
Approved |
2 |
Declined |
3 |
Gateway Error |
Public PGP Key
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQGNBGD92jUBDADPrxlKtEfkdbnMQ8wbrG5LdF1RcuYdwRufe1zJ5JJLoNYiDRdH
E65kbkft4z+ja7tDdorwDvayzGvcmgCLCe6DhIa2h0yszgrHnCquspIegIT7kSIz
bmgV41xZGLnC+dnG+Gg+u0tINsxg8ToP1DlQvvQTlmUDkUSj4Yafdr15GSFWSLkm
yTBNRdc6Il5EZgQRToq9qQS6iSuVlxxRbhZEydlZGHInRI9zFhyFky0NLRZJBI3k
v7dtx5WxUBEEmexWWbwVAxsjlZ6A+tM5xobyCvRhWwy4vVy9vhSmeUtvjMRUQ1qH
dCM3g1VzyuQ5+J9jLyN4x7yAsTyz2dKXs9n0weLPyU4o5znU0dhEe1ZYznumtGSr
S+L7ZZA08rNUEWspMaPQKx3QrCkym4delcy3YnhEGM0HwphZ5cHFZ3aMMhdPjSQM
a2RgzcC7hC4W0s5dAZ3bLLKCM8jg6uM4hQ+tKxYg9V38lT4sNgtFQet2MTaVokxK
al70goX0Fvoyk1sAEQEAAbQlUmVzcG9uc2VDUk0gPHN1cHBvcnRAcmVzcG9uc2Vj
cm0uY29tPokBzgQTAQoAOBYhBCbteyHGHAut2nQGO4a5ChCw9FvMBQJg/do1AhsD
BQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEIa5ChCw9FvMJFgL/2sdgmlNj67L
OIHT8UqrYOEKbxFlc4lc+Ul6QaUD9UOTxeo8xPGMp34829TWXXSMze6IKPM4DgVs
fY/lqUz3AUWZ/eTlxNJWw16pFeKhyrcBhFtoSXJIzVylNR+DFYFyNyXxL57bhQhK
F5iD8YqeVs+/nUxi23yqnCaewscLh0oYImnpLBzRhJtgp6r+t5ihpS/fIAIW6PnI
Y2g71FZAvVocFMvad79nR3PkzaYd4crG9RrufB8nEJl1fuCJewPOVhT1/QNCc84/
fh55fphnPCDotELsJ160PHw1ENGsvYQtLAnw47946eTyo9cRHbJagcgOv/ov7Wp0
+UtqMkOPXB8wSMgPQrSRYRT2nFZ/88kMOQDU89Bbxi7vGeQTM0cLqt0361sXYdN7
7EhAcQzX5A0ABy0EHLgosXI53Rt9UR4t2I3KelHNdYYp7Jmqbn+SoaQdb1lmqxqa
fBA+DvDdlWcVQusjRAwM75VrTYPg6i72rpsVVtagXKipbbFEybCOSLkBjQRg/do1
AQwArNnw9IBLk1Vk/+WMy0pbsd8Jj5bOqjn4H3Q9iZU4Xjs6m3sPX8FHukUheVCj
DMxs7ffZm9vM3rPsx34K3mCnH4IY9FRWutrVs+RwHF/ONgdLs5tFzMwlZiH1EN5v
PvGsohWFu769sz9dgti0aObyGaKgFPWj6aKCLRViacDq+AJhSWTMoQf9o+6Vxmso
jrZKUo3nfs54OVhURu/1ASSwlzz19nnfj9ApV6cJLYCNlgemA87FaH6rv1j+jdio
uoin3KFmPJxxHXoQn7PqsYpVtHKq33x6KCnqkjJAiPWtBBLF3G/cdktUQYEHTdzN
MyyF7+45GIAn7noDu8zCS+/i6/0711dAl0dGaYh16cApAyRbQ8sPnJCXojOM6tUo
2TUqi62ivTalPdB5VYcp/0yzCtQMfDdBgJeCx+buNOMAXHqN56IaT8pFGGHD+ujl
WgNM2H+LUVzDUEGIM1W5jjQ3CalZl0t+ig3R1eHJiJcY9NQItt6RG96GExo8i5fw
MWfxABEBAAGJAbYEGAEKACAWIQQm7XshxhwLrdp0BjuGuQoQsPRbzAUCYP3aNQIb
DAAKCRCGuQoQsPRbzAVXDAC+uBhnY43tpXkmkLpnE50Hrno9Db4UqKC1boeCSdTv
pGyLOAgwoEm3ZT7bkTt/Rc87xiLYiuRyO02qdgXym5/wIvHy8Wm4tmCMN2E/ayOd
0whv3MLVX7BkorVlFgX9YUBk2ZKoMtoKhK2Fb9aT03WFrJaY29GaLqXK+ondmFFv
IPiqyrFr7zbvTXoRGSKtgWLRfVaidZQ63gN6y0krtHrlV+DG3oKmgRcUeXzWVZaP
O7tNwYdDlwlCb7J7Y7cXz0DpNmDNQx6o0P5Gn7MNgGq+W8WU3vy2Ydqh65bDkf7C
piJmdOcHKuWkeF313wFLUtZX5mSMr8zJX+AdhDvsIDU//YtEo1QZRa5WBBH0j/AM
QsQ2Mo1hQM642LuAmkBR55aFL7jA3QecVAf6NHOzEFletRdkx1lOqnFGHdta50dL
uQuTXtdcCanlTTPUD1ZkvTkij2ikMTDFrAtc4Bc93Je9976zDOj1LXi6AvfTFQjp
K2yeCjFtWyjyGj/SmTVT6l8=
=O1xO
-----END PGP PUBLIC KEY BLOCK-----
Examples
Example 1
Example 1
{
"Status":0,
"Transaction":{
"CustomerInfo":{
"FirstName":"DOUGLAS",
"LastName":"DOUGLAS1",
"ShippingAddress":"Cactus Ln",
"BillingAddress":"Cactus Ln",
"Phone":"6029311111",
"Email":"CX@NOEMAIL.COM"
},
"OrderInfo":{
"Products":[
{
"ProductName":"Product1",
"ProductAmount":2.95
}
],
"SalesTax":0.0,
"SubTotalAmount":2.95,
"ShippingAmount":0.0,
"TotalAmount":2.95,
"TransactionID":"ABC4011712623",
"CustomerID":9971370,
"Response":"1",
"ResponseText":"Approval",
"ProcessorID":1557
}
}
}
API call is successful.
Transaction approved by the gateway with response text: “Approval”.
Example 2
API call rejected with validation error.
Validation error described in ErrorMessage field and transaction did not hit the gateway.
Example 2
{
"Status":1,
"ErrorMessage":[
"The CCNumber field is not a valid credit card number."
]
}
Example 3
Example 3
{
"Status":0,
"Transaction":{
"CustomerInfo":{
"FirstName":"DOUGLAS",
"LastName":"DOUGLAS1",
"ShippingAddress":"Cactus Ln",
"BillingAddress":"Cactus Ln",
"Phone":"6029311111",
"Email":"CX@NOEMAIL.COM"
},
"OrderInfo":{
"Products":[
{
"ProductName":"Product1",
"ProductAmount":2.95
}
],
"SalesTax":0.0,
"SubTotalAmount":2.95,
"ShippingAmount":0.0,
"TotalAmount":2.95,
"TransactionID":"ABC4011712623",
"CustomerID":9971370,
"Response":"2",
"ResponseText":"Insufficient funds",
"ProcessorID":1557
}
}
}
API call is successful.
Transaction declined by the gateway with response text: “Insufficient funds”.