NAV Navbar
cURL

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

  1. Acquire Account ApiKey from the Account section (Settings > Account settings > API Keys tab) in the CRM
  2. Integrate add customer endpoint
  3. Integrate add signup transaction endpoint
  4. 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

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

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
Name
Required
string(50) Product name
Amount
Required
decimal Product price
ProductType
Required
string Product type. Valid values: signup, recurring
Sku
Optional
string(100) Product SKU
ExternalProductId
Optional
string(100) External product ID (e.g. WooCommerce product ID) used for idempotency
SiteId
Optional
int Site ID to associate the product with

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
ProductID
Required
int Product ID (in URL path)
Name
Required
string(50) Product name
Amount
Required
decimal Product price
ProductType
Required
string Product type. Valid values: signup, recurring
Sku
Optional
string(100) Product SKU
SiteId
Optional
int Site ID to associate the product with

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
ProductID
Required
int Product ID (in URL path)
Variants
Required
array Array of variant objects
Variant definition
Parameter Type Description
VariantName
Required
string(200) Display name (e.g. “Widget Pro - Red / Large”)
Combination
Required
string JSON-encoded array of attribute/option pairs: [{"Attribute":"Color","Option":"Red"}]
Price
Required
decimal Variant price
Sku
Optional
string(100) Variant SKU

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
ProductID
Required
int Product ID (in URL path)
Options
Required
array Array of option definition objects
Option definition
Parameter Type Description
Name
Required
string(100) Attribute name (e.g. “Color”, “Size”)
Options
Required
string JSON-encoded array of option values (e.g. ["Red","Blue","Green"])

Subscriptions

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
CustomerId
Required
int Customer ID
ProductId
Required
int Product ID
Amount
Required
decimal Recurring charge amount
BillingIntervalDays
Required
int Days between charges (e.g. 30 for monthly, 7 for weekly). Range: 1-3650
NextChargeDate
Required
datetime Next charge date in UTC
SiteId
Optional
int Site ID. Falls back to customer’s site, then first active site
TotalCycles
Optional
int Total charges to run. 0 = unlimited (default)
ProcessorId
Optional
int Processor ID for vaulted payment method
VaultToken
Optional
string(500) Gateway vault token (NMI CustomerVaultID, Stripe cus_xxx, etc.)
ExternalSubscriptionId
Optional
string(100) External subscription ID for idempotency (stored as WC-{id})

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
SubscriptionID
Required
int Subscription ID (in URL path)
Status
Optional
string New status. Valid values: active, cancelled, onhold
Amount
Optional
decimal New recurring amount
NextChargeDate
Optional
datetime New next charge date in UTC

Fulfillment

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

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

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
fulfillmentId
Required
int Fulfillment order ID (in URL path)

Customers

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 dateModifiedToUtc
Optional
int Timestamp in unix format (in seconds), e.g. 1490547296
customerID
Optional
int Customer ID
externalID
Optional
string External ID of customer (in another system)
customerIDafter
Optional
int Customer ID After
steptypes
Optional
string List of step types. Valid values are: inquiry, declined, buyer, all
types
Optional
string List of types. Valid values are: real, test, all
sort
Optional
string Sort direction. Valid values are: asc, desc

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
SiteID
Required
The SiteID the new customer will belong to
SessionID
Optional
Session ID returned from Add Click call
ExternalID
Optional
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
}

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
CustomerID
Required
The customer ID to update

Response Example

{
    "Status": 0
}

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
CustomerID
Required
The customer ID to query notes for.
Response arguments
Parameter Description
Type Note type. Possible values are: custom, refund, recurring, chargeback, confirmation, cancel, change

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
Note
Required
Note content
OrderID
Optional
Order ID

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
CustomerID
Required
CustomerID
Option
Required
enum Mark customer as chargeback or chargeback alert. Possible values are: cb, cbalert
GatewayTransactionID
Required
string Gateway Transaction ID to mark as chargeback
Note string Optional message to add to customer notes

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

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
CustomerID
Required
int CustomerID
PaymentInformation
Required
object Payment Information
Payment information definition
Parameter Description Description
CCNumber
Required
min(12) Credit Card Number
ExpMonth
Required
string(2) Expiration Month
ExpYear
Required
string(4) Expiration Year
NameOnCard
Required
string Name On Card
CVV
Required
string CVV
PaymentMethodToken
Optional
object Payment Token
Payment token definition
Parameter Description Description
Source
Required
string Possible values: ‘Stripe’
OneTimeCardToken
Required
string One-time card token obtained using js-plugin provided by the gateway (for example Stripe.js)

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
customerid
Required
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

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
CustomerID
Required
The customer ID to query recurrings for.
SignUpOrderID
Optional
Filter by initial signup order ID
SiteID
Optional
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.

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
CustomerIDs
Optional
Customers to update recurrings
RecurringID
Optional
Recurring ID (can be found using List Recurrings call). Either RecurringID or CustomerIDs must be specified
RecurringProductID
Optional
This ID you you can find in product configuration section as ProductID
NewValues
Required
Object containing new values
New Values definition
Parameter Type Description
Amount
Optional
decimal New amount
NextChargeDueDateUtc
Optional
unixtime New next charge due date in UTC timezone
PushDueDateDays
Optional
int Number of days to add to the current value
IsActive
Optional
bool New active status
ProductID
Optional
int New product id
Quantity
Optional
int New quantity
RecurringID
Optional
int New recurring ID
Cycles
Optional
int Number of billing cycles

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
CustomerID
Required
int Customer to update
RecurringIDs
Optional
array Recurrings to deactivate. Send null or empty to deactivate all customer recurrings

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
RecurringID
Required
int Recurring ID retrieved using List Recurrings call
Amount
Optional
decimal Change recurring amount

Orders

Most properties are self-explanatory

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
SessionID
Optional
uuid SessionID returned from the initial Add Click call
SiteID
Required if sessionId is null
int Site ID
IpAddress
Required if sessionId is null
string Must be a valid ipv4 or ipv6 format
RequestUri
Required 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)
PageType
Required
enum Possible values are: Presell, Lead, Checkout, Upsell1, Upsell2, Upsell3, Upsell4, Thankyou
AffiliateID
Optional
string Affiliate ID or code found in the Affiliate section of the CRM
UserClickID
Optional
string External click ID for tracking purposes

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
CustomerID
Required
int CustomerID
OrderID
Optional
int Order ID received from previously added approved signup request to tie together as a single order
IpAddress
Required
string Customer IP
BillingAddress
Required
object Billing Address
PaymentInformation
Required
object Payment Information
Products
Required
array Products
MerchantDefined
Optional
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
ExpMonth
Required
string(2) Expiration Month
ExpYear
Required
string(4) Expiration Year
CCNumber
Required
min(12) Credit Card Number
NameOnCard
Required
string Name On Card
CVV
Required
string CVV
ThreeDs
Optional
object 3DS v1 and v2 values
ThreeDsRecurring
Optional
object 3DS v1 and v2 values
AccountType
Optional
string Checking or Savings
AchAba
Optional
digits 9 digit ABA number Code only (routing number)
AchAccountNumber
Optional
digits 16 digit account number Code only
ProcessorID
Optional
int Force processor to use
GatewayOrderID
Optional
string External Order ID sent to gateway
PaymentMethodToken
Optional
object information for payments made using gateway generated token
ThreeDs Definition
Parameter Type Description
XID
Optional
string 3DS V1: XID Value
3DS V2: dsTransId value
CAVV
Optional
string 3DS V1: CAVV Value
3DS V2: authenticationValue value
ECI
Optional
string Electronic Commerce Indicator
Status
Optional
string Status
Version
Optional
string Version
Products definition
Parameter Type Description
ProductID
Required
int Product ID
VariantProductID
Optional
int Variant ID returned from the Create Variants call. Same ProductID can appear multiple times if each has a different VariantProductID
Amount
Optional
decimal Override amount. Auto-populated from variant if VariantProductID is set
Quantity
Optional
int Override quantity
IsPricePerPackage
Optional
bool Send true in case you want to override quantity, but you don’t want the order amount auto calculated
ShipAmount
Optional
decimal Override shipping costs (from product settings)
Sku
Optional
string Override SKU. Auto-populated from variant if VariantProductID is set
Options
Optional
array Array of variant option selections: [{"Variant":"Color","Option":"Red"}]
Token Definition
Parameter Type Description
Source
Required
string Gateway name which owns the token.
Possible values: GoDaddy, Stripe, Nmi, FluidpayCard, FluidpayGooglePay, FluidpayApplePay
OneTimeCardToken
Required
string Token generated by JS plugin provided by the gateway

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
OrderID
Required
int Order ID received in response from signup call

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
OrderID
Required
int Order ID
AmountToCharge
Optional
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
ProductID
Required
int Product ID
Amount
Optional
decimal Override amount
Quantity
Optional
int New quantity value for order position. If set to zero - position will be deleted from the order.

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

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
TransactionID
Required
Transaction ID
Amount
Optional
Amount to refund. Default is full amount
Type
Optional
Transaction Type. Valid values are: void, refund. Default is refund

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).

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
orderId
Required
int Order ID (in URL path)
ChargebackAmount
Optional
decimal Amount of the chargeback
ChargebackDate
Optional
datetime Date of chargeback in UTC
ChargebackReasonCode
Optional
string Chargeback reason code
ChargebackType
Optional
string Type of chargeback. Valid values: first_chargeback, second_chargeback, chargeback_reversal, pre_arbitration

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
orderId
Required
int Order ID (in URL path)

Processors

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",
}

  1. Make sure your site has Square Processor selected in site configuration

  2. 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

  3. Call Add Customer as described in the documentation

  4. Send SquareCardNonce received from Square Payment Form API in Add Signup Transaction call

  5. Subsequent transactions for the customer do not require any additional parameters

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”

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"
    }
}
  1. Add Customer as described in the documentation
  2. On checkout page call /sezzle/create-checkout endpoint to create Sezzle checkout URL.
  3. Redirect customer using link received in API response.
  4. Once approved or canceled customer will be redirected to either CompleteUrl or CancelUrl specified in Step 2.

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"
    }
}
  1. Add Customer as described in the documentation
  2. On checkout page call /payments/flopay endpoint to create Flopay payment URL.
  3. Redirect customer using link received in API response.
  4. 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

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

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

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

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
Event
Required
The event type name. Valid values: RmaCreated, TransactionCreated, RecurringDeactivated
PayloadURL
Required
The URL we will send notifications to.
SiteID
Optional
If no SiteID provided webhook becomes global on an account

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.

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

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.

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
webhookid
Required
The webhook to list posted events.

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

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
cardbin
Required
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

Download

-----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”.