Download OpenAPI specification:Download
This API utilizes robust key/value pairs for flexibility. To make transport easier, all pairs are comprised of strings.
Many operations allow a variety of key value pair parameters in order to perform the given action. All key and values are strings. Even numeric amounts or counts are sent as strings. Response parameter key and values are also strings.
Empty values (key=""
) are different than omitting a key entirely. Only in very
specific situations should an empty value be sent.
An empty value is a valid value. For example, when setting user or merchant parameters empty means clear that parameter. Whereas omitting means do not change. The only time sending an empty value is valid is when intending to clear a stored value.
For a transaction, sending zip=""
will result in zip code evaluation and will result
in an AVS failure. Due to the zip being present but ""
not matching the customers
zip code on file with the issuer. Omitting zip
entirely will not perform AVS
verification.
Amounts should always be above 0. A value of $0.00 for amount
, tax
, examount
and
other monetary parameters should be considered invalid. For example, tax=0.00
indicates
the transaction is taxable and but the merchant has opted not to collect tax. This can
cause problems for the merchant because it indicates the merchant is not collecting
sales tax as required by law. This can result in higher interchange fees.
Some actions allow custom parameters that are not defined by the API. These parameters
are defined by the group or merchant. They can not be documented due to this. Operations
that allow customer parameters are marked with property
. For example in schema it will
be listed as property name*
. In examples it may be listed as property1
, property2
and so forth.
property*
is not itself a parameter and should not be sent. It is an indicator that custom
parameters that are undocumented are supported by a given operation.
Payload Samples are examples of parameters that could be sent with the operation. They are not meant to be copy and paste payloads.
cURL Examples are copy and paste examples. However, they may need to be modified slightly.
Specifically if they are referencing other data in the system. For example, ttid
,
order_id
, or token
. These may not existing in the test account and are placeholder
values that would need to be replaces with real values from the test account.
Internally, all keys are a flat list and are not hierarchical. Throughout the documentation, parameters may be grouped together under a named object. The object name is not evaluated when processing the request. All key/value pairs are moved to the top level.
Parameter grouping is present simply to make it easier to understand the relationship between parameters. The parameters themselves do not need to be part of the documented object they may be under.
With ReST HTTP response codes are used to determine the outcome of an operation.
For financial transactions 200
means approved, 402
means declined by the processor,
issuer, or Monetra based on merchant configuration (for example, fraud detection rules).
A code other than these indicates a decline by Monetra.
The code
, msoft_code
and phard_code
response keys can be used to obtain
more information about an operation's result.
code
is the overall disposition of the transaction. This is reflected in the http response code
when using ReST. code
may not always be present in a response. For example, a report will not
return code
and instead the report data. It is not wrong for an integration to check code
it
is typically used by non-ReST integrations that do not have something like an HTTP response code.
For example, libMonetra uses code
and for reports the presence of CSV, JSON, or bulk data to
determine the disposition of the operation.
msoft_code
is an internal code for Monetra. It can be determined if a decline is from
Monetra if msoft_code
is anything other than SUCCESS
.
When a transaction goes online to a processor a phard_code
will be returned in the response.
A phard_code
is the response reason from the processor. When this is anything other than SUCCESS
the processor has returned a decline. Either from themselves or from the issue.
Reports will not include code
on success. The HTTP response code needs to be used to determine if the report
was successful. If the not sucessfull (any repsonse other than 200) key value pairs will be returend instead of
the report output. The following two keys will always be returned but additonal can appear too.
code
verbiage
Specific reports, ones where an id is specified to get information about a specific entry, will also not
return code
. code
could be reservered for the report and thus may have a different meaning than the
action disposition.
libMonetra also does not return code
when generating reports. Due to libMonetra not using HTTP an
HTTP resposne code cannot be returned. In this situation success can be determiend by the presence of
CSV (or JSON) data. Otherwise, if key value pairs are present, there was a failure.
A value denoting a time can take on one of two different types:
Formatted times can either be a fixed time or based on an offset. The time zone for the date is the merchant's timezone.
Fixed formats are very similar to written dates and times.
Formats:
Offsets take this format:
+ or -
magnitude
space
modifier
Modifiers:
+1 day
-5 years
now
- current date/timeepoch
- Unix timestamp of 0 = Jan 1, 1970 00:00:00 UTCBOD
- Beginning of the current dayEOD
- End of the current dayAny keys that end with _ts
, such as last_modified_ts
, are a Unix timestamp.
A Unix timestamp is the number of seconds since Jan 1, 1970 00:00:00 UTC.
That date and time is called the "epoch", and its value is 0.
Unix timestamps are always in UTC time and do not have a time zone.
A test server with a public test account is provided to help integrators quickly get started.
Server: https://testbox.monetra.com
Username: test_retail:public
Password: publ1ct3st
If a private test account is needed please contact us.
API Keys and HTTP Basic authentication are currently supported.
An API key ID and secret need to be generated to use API keys.
The Monetra username and password for the account setup to run transactions is used with the Basic authentication method.
API keys are composed of two parts. A public key id and a private key secret. The key secret must be protected by the integrator. Keys can represent a user or profile. It is recommended to create a profile key for unattended POS systems so the keys are not invalided if a user leaves.
These allow users to disassociate their username and password from authentication. They will be able to manage and revoke keys in case an application (POS) is compromised. Also, integrated applications will be able to request a key instead of storing the user's username and password. Finally, the POST protocol will use this key instead of the user's password for HMAC.
API Key information is passed in the following headers when using ReST:
X-API-KEY-ID: <key id>
X-API-KEY: <key secret>
If using the libmonetra key value pair protocol, api keys use these fields:
auth_apikey_id
auth_apikey_secret
import urllib.request
import base64
URL = 'https://testbox.monetra.com/api/v2/report/failed'
KEY_ID = 'P0055817F457C3AFE'
KEY_SECRET = 'bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
headers = {
'X-API-KEY-ID': KEY_ID,
'X-API-KEY': KEY_SECRET,
}
req = urllib.request.Request(URL, headers=headers)
with urllib.request.urlopen(req) as o:
print(o.read().decode('utf-8'))
using System;
using System.IO;
using System.Net;
using System.Text;
class AuthExample
{
static void Main(string[] args)
{
var url = "https://testbox.monetra.com/api/v2/report/failed";
var key_id = "P0055817F457C3AFE";
var key_secret = "bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=";
// var json = 'json data to post'
ServicePointManager.Expect100Continue = false;
ServicePointManager.UseNagleAlgorithm = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
var request = WebRequest.Create(url);
request.Method = "GET";
request.Headers.Add("X-API-KEY-ID", key_id);
request.Headers.Add("X-API-KEY", key_secret);
// # For POST
// request.ContentType = "application/json";
// # 'json' contains data to post
// request.ContentLength = json.Length;
// Stream requestStream = request.GetRequestStream();
// requestStream.Write(Encoding.ASCII.GetBytes(json), 0, json.Length);
// requestStream.Close();
using (var response = (HttpWebResponse)request.GetResponse()) {
Console.WriteLine(response.StatusDescription);
using (var dataStream = response.GetResponseStream()) {
using (var reader = new StreamReader(dataStream)) {
Console.WriteLine(reader.ReadToEnd());
}
}
}
}
}
<?php
$url = "https://testbox.monetra.com/api/v2/report/failed";
$key_id = "P0055817F457C3AFE";
$key_secret = "bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=";
$opts = array(
"http"=>array(
"method"=>"GET",
"header" => "X-API-KEY-ID:" . $key_id . "\r\n" . "X-API-KEY: " . $key_secret . "\r\n"
),
);
$context = stream_context_create($opts);
$file = file_get_contents($url, false, $context);
echo $file;
?>
HTTP Basic Authentication involves sending the Authorization
HTTP header with the
type Basic
and the base64 encoded username:password
.
E.g.
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
If the authorization data is not present the response code 401 and
WWW-Authenticate
header is returned in the response indicating the
authentication that must be used.
WWW-Authenticate: Basic realm="Payment Server Resource"
Basic auth does not allow colons (':') to be present in usernames. However, it's valid for usernames to have been created with a colon (':'). If colons (':') are present they need to be replaced with a pipe ('|').
user:sub -> user|sub
For example, take the username test_retail:public
and a password of
publ1ct3st
. Therefore, the username must be transformed to
test_retail|public
, resulting in basic authentication data to be encoded of
test_retail|public:publ1ct3st
. The resulting Authentication header data
would be Authorization: Basic dGVzdF9yZXRhaWx8cHVibGljOnB1YmwxY3Qzc3Q=
We do not recommend using most programming language's built-in credential
management APIs. Such as .Net's HTTPPasswordMgrWithDefaultRealm
with
a HTTPBasicAuthHandler
object. Or Python's NetworkCredential
with the
CredentialCache
. Instead we recommend sending the authorization data
directly/explicitly in the request header.
Using the language API credential management can increase the transaction processing time. Many language APIs will first send the request without authorization data. The server will respond with a 401 authorization data required response. The request will be sent a second time with the authorization data. The extra request that is known to fail adds additional and unnecessary, messaging which increases request processing time.
import urllib.request
import base64
URL = 'https://testbox.monetra.com/api/v2/report/failed'
USER = 'test_retail'
PASS = 'publ1ct3st'
auth_data = '%s:%s' % (USER, PASS)
auth_data = base64.b64encode(auth_data.encode()).decode('utf-8')
headers = {
'Authorization': 'Basic %s' % auth_data
}
req = urllib.request.Request(URL, headers=headers)
with urllib.request.urlopen(req) as o:
print(o.read().decode('utf-8'))
using System;
using System.IO;
using System.Net;
using System.Text;
class AuthExample
{
static void Main(string[] args)
{
var url = "https://testbox.monetra.com/api/v2/report/failed";
var username = "test_retail";
var password = "publ1ct3st";
var authData = System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(username + ":" + password));
// var json = 'json data to post'
ServicePointManager.Expect100Continue = false;
ServicePointManager.UseNagleAlgorithm = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
var request = WebRequest.Create(url);
request.Method = "GET";
request.Headers.Add("Authorization", "Basic " + authData);
// # For POST
// request.ContentType = "application/json";
// # 'json' contains data to post
// request.ContentLength = json.Length;
// Stream requestStream = request.GetRequestStream();
// requestStream.Write(Encoding.ASCII.GetBytes(json), 0, json.Length);
// requestStream.Close();
using (var response = (HttpWebResponse)request.GetResponse()) {
Console.WriteLine(response.StatusDescription);
using (var dataStream = response.GetResponseStream()) {
using (var reader = new StreamReader(dataStream)) {
Console.WriteLine(reader.ReadToEnd());
}
}
}
}
}
<?php
$url = "https://testbox.monetra.com/api/v2/report/failed";
$username = "test_retail";
$password = "publ1ct3st";
$opts = array(
"http"=>array(
"method"=>"GET",
"header" => "Authorization: Basic " . base64_encode("$username:$password")
),
);
$context = stream_context_create($opts);
$file = file_get_contents($url, false, $context);
echo $file;
?>
Dual authentication requires two user's to authorize the action to take place. Dual authentication requires the username, and password for each user. API keys cannot be used. Additionally if MFA is enabled for a user, the MFA code must be sent. MFA cookies cannot be used.
With the LibMonetra protocol the keys user
and pwd
are used to specify
the authentication information for the dual control user. For REST
the dual user's username and password is encoded using HTTP Basic authorization
and placed in the X-DUAL-Authorization
header. E.g. X-DUAL-Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
.
For the MFA code in the LibMonetra protocol it is placed in the mfa_code_dual
key.
For REST the MFA code is placed in the X-DUAL-MFA-CODE
header.
The users must be different.
When Multi Factor Authentication is in use the mfa_code
needs to be sent
with the request. With the LibMonetra protocol it would be placed in
the mfa_code
key value pair. For REST it cannot be sent here due to GET
actions not having a body.
Instead the MFA code needs to be sent in the header X-MFA-CODE
. Where
the value is the MFA code.
MFA supports MFA "cookies" which allow a long lived code to be cached and reused. See "Generate Multi Factor Authentication Cookie" for additional information.
Gift routes will use the default bin range for the provider. However, merchants may have cards that fall into a different bin range. It is possible to define a custom bin range to handle these situations.
BIN ranges are specified using a formula that details exactly what values are allowed. An individual range is specified using this formula:
min_prefix[-max_prefix][:min_len[-max_len][:cardtype[:pclevel]]]
Multiple ranges are joined together with semicolons (;).
Format | Req | Spec | Description |
---|---|---|---|
min_prefix | Y | N | Minimum prefix that the account number must start with |
max_prefix | O | NS | Maximum prefix that the account number can start with. Must be the same number of digits as min_prefix . |
min_len | O | N | Minimum number of digits the account number must have |
max_len | O | NS | Maximum number of digits the account number can have |
cardtype | O | A | Card type to match |
pclevel | O | N | Card level to match. Note that the range is from 0 to 2. |
Example ranges:
Range | Meaning |
---|---|
30 | Match all accounts that start with 30 |
30-33 | Match all accounts that start with a value between 30 and 33 |
30-33:15 | Match all accounts that start with a value between 30 and 33 and are exactly 15 digits long |
30-33:15-18 | Match all accounts that start with a value between 30 and 33 and are between 15 and 18 digits long |
30-33:15-18:DISC | Match only Discover cards that start with a value between 30 and 33 and are between 15 and 18 digits long |
0-9::VISA:2 | Match only Visa Purchase cards |
4;30-33:15-18:DISC | Match any account that starts with 4 and Discover cards that start with a value between 30 and 33 and are between 15 and 18 digits long |
0-9::VISA:2;0-9::MC:2 | Match only Visa and Mastercard Purchase cards |
Interchange fees are transaction processing fees that are typically a percentage of the transaction amount. These fees are set by the card brands and are separate from provider (gateway, processor, POS, other services, etc) fees.
Interchange rates are typically disclosed as a percentage range and vary between brands. Some providers will offer a "blended rate" which is a flat rate for all transactions across all brands. This is can be advantageous because merchants will have a known cost for every transaction. However, the blended rate typically works out to be higher than a non-blended rate. Due to the blended rate typically having a higher average cost to facilitate the provider offering the service.
Interchange rates are calculated using a number of factors. Some examples of which are:
Some data is only used for interchange in some situations. For example, zip code will impact interchange rates for card not present transaction but should not for card present. Level 2 and level 3 data will only impact rates of the card is level 2 or level 3 capable.
Additionally, rates could be impacted by use of other services that are related to the transaction. In e-commerce use of 3D Secure data from a 3D Secure provider could impact interchange rates. However, 3D Secure services themselves have a fee.
Interchange rates can only be calculated on a per transaction basis due to the large number of factors that go into calculating the rate for a specific transaction. There is no way to know beforehand and it is difficult to estimate costs. It is typically recommended that merchants use the maximum possible interchange cost for instal calculations and use historic fee amounts after in order to estimate general interchange costs.
Note, this is an API guide and not an interchange qualification guide. It does not cover in detail how and when certain API fields will impact interchange rates. Questions regarding actual interchange fees should be directed to the merchant's processor.
Modifies transaction data
This allows adding or modifying transaction parameters after authorization.
Not all parameters are required or known at the time of authorization, and some might change after the authorization is approved. For example, in E-commerce, the customer might change their shipping zip code.
This action can also edit fields that affect interchange rates (e.g tax, rate, and bdate/edate). If an interchange parameter was not known at time of authorization but is required for settlement the transaction can be modified to add this data. Also, if the parameter was sent during authorization but was not the final value, it can be updated with the final value. For example, adding a tip after the fact to a transaction if it was not sent during authorization. Or changing the tip amount after authorization.
This process will only affect those transactions that are currently unsettled.
It should be used with captured transactions. This should not be used with
preauth
s that have not been completed. Those transactions should be adjusted
when issuing the corresponding preauthcomplete
.
When dealing with changes to amounts, it is typically better to use a preauth
and preauthcomplete
instead of adjusting a sale
. WorldPay's 610 platform is
a special case where it is better to use sale
and adjust
.
libmonetra KVS equivalent for endpoint
action_trans
= adjust
ttid required | string Example: 96748596765467 Transaction identifier |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
object Monetary parameters | |
object Lodging parameters | |
object Order detail parameters | |
object Shipping detail parameters | |
object Merchant lane parameters | |
property name* additional property | string |
{- "profile_id": "78965743785967",
- "money": {
- "amount": "19.92",
- "cashbackamount": "20.00",
- "currency": "124",
- "examount": "0.33",
- "surchargeamount": "1.25",
- "tax": "1.29",
- "discountamount": "100.00",
- "dutyamount": "5.07",
- "freightamount": "225.82",
- "convenience_fee": "1.23",
- "supplemental_fee": "1.23"
}, - "lodging": {
- "advancedeposit": "no",
- "noshow": "yes",
- "bdate": "now",
- "edate": "+3 days",
- "excharges": "GIFT|MINI",
- "rate": "12.00",
- "roomnum": "5143"
}, - "order": {
- "custref": "55",
- "ordernum": "A13DDES345",
- "order_id": "7654323456"
}, - "shipping": {
- "shipcountry": "840",
- "shipzip": "32789"
}, - "lane": {
- "clerkid": "Doe-1553",
- "stationid": "7",
- "laneid": "4",
- "comments": "Extra beef",
- "divisionnum": "PAYROLL"
}, - "property1": "string",
- "property2": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "phard_code": "SUCCESS",
- "card_currency": "840",
- "card_cardclass": "CREDIT",
- "card_cardlevel": "V^",
- "card_country_code": "840",
- "card_debit_network": "19N|14N",
- "card_ebt_state": "HI",
- "card_fsa": "N",
- "card_funding_source": "CREDIT",
- "card_issuer_bank": "1st Bank of Money",
- "card_msr_cvm": "sig",
- "card_prepaid": "Y",
- "card_reloadable": "N",
- "card_signature_debit": "N",
- "card_token_card": "N",
- "rcpt_host_ts": "052422143743",
- "rcpt_entry_mode": "C",
- "rcpt_acct_type": "chequing",
- "rcpt_emv_cvm": "none",
- "rcpt_emv_pinbypass": "N",
- "rcpt_resp_code": "A00",
- "rcpt_issuer_resp_code": "00",
- "rcpt_emv_aid": "A0000000031010",
- "rcpt_emv_name": "Visa Credit",
- "rcpt_emv_tvr": "8080008000",
- "rcpt_emv_tsi": "6800",
- "rcpt_emv_actype": "ARQC",
- "rcpt_emv_ac": "D737017E33C78692",
- "rcpt_emv_form_factor": "05",
- "rcpt_custom": "Rec Num:002000089,Transid:940152939191917,VCode:1234",
- "rcpt_emv_iad": "06010A03A02000",
- "rcpt_emv_card_decline": "...",
- "printdata": "APPRoVED",
- "account": "XXXXXXXXXXXX1234",
- "cardtype": "VISA",
- "cardholdername": "John Doe",
- "language": "en",
- "pclevel": "0",
- "timestamp": "2022-05-24 15:06:13 -0400",
- "ttid": "96748596765467"
}
Removes a previously authorized transaction in real time
The hold from the authorization will be removed from the customer's account.
Some card brands allow partial reversals where only part of the hold, not the entire transaction, is removed. This is beneficial in some industries such as E-commerce where an order might be changed before the transaction is completed.
libmonetra KVS equivalent for endpoint
action_trans
= reversal
ttid required | string Example: 96748596765467 Transaction identifier |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
amount | string Example: amount=19.92 The final amount to be settled, NOT the amount to be reversed. |
curl -X DELETE 'https://testbox.monetra.com/api/v2/transaction/926573735405091' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "phard_code": "SUCCESS",
- "card_currency": "840",
- "card_cardclass": "CREDIT",
- "card_cardlevel": "V^",
- "card_country_code": "840",
- "card_debit_network": "19N|14N",
- "card_ebt_state": "HI",
- "card_fsa": "N",
- "card_funding_source": "CREDIT",
- "card_issuer_bank": "1st Bank of Money",
- "card_msr_cvm": "sig",
- "card_prepaid": "Y",
- "card_reloadable": "N",
- "card_signature_debit": "N",
- "card_token_card": "N",
- "rcpt_host_ts": "052422143743",
- "rcpt_entry_mode": "C",
- "rcpt_acct_type": "chequing",
- "rcpt_emv_cvm": "none",
- "rcpt_emv_pinbypass": "N",
- "rcpt_resp_code": "A00",
- "rcpt_issuer_resp_code": "00",
- "rcpt_emv_aid": "A0000000031010",
- "rcpt_emv_name": "Visa Credit",
- "rcpt_emv_tvr": "8080008000",
- "rcpt_emv_tsi": "6800",
- "rcpt_emv_actype": "ARQC",
- "rcpt_emv_ac": "D737017E33C78692",
- "rcpt_emv_form_factor": "05",
- "rcpt_custom": "Rec Num:002000089,Transid:940152939191917,VCode:1234",
- "rcpt_emv_iad": "06010A03A02000",
- "rcpt_emv_card_decline": "...",
- "printdata": "APPRoVED",
- "auth": "B2DAA3",
- "batch": "47",
- "issuer_decline": "Y",
- "item": "1245",
- "stan": "994532",
- "proc": "loopback",
- "account": "XXXXXXXXXXXX1234",
- "timestamp": "2022-05-24 15:06:13 -0400",
- "cardtype": "VISA",
- "cardholdername": "John Doe",
- "language": "en",
- "pclevel": "0",
- "ttid": "96748596765467"
}
Balance inquiry
Applies to:
libmonetra KVS equivalent for endpoint
action_trans
= balanceinq
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
object Account information parameters There are multiple ways to collect the customer's account information. These are the minimum fields required for each entry method.
Additional modifiers are also present which can provide information about how
the data was received. For example, Cards and phones can be tapped in which
case the ENCRYPTION Many of these can be sent encrypted when using an encrypting reader with
a supported encryption method. The Due to the difference in encrypted reader output and some formats being proprietary limited information about the encrypted account fields are provided. If it is necessary to directly send encrypted reader data to Monetra please contact support who can work with you and the device manufacturer on how to format the data for the relevant fields to a given device. | |
object Verification parameters | |
tokenize | string Default: "no" Enum: "yes" "no" Whether or not the account data should be tokenized as part of this request. Defaults to The token will be of type When enabled, by default, this will generate a new token. If Values:
|
matching_token | string Default: "no" Enum: "yes" "no" When paired with By default, every tokenization will generate a new token. Sending
Requires:
Values:
|
rcpt | string The A value of A value of All other values are key/value pairs indicating formatting configurations, separated by semicolons, as in this example:
Receipt configuration options:
|
rcpt_user_notes | string Arbitrary user-specified notes to include in the |
{- "profile_id": "78965743785967",
- "account_data": {
- "account": "5454545454545454",
- "cardshieldticket": "567865678987",
- "cardholdername": "John Doe",
- "cardpresent": "yes",
- "countrycode": "840",
- "e_account": "DEF5325DEA5678DB6",
- "e_datafield": "DE45AC529FDE35",
- "e_datafieldfmt": "account|expdate",
- "e_datafieldmasked": "5454********5454",
- "e_trackdata": "...",
- "e_id": "645FF245ED34CD5A",
- "expdate": "0129",
- "icc": "4F07A0000000031010500B564953412043524544495457134761739001010010D22122011143804400000F5A0847617390010100105F201A554154205553412F5465737420436172642030342020202020205F24032212315F280208405F2A0208405F2D02656E5F300202015F34010182021C008407A0000000031010950580800080009A031701059B0268009C01009F02060000000100009F03060000000000009F0607A00000000310109F0702FF009F0902008C9F100706010A03A020009F1101019F120B56697361204372656469749F1A0208409F1B04000000009F1E0838303338383535389F1F183131343338303434383930303030303030303030303030309F21030933379F2608D737017E33C786929F2701809F3303E0F8C89F34031F00029F3501229F360200E09F3704526F34219F3901059F4005F000F0F0019F4104000000039F530152",
- "rfid": "no",
- "token": "6789656783904467894",
- "trackdata": "%B4111111111111111^TEST CARD/VI^29121015432112345678?;4111111111111111=29121015432112345678?",
- "abaroute": "267084131",
- "checknum": "45678",
- "accounttype": "PERSONAL|CHECKING"
}, - "verification": {
- "cv": "123",
- "street": "1st St",
- "zip": "32606"
}, - "tokenize": "no",
- "matching_token": "yes",
- "rcpt": "yes",
- "rcpt_user_notes": "Review your order at http://..."
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "phard_code": "SUCCESS",
- "card_currency": "840",
- "card_cardclass": "CREDIT",
- "card_cardlevel": "V^",
- "card_country_code": "840",
- "card_debit_network": "19N|14N",
- "card_ebt_state": "HI",
- "card_fsa": "N",
- "card_funding_source": "CREDIT",
- "card_issuer_bank": "1st Bank of Money",
- "card_msr_cvm": "sig",
- "card_prepaid": "Y",
- "card_reloadable": "N",
- "card_signature_debit": "N",
- "card_token_card": "N",
- "rcpt_host_ts": "052422143743",
- "rcpt_entry_mode": "C",
- "rcpt_acct_type": "chequing",
- "rcpt_emv_cvm": "none",
- "rcpt_emv_pinbypass": "N",
- "rcpt_resp_code": "A00",
- "rcpt_issuer_resp_code": "00",
- "rcpt_emv_aid": "A0000000031010",
- "rcpt_emv_name": "Visa Credit",
- "rcpt_emv_tvr": "8080008000",
- "rcpt_emv_tsi": "6800",
- "rcpt_emv_actype": "ARQC",
- "rcpt_emv_ac": "D737017E33C78692",
- "rcpt_emv_form_factor": "05",
- "rcpt_custom": "Rec Num:002000089,Transid:940152939191917,VCode:1234",
- "rcpt_emv_iad": "06010A03A02000",
- "rcpt_emv_card_decline": "...",
- "printdata": "APPRoVED",
- "account": "XXXXXXXXXXXX1234",
- "cardtype": "VISA",
- "cardholdername": "John Doe",
- "language": "en",
- "pclevel": "0",
- "avs": "GOOD",
- "cv": "GOOD",
- "balance": "12.00",
- "timestamp": "2022-05-24 15:06:13 -0400",
- "token": "6789656783904467894"
}
Add an uncaptured sale to a batch
If a sale
was sent with capture=no
and approved, then a hold has been placed on
funds, but the transaction was not added to a batch and is not eligible for
settlement. This will add the uncaptured transaction to a batch and make it
eligible for settlement.
This is functionally equivalent to a preauthcomplete
, except that the
original transaction is a sale
instead of a preauth
.
In the vast majority of cases a preauth
and preauthcomplete
should be
used instead of sale
with capture=no
followed by the capture
action.
Only very specific MCCs need to use this functionality. Specifically,
businesses that need to hold transaction settlement but are unable to
use a preauth
for this purpose. Your merchant account provider should
have informed you if sale
with capture=no
is necessary instead of preauth
.
Using capture=no
outside of MCC's where it's required will not cause
processing errors. However, the amount should not be changed in this situation.
If its is acceptable to use this flow but using a preauth
and preauthcomplete
is encouraged because it provides more flexibility.
libmonetra KVS equivalent for endpoint
action_trans
= capture
ttid required | string Example: 96748596765467 Transaction identifier |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
priority | string Default: "normal" Enum: "low" "normal" "high" Processing priority. You should process large batches as priority low, so that any real-time transactions that come through will be processed immediately Values:
|
timeout | string\d+ Length of time in seconds transaction can sit in send queue before sending to the processor. This is a hint/estimate and not a hard value. |
rcpt | string The A value of A value of All other values are key/value pairs indicating formatting configurations, separated by semicolons, as in this example:
Receipt configuration options:
|
rcpt_user_notes | string Arbitrary user-specified notes to include in the |
property name* additional property | string |
{- "profile_id": "78965743785967",
- "priority": "normal",
- "timeout": "30",
- "rcpt": "yes",
- "rcpt_user_notes": "Review your order at http://...",
- "property1": "string",
- "property2": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "phard_code": "SUCCESS",
- "card_currency": "840",
- "card_cardclass": "CREDIT",
- "card_cardlevel": "V^",
- "card_country_code": "840",
- "card_debit_network": "19N|14N",
- "card_ebt_state": "HI",
- "card_fsa": "N",
- "card_funding_source": "CREDIT",
- "card_issuer_bank": "1st Bank of Money",
- "card_msr_cvm": "sig",
- "card_prepaid": "Y",
- "card_reloadable": "N",
- "card_signature_debit": "N",
- "card_token_card": "N",
- "rcpt_host_ts": "052422143743",
- "rcpt_entry_mode": "C",
- "rcpt_acct_type": "chequing",
- "rcpt_emv_cvm": "none",
- "rcpt_emv_pinbypass": "N",
- "rcpt_resp_code": "A00",
- "rcpt_issuer_resp_code": "00",
- "rcpt_emv_aid": "A0000000031010",
- "rcpt_emv_name": "Visa Credit",
- "rcpt_emv_tvr": "8080008000",
- "rcpt_emv_tsi": "6800",
- "rcpt_emv_actype": "ARQC",
- "rcpt_emv_ac": "D737017E33C78692",
- "rcpt_emv_form_factor": "05",
- "rcpt_custom": "Rec Num:002000089,Transid:940152939191917,VCode:1234",
- "rcpt_emv_iad": "06010A03A02000",
- "rcpt_emv_card_decline": "...",
- "printdata": "APPRoVED",
- "account": "XXXXXXXXXXXX1234",
- "cardtype": "VISA",
- "cardholdername": "John Doe",
- "language": "en",
- "pclevel": "0",
- "timestamp": "2022-05-24 15:06:13 -0400",
- "ttid": "96748596765467"
}
Run a new transaction as a Pre-Authorization by duplicating transaction data from a previous transaction
Any previous financial transaction where sensitive data has not been cleared can be duplicated. When duplicating a previous transaction, data from the referenced transaction will be used. Any parameter can be overridden/replaced. For example, specifying a new amount.", Places a hold on funds without capturing for settlement
This is functionally equivalent to a sale transaction with capture=no
. The
difference between sale
and preauth
is that a preauth
is split into two
parts. In both transactions, the transaction data is sent online through the
processor to the issuer. The issuer will approve or decline the transaction and
place a temporary hold on the amount. A sale
will add the transaction to a
batch and mark it eligible for settlement. A preauth
will not add the
transaction to a batch, and it will be marked as not-yet eligible for
settlement. A preauthcomplete
must be performed to add the transaction to a
batch and mark it as eligible for settlement.
The transaction amount can change between the preauth
and preauthcomplete
.
This should be used if the final amount is not known at the time of authorization.
For example, adding a tip. If the transaction amount is known and not subject to
change, a sale
should be used instead.
Some industries, such as E-commerce, necessitate the use of preauth
. When selling
physical goods, the final charge (settle) cannot take place until the goods are
shipped. If there is a short delay between taking payment and shipping, a
preauth
can be used to delay taking the funds from a customer's account.
You may need to work with your merchant account provider to determine whether
a sale
or preauth
is more appropriate for your business needs.
libmonetra KVS equivalent for endpoint
action_trans
= preauth
ttid required | string Example: 96748596765467 Identifier for transaction to duplicate |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
object Verification parameters | |
object Shipping detail parameters | |
object E-commerce parameters | |
object Healthcare parameters | |
object Lodging parameters | |
object Merchant descriptor parameters | |
object Merchant lane parameters | |
required | object Monetary parameters |
object Order detail parameters | |
object PIN data parameters | |
object Processing options | |
object Recurring group | |
nsf | string Enum: "yes" "no" Approve transactions even if there are non-sufficient funds (NSF). This will
result in a partial approval if there are not enough funds to cover the full
requested amount, in which case an Gift cards default to If a partial approval is received, it will automatically be reversed internally
and the returned decline will have Values:
|
tokenize | string Default: "no" Enum: "yes" "no" Whether or not the account data should be tokenized as part of this request. Defaults to The token will be of type When enabled, by default, this will generate a new token. If Values:
|
matching_token | string Default: "no" Enum: "yes" "no" When paired with By default, every tokenization will generate a new token. Sending
Requires:
Values:
|
carddenylist_check | string Enum: "yes" "no" Check the card deny list before going online for authorization If on the list, decline with The value Only the account number is used to determine if there is a match on the list. Other paramters, such as card holder name and card expiration date are not used. Values:
|
carddenylist_decline | string Enum: "yes" "no" Automatically add account to the card deny list if declined by the issuer Values:
|
rcpt | string The A value of A value of All other values are key/value pairs indicating formatting configurations, separated by semicolons, as in this example:
Receipt configuration options:
|
rcpt_user_notes | string Arbitrary user-specified notes to include in the |
property name* additional property | string |
{- "profile_id": "78965743785967",
- "verification": {
- "cv": "123",
- "street": "1st St",
- "zip": "32606"
}, - "shipping": {
- "shipcountry": "840",
- "shipzip": "32789"
}, - "ecomm": {
- "3ds_txnid": "F38E6948-5388-41A6-BCA4-B49723C19437",
- "cavv": "jDnAEsWLen9JARUAAAJXXNvNvKnnK14=",
- "xid": "1395",
- "goods": "physical",
- "cust_regdate": "2023-04-01"
}, - "health": {
- "healthcare": "no",
- "dentalamount": "1.76",
- "clinicamount": "1.75",
- "otheramount": "1.77",
- "rxamount": "1.78",
- "transitamount": "1.79",
- "visionamount": "1.80"
}, - "lodging": {
- "advancedeposit": "no",
- "noshow": "yes",
- "bdate": "now",
- "edate": "+3 days",
- "excharges": "GIFT|MINI",
- "rate": "12.00",
- "roomnum": "5143"
}, - "merchant_descriptors": {
- "descmerch": "Pizza Palace LLC",
- "descloc": "Store CA 543"
}, - "lane": {
- "clerkid": "Doe-1553",
- "stationid": "7",
- "laneid": "4",
- "comments": "Extra beef",
- "divisionnum": "PAYROLL"
}, - "money": {
- "amount": "19.92",
- "cashbackamount": "20.00",
- "currency": "124",
- "examount": "0.33",
- "surchargeamount": "1.25",
- "tax": "1.29",
- "discountamount": "100.00",
- "dutyamount": "5.07",
- "freightamount": "225.82",
- "convenience_fee": "1.23",
- "supplemental_fee": "1.23"
}, - "order": {
- "custref": "55",
- "ordernum": "A13DDES345",
- "order_id": "7654323456"
}, - "pin_data": {
- "ksn": "654321007CE00114",
- "pin": "AE86DE23D2276C3B"
}, - "processing_options": {
- "capture": "yes",
- "debtrepayment": "no",
- "duplcheck": "no",
- "priority": "normal",
- "timeout": "30"
}, - "recurring_data": {
- "cof_transid": "67898768",
- "cof_authamount": "99.24",
- "installment_num": "17",
- "installment_total": "149",
- "recurring": "recurring"
}, - "nsf": "yes",
- "tokenize": "no",
- "matching_token": "yes",
- "carddenylist_check": "no",
- "carddenylist_decline": "no",
- "rcpt": "yes",
- "rcpt_user_notes": "Review your order at http://...",
- "property1": "string",
- "property2": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "phard_code": "SUCCESS",
- "card_currency": "840",
- "card_cardclass": "CREDIT",
- "card_cardlevel": "V^",
- "card_country_code": "840",
- "card_debit_network": "19N|14N",
- "card_ebt_state": "HI",
- "card_fsa": "N",
- "card_funding_source": "CREDIT",
- "card_issuer_bank": "1st Bank of Money",
- "card_msr_cvm": "sig",
- "card_prepaid": "Y",
- "card_reloadable": "N",
- "card_signature_debit": "N",
- "card_token_card": "N",
- "rcpt_host_ts": "052422143743",
- "rcpt_entry_mode": "C",
- "rcpt_acct_type": "chequing",
- "rcpt_emv_cvm": "none",
- "rcpt_emv_pinbypass": "N",
- "rcpt_resp_code": "A00",
- "rcpt_issuer_resp_code": "00",
- "rcpt_emv_aid": "A0000000031010",
- "rcpt_emv_name": "Visa Credit",
- "rcpt_emv_tvr": "8080008000",
- "rcpt_emv_tsi": "6800",
- "rcpt_emv_actype": "ARQC",
- "rcpt_emv_ac": "D737017E33C78692",
- "rcpt_emv_form_factor": "05",
- "rcpt_custom": "Rec Num:002000089,Transid:940152939191917,VCode:1234",
- "rcpt_emv_iad": "06010A03A02000",
- "rcpt_emv_card_decline": "...",
- "printdata": "APPRoVED",
- "auth": "B2DAA3",
- "batch": "47",
- "issuer_decline": "Y",
- "item": "1245",
- "stan": "994532",
- "proc": "loopback",
- "authamount": "6.50",
- "balance": "12.00",
- "account": "XXXXXXXXXXXX1234",
- "cof_authamount": "19.22",
- "cof_transid": "930734056218579",
- "cardtype": "VISA",
- "cardholdername": "John Doe",
- "language": "en",
- "pclevel": "0",
- "avs": "GOOD",
- "cv": "GOOD",
- "timestamp": "2022-05-24 15:06:13 -0400",
- "token": "6789656783904467894",
- "carddenylist_id": "67898765",
- "ttid": "96748596765467"
}
Run a new transaction as a purchase by duplicating transaction data from a previous transaction
Any previous financial transaction where sensitive data has not been cleared can be duplicated.
When duplicating a previous transaction, data from the referenced transaction will be used. Any parameter can be overridden/replaced. For example, specifying a new amount.
The transaction amount is assumed to be the final transaction amount that will
be settled. If the transaction amount is subject to change, a preauth
transaction should be used instead.
libmonetra KVS equivalent for endpoint
action_trans
= sale
ttid required | string Example: 96748596765467 Identifier for transaction to duplicate |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
object Verification parameters | |
object Shipping detail parameters | |
object E-commerce parameters | |
object Healthcare parameters | |
object Lodging parameters | |
object Merchant descriptor parameters | |
object Merchant lane parameters | |
required | object Monetary parameters |
object Order detail parameters | |
object PIN data parameters | |
object Processing options | |
object Recurring group | |
nsf | string Enum: "yes" "no" Approve transactions even if there are non-sufficient funds (NSF). This will
result in a partial approval if there are not enough funds to cover the full
requested amount, in which case an Gift cards default to If a partial approval is received, it will automatically be reversed internally
and the returned decline will have Values:
|
tokenize | string Default: "no" Enum: "yes" "no" Whether or not the account data should be tokenized as part of this request. Defaults to The token will be of type When enabled, by default, this will generate a new token. If Values:
|
matching_token | string Default: "no" Enum: "yes" "no" When paired with By default, every tokenization will generate a new token. Sending
Requires:
Values:
|
carddenylist_check | string Enum: "yes" "no" Check the card deny list before going online for authorization If on the list, decline with The value Only the account number is used to determine if there is a match on the list. Other paramters, such as card holder name and card expiration date are not used. Values:
|
carddenylist_decline | string Enum: "yes" "no" Automatically add account to the card deny list if declined by the issuer Values:
|
rcpt | string The A value of A value of All other values are key/value pairs indicating formatting configurations, separated by semicolons, as in this example:
Receipt configuration options:
|
rcpt_user_notes | string Arbitrary user-specified notes to include in the |
property name* additional property | string |
{- "profile_id": "78965743785967",
- "verification": {
- "cv": "123",
- "street": "1st St",
- "zip": "32606"
}, - "shipping": {
- "shipcountry": "840",
- "shipzip": "32789"
}, - "ecomm": {
- "3ds_txnid": "F38E6948-5388-41A6-BCA4-B49723C19437",
- "cavv": "jDnAEsWLen9JARUAAAJXXNvNvKnnK14=",
- "xid": "1395",
- "goods": "physical",
- "cust_regdate": "2023-04-01"
}, - "health": {
- "healthcare": "no",
- "dentalamount": "1.76",
- "clinicamount": "1.75",
- "otheramount": "1.77",
- "rxamount": "1.78",
- "transitamount": "1.79",
- "visionamount": "1.80"
}, - "lodging": {
- "advancedeposit": "no",
- "noshow": "yes",
- "bdate": "now",
- "edate": "+3 days",
- "excharges": "GIFT|MINI",
- "rate": "12.00",
- "roomnum": "5143"
}, - "merchant_descriptors": {
- "descmerch": "Pizza Palace LLC",
- "descloc": "Store CA 543"
}, - "lane": {
- "clerkid": "Doe-1553",
- "stationid": "7",
- "laneid": "4",
- "comments": "Extra beef",
- "divisionnum": "PAYROLL"
}, - "money": {
- "amount": "19.92",
- "cashbackamount": "20.00",
- "currency": "124",
- "examount": "0.33",
- "surchargeamount": "1.25",
- "tax": "1.29",
- "discountamount": "100.00",
- "dutyamount": "5.07",
- "freightamount": "225.82",
- "convenience_fee": "1.23",
- "supplemental_fee": "1.23"
}, - "order": {
- "custref": "55",
- "ordernum": "A13DDES345",
- "order_id": "7654323456"
}, - "pin_data": {
- "ksn": "654321007CE00114",
- "pin": "AE86DE23D2276C3B"
}, - "processing_options": {
- "capture": "yes",
- "debtrepayment": "no",
- "duplcheck": "no",
- "priority": "normal",
- "timeout": "30"
}, - "recurring_data": {
- "cof_transid": "67898768",
- "cof_authamount": "99.24",
- "installment_num": "17",
- "installment_total": "149",
- "recurring": "recurring"
}, - "nsf": "yes",
- "tokenize": "no",
- "matching_token": "yes",
- "carddenylist_check": "no",
- "carddenylist_decline": "no",
- "rcpt": "yes",
- "rcpt_user_notes": "Review your order at http://...",
- "property1": "string",
- "property2": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "phard_code": "SUCCESS",
- "card_currency": "840",
- "card_cardclass": "CREDIT",
- "card_cardlevel": "V^",
- "card_country_code": "840",
- "card_debit_network": "19N|14N",
- "card_ebt_state": "HI",
- "card_fsa": "N",
- "card_funding_source": "CREDIT",
- "card_issuer_bank": "1st Bank of Money",
- "card_msr_cvm": "sig",
- "card_prepaid": "Y",
- "card_reloadable": "N",
- "card_signature_debit": "N",
- "card_token_card": "N",
- "rcpt_host_ts": "052422143743",
- "rcpt_entry_mode": "C",
- "rcpt_acct_type": "chequing",
- "rcpt_emv_cvm": "none",
- "rcpt_emv_pinbypass": "N",
- "rcpt_resp_code": "A00",
- "rcpt_issuer_resp_code": "00",
- "rcpt_emv_aid": "A0000000031010",
- "rcpt_emv_name": "Visa Credit",
- "rcpt_emv_tvr": "8080008000",
- "rcpt_emv_tsi": "6800",
- "rcpt_emv_actype": "ARQC",
- "rcpt_emv_ac": "D737017E33C78692",
- "rcpt_emv_form_factor": "05",
- "rcpt_custom": "Rec Num:002000089,Transid:940152939191917,VCode:1234",
- "rcpt_emv_iad": "06010A03A02000",
- "rcpt_emv_card_decline": "...",
- "printdata": "APPRoVED",
- "auth": "B2DAA3",
- "batch": "47",
- "issuer_decline": "Y",
- "item": "1245",
- "stan": "994532",
- "proc": "loopback",
- "authamount": "6.50",
- "balance": "12.00",
- "account": "XXXXXXXXXXXX1234",
- "cof_authamount": "19.22",
- "cof_transid": "930734056218579",
- "cardtype": "VISA",
- "cardholdername": "John Doe",
- "language": "en",
- "pclevel": "0",
- "avs": "GOOD",
- "cv": "GOOD",
- "timestamp": "2022-05-24 15:06:13 -0400",
- "token": "6789656783904467894",
- "carddenylist_id": "67898765",
- "ttid": "96748596765467"
}
Performs a real-time card type lookup against the system's current BIN table
The Card Type
request should be used when you need to know (in advance of a
financial request) what type of card is being presented. It is particularly
useful for integrated systems (such as POS or E-commerce) which do not maintain
their own internal BIN table(s).
Note: When a Global BIN file is configured, extended metadata may be returned. Any fields returned will be dependent on both relevance and/or if the particular field has been recorded on file.
libmonetra KVS equivalent for endpoint
action_trans
= cardtype
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
object Account information parameters There are multiple ways to collect the customer's account information. These are the minimum fields required for each entry method.
Additional modifiers are also present which can provide information about how
the data was received. For example, Cards and phones can be tapped in which
case the ENCRYPTION Many of these can be sent encrypted when using an encrypting reader with
a supported encryption method. The Due to the difference in encrypted reader output and some formats being proprietary limited information about the encrypted account fields are provided. If it is necessary to directly send encrypted reader data to Monetra please contact support who can work with you and the device manufacturer on how to format the data for the relevant fields to a given device. | |
tokenize | string Default: "no" Enum: "yes" "no" Whether or not the account data should be tokenized as part of this request. Defaults to The token will be of type When enabled, by default, this will generate a new token. If Values:
|
matching_token | string Default: "no" Enum: "yes" "no" When paired with By default, every tokenization will generate a new token. Sending
Requires:
Values:
|
{- "profile_id": "78965743785967",
- "account_data": {
- "account": "5454545454545454",
- "cardshieldticket": "567865678987",
- "cardholdername": "John Doe",
- "cardpresent": "yes",
- "countrycode": "840",
- "e_account": "DEF5325DEA5678DB6",
- "e_datafield": "DE45AC529FDE35",
- "e_datafieldfmt": "account|expdate",
- "e_datafieldmasked": "5454********5454",
- "e_trackdata": "...",
- "e_id": "645FF245ED34CD5A",
- "expdate": "0129",
- "icc": "4F07A0000000031010500B564953412043524544495457134761739001010010D22122011143804400000F5A0847617390010100105F201A554154205553412F5465737420436172642030342020202020205F24032212315F280208405F2A0208405F2D02656E5F300202015F34010182021C008407A0000000031010950580800080009A031701059B0268009C01009F02060000000100009F03060000000000009F0607A00000000310109F0702FF009F0902008C9F100706010A03A020009F1101019F120B56697361204372656469749F1A0208409F1B04000000009F1E0838303338383535389F1F183131343338303434383930303030303030303030303030309F21030933379F2608D737017E33C786929F2701809F3303E0F8C89F34031F00029F3501229F360200E09F3704526F34219F3901059F4005F000F0F0019F4104000000039F530152",
- "rfid": "no",
- "token": "6789656783904467894",
- "trackdata": "%B4111111111111111^TEST CARD/VI^29121015432112345678?;4111111111111111=29121015432112345678?",
- "abaroute": "267084131",
- "checknum": "45678",
- "accounttype": "PERSONAL|CHECKING"
}, - "tokenize": "no",
- "matching_token": "yes"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "card_currency": "840",
- "card_cardclass": "CREDIT",
- "card_cardlevel": "V^",
- "card_country_code": "840",
- "card_debit_network": "19N|14N",
- "card_ebt_state": "HI",
- "card_fsa": "N",
- "card_funding_source": "CREDIT",
- "card_issuer_bank": "1st Bank of Money",
- "card_msr_cvm": "sig",
- "card_prepaid": "Y",
- "card_reloadable": "N",
- "card_signature_debit": "N",
- "card_token_card": "N",
- "rcpt_host_ts": "052422143743",
- "rcpt_entry_mode": "C",
- "rcpt_acct_type": "chequing",
- "rcpt_emv_cvm": "none",
- "rcpt_emv_pinbypass": "N",
- "rcpt_resp_code": "A00",
- "rcpt_issuer_resp_code": "00",
- "rcpt_emv_aid": "A0000000031010",
- "rcpt_emv_name": "Visa Credit",
- "rcpt_emv_tvr": "8080008000",
- "rcpt_emv_tsi": "6800",
- "rcpt_emv_actype": "ARQC",
- "rcpt_emv_ac": "D737017E33C78692",
- "rcpt_emv_form_factor": "05",
- "rcpt_custom": "Rec Num:002000089,Transid:940152939191917,VCode:1234",
- "rcpt_emv_iad": "06010A03A02000",
- "rcpt_emv_card_decline": "...",
- "printdata": "APPRoVED",
- "account": "XXXXXXXXXXXX1234",
- "cardtype": "VISA",
- "cardholdername": "John Doe",
- "language": "en",
- "pclevel": "0",
- "timestamp": "2022-05-24 15:06:13 -0400",
- "token": "6789656783904467894"
}
Operation used to increase amount for an existing authorization
Monetra does not impose any restrictions on attempting an Incremental request. It will simply relay that onto the processing institution. Support across card brands is not uniform and some card brands impose restrictions. For example, the business MCC.
Historically incremental was used for the lodging industry and has support with Visa and MC for this industry. Other industries are supported, but again, use is based on card brand restrictions. The merchant needs to verify with the processor how they can use incremental industry for a given card type.
In the hotel industry, an example use is to add items charged to the room to an existing authorization. It is also used to extend the customer's stay. As well as other hotel specific conditions.
This should not be used instead of a preauth
in most cases. This is intended
for authorizations that are long lived. For example, a hotel stay where the
guest is charging items to their room. This operation will ensure the funds are
held on the guest's card until they check out and the authorization is
submitted for settlement.
This is specific for changing the amount and lodging stay. It differs from an
adjust
which allows changing multiple parameters. Also, an adjust may not be
an online operation and only modify parameters for settlement. An
incremental
is always online and, if successful, will increase the funds held
on the customer's card. An adjust
does not guarantee funds are available or
will be held for the new amount.
The transaction amount is assumed to be the final transaction amount that will be settled. This is inclusive of the increase and the original amount that has already been authorized.
libmonetra KVS equivalent for endpoint
action_trans
= incremental
ttid required | string Example: 96748596765467 Identifier for transaction to increase amount |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
amount required | string\d*(\.\d{0,2})? New total amount, not amount being added |
tax | string(?i)NT|\d*(\.\d{0,2})? Amount of tax that applies to the order The value 'NT' without the quotes indicates a non-taxable (tax exempt) transaction. |
nsf | string Enum: "yes" "no" Approve transactions even if there are non-sufficient funds (NSF). This will
result in a partial approval if there are not enough funds to cover the full
requested amount, in which case an Gift cards default to If a partial approval is received, it will automatically be reversed internally
and the returned decline will have Values:
|
object Lodging parameters | |
object Merchant descriptor parameters | |
object Merchant lane parameters | |
rcpt | string The A value of A value of All other values are key/value pairs indicating formatting configurations, separated by semicolons, as in this example:
Receipt configuration options:
|
rcpt_user_notes | string Arbitrary user-specified notes to include in the |
property name* additional property | string |
{- "profile_id": "78965743785967",
- "amount": "19.92",
- "tax": "1.29",
- "nsf": "yes",
- "lodging": {
- "advancedeposit": "no",
- "noshow": "yes",
- "bdate": "now",
- "edate": "+3 days",
- "excharges": "GIFT|MINI",
- "rate": "12.00",
- "roomnum": "5143"
}, - "merchant_descriptors": {
- "descmerch": "Pizza Palace LLC",
- "descloc": "Store CA 543"
}, - "lane": {
- "clerkid": "Doe-1553",
- "stationid": "7",
- "laneid": "4",
- "comments": "Extra beef",
- "divisionnum": "PAYROLL"
}, - "rcpt": "yes",
- "rcpt_user_notes": "Review your order at http://...",
- "property1": "string",
- "property2": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "phard_code": "SUCCESS",
- "card_currency": "840",
- "card_cardclass": "CREDIT",
- "card_cardlevel": "V^",
- "card_country_code": "840",
- "card_debit_network": "19N|14N",
- "card_ebt_state": "HI",
- "card_fsa": "N",
- "card_funding_source": "CREDIT",
- "card_issuer_bank": "1st Bank of Money",
- "card_msr_cvm": "sig",
- "card_prepaid": "Y",
- "card_reloadable": "N",
- "card_signature_debit": "N",
- "card_token_card": "N",
- "rcpt_host_ts": "052422143743",
- "rcpt_entry_mode": "C",
- "rcpt_acct_type": "chequing",
- "rcpt_emv_cvm": "none",
- "rcpt_emv_pinbypass": "N",
- "rcpt_resp_code": "A00",
- "rcpt_issuer_resp_code": "00",
- "rcpt_emv_aid": "A0000000031010",
- "rcpt_emv_name": "Visa Credit",
- "rcpt_emv_tvr": "8080008000",
- "rcpt_emv_tsi": "6800",
- "rcpt_emv_actype": "ARQC",
- "rcpt_emv_ac": "D737017E33C78692",
- "rcpt_emv_form_factor": "05",
- "rcpt_custom": "Rec Num:002000089,Transid:940152939191917,VCode:1234",
- "rcpt_emv_iad": "06010A03A02000",
- "rcpt_emv_card_decline": "...",
- "printdata": "APPRoVED",
- "auth": "B2DAA3",
- "batch": "47",
- "issuer_decline": "Y",
- "item": "1245",
- "stan": "994532",
- "proc": "loopback",
- "authamount": "6.50",
- "balance": "12.00",
- "account": "XXXXXXXXXXXX1234",
- "timestamp": "2022-05-24 15:06:13 -0400",
- "cardtype": "VISA",
- "cardholdername": "John Doe",
- "language": "en",
- "pclevel": "0",
- "ttid": "96748596765467"
}
Finalize a Pre-Authorization
Adds the transaction to a batch, and marks it as eligible for settlement.
libmonetra KVS equivalent for endpoint
action_trans
= preauthcomplete
ttid required | string Example: 96748596765467 Transaction identifier |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
object Shipping detail parameters | |
zip | string <= 32 characters Zip code for AVS verification. All Card Not Present transactions require this to avoid being 'downgraded' |
object Lodging parameters | |
object Merchant lane parameters | |
object Monetary parameters | |
object Order detail parameters | |
priority | string Default: "normal" Enum: "low" "normal" "high" Processing priority. You should process large batches as priority low, so that any real-time transactions that come through will be processed immediately Values:
|
timeout | string\d+ Length of time in seconds transaction can sit in send queue before sending to the processor. This is a hint/estimate and not a hard value. |
tokenize | string Default: "no" Enum: "yes" "no" Whether or not the account data should be tokenized as part of this request. Defaults to The token will be of type When enabled, by default, this will generate a new token. If Values:
|
matching_token | string Default: "no" Enum: "yes" "no" When paired with By default, every tokenization will generate a new token. Sending
Requires:
Values:
|
rcpt | string The A value of A value of All other values are key/value pairs indicating formatting configurations, separated by semicolons, as in this example:
Receipt configuration options:
|
rcpt_user_notes | string Arbitrary user-specified notes to include in the |
property name* additional property | string |
{- "profile_id": "78965743785967",
- "shipping": {
- "shipcountry": "840",
- "shipzip": "32789"
}, - "zip": "32606",
- "lodging": {
- "advancedeposit": "no",
- "noshow": "yes",
- "bdate": "now",
- "edate": "+3 days",
- "excharges": "GIFT|MINI",
- "rate": "12.00",
- "roomnum": "5143"
}, - "lane": {
- "clerkid": "Doe-1553",
- "stationid": "7",
- "laneid": "4",
- "comments": "Extra beef",
- "divisionnum": "PAYROLL"
}, - "money": {
- "amount": "19.92",
- "cashbackamount": "20.00",
- "currency": "124",
- "examount": "0.33",
- "surchargeamount": "1.25",
- "tax": "1.29",
- "discountamount": "100.00",
- "dutyamount": "5.07",
- "freightamount": "225.82",
- "convenience_fee": "1.23",
- "supplemental_fee": "1.23"
}, - "order": {
- "custref": "55",
- "ordernum": "A13DDES345",
- "order_id": "7654323456"
}, - "priority": "normal",
- "timeout": "30",
- "tokenize": "no",
- "matching_token": "yes",
- "rcpt": "yes",
- "rcpt_user_notes": "Review your order at http://...",
- "property1": "string",
- "property2": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "phard_code": "SUCCESS",
- "card_currency": "840",
- "card_cardclass": "CREDIT",
- "card_cardlevel": "V^",
- "card_country_code": "840",
- "card_debit_network": "19N|14N",
- "card_ebt_state": "HI",
- "card_fsa": "N",
- "card_funding_source": "CREDIT",
- "card_issuer_bank": "1st Bank of Money",
- "card_msr_cvm": "sig",
- "card_prepaid": "Y",
- "card_reloadable": "N",
- "card_signature_debit": "N",
- "card_token_card": "N",
- "account": "XXXXXXXXXXXX1234",
- "cardtype": "VISA",
- "cardholdername": "John Doe",
- "language": "en",
- "pclevel": "0",
- "rcpt_host_ts": "052422143743",
- "rcpt_entry_mode": "C",
- "rcpt_acct_type": "chequing",
- "rcpt_emv_cvm": "none",
- "rcpt_emv_pinbypass": "N",
- "rcpt_resp_code": "A00",
- "rcpt_issuer_resp_code": "00",
- "rcpt_emv_aid": "A0000000031010",
- "rcpt_emv_name": "Visa Credit",
- "rcpt_emv_tvr": "8080008000",
- "rcpt_emv_tsi": "6800",
- "rcpt_emv_actype": "ARQC",
- "rcpt_emv_ac": "D737017E33C78692",
- "rcpt_emv_form_factor": "05",
- "rcpt_custom": "Rec Num:002000089,Transid:940152939191917,VCode:1234",
- "rcpt_emv_iad": "06010A03A02000",
- "rcpt_emv_card_decline": "...",
- "printdata": "APPRoVED",
- "batch": "47",
- "item": "1245",
- "stan": "994532",
- "proc": "loopback",
- "authamount": "6.50",
- "cof_authamount": "19.22",
- "cof_transid": "930734056218579",
- "timestamp": "2022-05-24 15:06:13 -0400",
- "token": "6789656783904467894",
- "ttid": "96748596765467"
}
Places a hold on funds without capturing for settlement
This is functionally equivalent to a sale transaction with capture=no
. The
difference between sale
and preauth
is that a preauth
is split into two
parts. In both transactions, the transaction data is sent online through the
processor to the issuer. The issuer will approve or decline the transaction and
place a temporary hold on the amount. A sale
will add the transaction to a
batch and mark it eligible for settlement. A preauth
will not add the
transaction to a batch, and it will be marked as not-yet eligible for
settlement. A preauthcomplete
must be performed to add the transaction to a
batch and mark it as eligible for settlement.
The transaction amount can change between the preauth
and preauthcomplete
.
This should be used if the final amount is not known at the time of authorization.
For example, adding a tip. If the transaction amount is known and not subject to
change, a sale
should be used instead.
Some industries, such as E-commerce, necessitate the use of preauth
. When selling
physical goods, the final charge (settle) cannot take place until the goods are
shipped. If there is a short delay between taking payment and shipping, a
preauth
can be used to delay taking the funds from a customer's account.
You may need to work with your merchant account provider to determine whether
a sale
or preauth
is more appropriate for your business needs.
libmonetra KVS equivalent for endpoint
action_trans
= preauth
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
object Account information parameters There are multiple ways to collect the customer's account information. These are the minimum fields required for each entry method.
Additional modifiers are also present which can provide information about how
the data was received. For example, Cards and phones can be tapped in which
case the ENCRYPTION Many of these can be sent encrypted when using an encrypting reader with
a supported encryption method. The Due to the difference in encrypted reader output and some formats being proprietary limited information about the encrypted account fields are provided. If it is necessary to directly send encrypted reader data to Monetra please contact support who can work with you and the device manufacturer on how to format the data for the relevant fields to a given device. | |
object Verification parameters | |
object Shipping detail parameters | |
object E-commerce parameters | |
object Healthcare parameters | |
object Lodging parameters | |
object Merchant descriptor parameters | |
object Merchant lane parameters | |
required | object Monetary parameters |
object Order detail parameters | |
object PIN data parameters | |
object Processing options | |
object Recurring group | |
nsf | string Enum: "yes" "no" Approve transactions even if there are non-sufficient funds (NSF). This will
result in a partial approval if there are not enough funds to cover the full
requested amount, in which case an Gift cards default to If a partial approval is received, it will automatically be reversed internally
and the returned decline will have Values:
|
tokenize | string Default: "no" Enum: "yes" "no" Whether or not the account data should be tokenized as part of this request. Defaults to The token will be of type When enabled, by default, this will generate a new token. If Values:
|
matching_token | string Default: "no" Enum: "yes" "no" When paired with By default, every tokenization will generate a new token. Sending
Requires:
Values:
|
carddenylist_check | string Enum: "yes" "no" Check the card deny list before going online for authorization If on the list, decline with The value Only the account number is used to determine if there is a match on the list. Other paramters, such as card holder name and card expiration date are not used. Values:
|
carddenylist_decline | string Enum: "yes" "no" Automatically add account to the card deny list if declined by the issuer Values:
|
rcpt | string The A value of A value of All other values are key/value pairs indicating formatting configurations, separated by semicolons, as in this example:
Receipt configuration options:
|
rcpt_user_notes | string Arbitrary user-specified notes to include in the |
property name* additional property | string |
{- "profile_id": "78965743785967",
- "account_data": {
- "account": "5454545454545454",
- "cardshieldticket": "567865678987",
- "cardholdername": "John Doe",
- "cardpresent": "yes",
- "countrycode": "840",
- "e_account": "DEF5325DEA5678DB6",
- "e_datafield": "DE45AC529FDE35",
- "e_datafieldfmt": "account|expdate",
- "e_datafieldmasked": "5454********5454",
- "e_trackdata": "...",
- "e_id": "645FF245ED34CD5A",
- "expdate": "0129",
- "icc": "4F07A0000000031010500B564953412043524544495457134761739001010010D22122011143804400000F5A0847617390010100105F201A554154205553412F5465737420436172642030342020202020205F24032212315F280208405F2A0208405F2D02656E5F300202015F34010182021C008407A0000000031010950580800080009A031701059B0268009C01009F02060000000100009F03060000000000009F0607A00000000310109F0702FF009F0902008C9F100706010A03A020009F1101019F120B56697361204372656469749F1A0208409F1B04000000009F1E0838303338383535389F1F183131343338303434383930303030303030303030303030309F21030933379F2608D737017E33C786929F2701809F3303E0F8C89F34031F00029F3501229F360200E09F3704526F34219F3901059F4005F000F0F0019F4104000000039F530152",
- "rfid": "no",
- "token": "6789656783904467894",
- "trackdata": "%B4111111111111111^TEST CARD/VI^29121015432112345678?;4111111111111111=29121015432112345678?",
- "abaroute": "267084131",
- "checknum": "45678",
- "accounttype": "PERSONAL|CHECKING"
}, - "verification": {
- "cv": "123",
- "street": "1st St",
- "zip": "32606"
}, - "shipping": {
- "shipcountry": "840",
- "shipzip": "32789"
}, - "ecomm": {
- "3ds_txnid": "F38E6948-5388-41A6-BCA4-B49723C19437",
- "cavv": "jDnAEsWLen9JARUAAAJXXNvNvKnnK14=",
- "xid": "1395",
- "goods": "physical",
- "cust_regdate": "2023-04-01"
}, - "health": {
- "healthcare": "no",
- "dentalamount": "1.76",
- "clinicamount": "1.75",
- "otheramount": "1.77",
- "rxamount": "1.78",
- "transitamount": "1.79",
- "visionamount": "1.80"
}, - "lodging": {
- "advancedeposit": "no",
- "noshow": "yes",
- "bdate": "now",
- "edate": "+3 days",
- "excharges": "GIFT|MINI",
- "rate": "12.00",
- "roomnum": "5143"
}, - "merchant_descriptors": {
- "descmerch": "Pizza Palace LLC",
- "descloc": "Store CA 543"
}, - "lane": {
- "clerkid": "Doe-1553",
- "stationid": "7",
- "laneid": "4",
- "comments": "Extra beef",
- "divisionnum": "PAYROLL"
}, - "money": {
- "amount": "19.92",
- "cashbackamount": "20.00",
- "currency": "124",
- "examount": "0.33",
- "surchargeamount": "1.25",
- "tax": "1.29",
- "discountamount": "100.00",
- "dutyamount": "5.07",
- "freightamount": "225.82",
- "convenience_fee": "1.23",
- "supplemental_fee": "1.23"
}, - "order": {
- "custref": "55",
- "ordernum": "A13DDES345",
- "order_id": "7654323456"
}, - "pin_data": {
- "ksn": "654321007CE00114",
- "pin": "AE86DE23D2276C3B"
}, - "processing_options": {
- "capture": "yes",
- "debtrepayment": "no",
- "duplcheck": "no",
- "priority": "normal",
- "timeout": "30"
}, - "recurring_data": {
- "cof_transid": "67898768",
- "cof_authamount": "99.24",
- "installment_num": "17",
- "installment_total": "149",
- "recurring": "recurring"
}, - "nsf": "yes",
- "tokenize": "no",
- "matching_token": "yes",
- "carddenylist_check": "no",
- "carddenylist_decline": "no",
- "rcpt": "yes",
- "rcpt_user_notes": "Review your order at http://...",
- "property1": "string",
- "property2": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "phard_code": "SUCCESS",
- "card_currency": "840",
- "card_cardclass": "CREDIT",
- "card_cardlevel": "V^",
- "card_country_code": "840",
- "card_debit_network": "19N|14N",
- "card_ebt_state": "HI",
- "card_fsa": "N",
- "card_funding_source": "CREDIT",
- "card_issuer_bank": "1st Bank of Money",
- "card_msr_cvm": "sig",
- "card_prepaid": "Y",
- "card_reloadable": "N",
- "card_signature_debit": "N",
- "card_token_card": "N",
- "rcpt_host_ts": "052422143743",
- "rcpt_entry_mode": "C",
- "rcpt_acct_type": "chequing",
- "rcpt_emv_cvm": "none",
- "rcpt_emv_pinbypass": "N",
- "rcpt_resp_code": "A00",
- "rcpt_issuer_resp_code": "00",
- "rcpt_emv_aid": "A0000000031010",
- "rcpt_emv_name": "Visa Credit",
- "rcpt_emv_tvr": "8080008000",
- "rcpt_emv_tsi": "6800",
- "rcpt_emv_actype": "ARQC",
- "rcpt_emv_ac": "D737017E33C78692",
- "rcpt_emv_form_factor": "05",
- "rcpt_custom": "Rec Num:002000089,Transid:940152939191917,VCode:1234",
- "rcpt_emv_iad": "06010A03A02000",
- "rcpt_emv_card_decline": "...",
- "printdata": "APPRoVED",
- "auth": "B2DAA3",
- "batch": "47",
- "issuer_decline": "Y",
- "item": "1245",
- "stan": "994532",
- "proc": "loopback",
- "authamount": "6.50",
- "balance": "12.00",
- "account": "XXXXXXXXXXXX1234",
- "cof_authamount": "19.22",
- "cof_transid": "930734056218579",
- "cardtype": "VISA",
- "cardholdername": "John Doe",
- "language": "en",
- "pclevel": "0",
- "avs": "GOOD",
- "cv": "GOOD",
- "timestamp": "2022-05-24 15:06:13 -0400",
- "token": "6789656783904467894",
- "ttid": "96748596765467"
}
Debits available funds from cardholder's account.
The transaction amount is assumed to be the final transaction amount that will
be settled. If the transaction amount is subject to change, a preauth
transaction should be used instead.
libmonetra KVS equivalent for endpoint
action_trans
= sale
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
object Account information parameters There are multiple ways to collect the customer's account information. These are the minimum fields required for each entry method.
Additional modifiers are also present which can provide information about how
the data was received. For example, Cards and phones can be tapped in which
case the ENCRYPTION Many of these can be sent encrypted when using an encrypting reader with
a supported encryption method. The Due to the difference in encrypted reader output and some formats being proprietary limited information about the encrypted account fields are provided. If it is necessary to directly send encrypted reader data to Monetra please contact support who can work with you and the device manufacturer on how to format the data for the relevant fields to a given device. | |
object Verification parameters | |
object Shipping detail parameters | |
object E-commerce parameters | |
object Healthcare parameters | |
object Lodging parameters | |
object Merchant descriptor parameters | |
object Merchant lane parameters | |
required | object Monetary parameters |
object Order detail parameters | |
object PIN data parameters | |
object Processing options | |
object Recurring group | |
nsf | string Enum: "yes" "no" Approve transactions even if there are non-sufficient funds (NSF). This will
result in a partial approval if there are not enough funds to cover the full
requested amount, in which case an Gift cards default to If a partial approval is received, it will automatically be reversed internally
and the returned decline will have Values:
|
tokenize | string Default: "no" Enum: "yes" "no" Whether or not the account data should be tokenized as part of this request. Defaults to The token will be of type When enabled, by default, this will generate a new token. If Values:
|
matching_token | string Default: "no" Enum: "yes" "no" When paired with By default, every tokenization will generate a new token. Sending
Requires:
Values:
|
carddenylist_check | string Enum: "yes" "no" Check the card deny list before going online for authorization If on the list, decline with The value Only the account number is used to determine if there is a match on the list. Other paramters, such as card holder name and card expiration date are not used. Values:
|
carddenylist_decline | string Enum: "yes" "no" Automatically add account to the card deny list if declined by the issuer Values:
|
rcpt | string The A value of A value of All other values are key/value pairs indicating formatting configurations, separated by semicolons, as in this example:
Receipt configuration options:
|
rcpt_user_notes | string Arbitrary user-specified notes to include in the |
property name* additional property | string |
{- "profile_id": "78965743785967",
- "account_data": {
- "account": "5454545454545454",
- "cardshieldticket": "567865678987",
- "cardholdername": "John Doe",
- "cardpresent": "yes",
- "countrycode": "840",
- "e_account": "DEF5325DEA5678DB6",
- "e_datafield": "DE45AC529FDE35",
- "e_datafieldfmt": "account|expdate",
- "e_datafieldmasked": "5454********5454",
- "e_trackdata": "...",
- "e_id": "645FF245ED34CD5A",
- "expdate": "0129",
- "icc": "4F07A0000000031010500B564953412043524544495457134761739001010010D22122011143804400000F5A0847617390010100105F201A554154205553412F5465737420436172642030342020202020205F24032212315F280208405F2A0208405F2D02656E5F300202015F34010182021C008407A0000000031010950580800080009A031701059B0268009C01009F02060000000100009F03060000000000009F0607A00000000310109F0702FF009F0902008C9F100706010A03A020009F1101019F120B56697361204372656469749F1A0208409F1B04000000009F1E0838303338383535389F1F183131343338303434383930303030303030303030303030309F21030933379F2608D737017E33C786929F2701809F3303E0F8C89F34031F00029F3501229F360200E09F3704526F34219F3901059F4005F000F0F0019F4104000000039F530152",
- "rfid": "no",
- "token": "6789656783904467894",
- "trackdata": "%B4111111111111111^TEST CARD/VI^29121015432112345678?;4111111111111111=29121015432112345678?",
- "abaroute": "267084131",
- "checknum": "45678",
- "accounttype": "PERSONAL|CHECKING"
}, - "verification": {
- "cv": "123",
- "street": "1st St",
- "zip": "32606"
}, - "shipping": {
- "shipcountry": "840",
- "shipzip": "32789"
}, - "ecomm": {
- "3ds_txnid": "F38E6948-5388-41A6-BCA4-B49723C19437",
- "cavv": "jDnAEsWLen9JARUAAAJXXNvNvKnnK14=",
- "xid": "1395",
- "goods": "physical",
- "cust_regdate": "2023-04-01"
}, - "health": {
- "healthcare": "no",
- "dentalamount": "1.76",
- "clinicamount": "1.75",
- "otheramount": "1.77",
- "rxamount": "1.78",
- "transitamount": "1.79",
- "visionamount": "1.80"
}, - "lodging": {
- "advancedeposit": "no",
- "noshow": "yes",
- "bdate": "now",
- "edate": "+3 days",
- "excharges": "GIFT|MINI",
- "rate": "12.00",
- "roomnum": "5143"
}, - "merchant_descriptors": {
- "descmerch": "Pizza Palace LLC",
- "descloc": "Store CA 543"
}, - "lane": {
- "clerkid": "Doe-1553",
- "stationid": "7",
- "laneid": "4",
- "comments": "Extra beef",
- "divisionnum": "PAYROLL"
}, - "money": {
- "amount": "19.92",
- "cashbackamount": "20.00",
- "currency": "124",
- "examount": "0.33",
- "surchargeamount": "1.25",
- "tax": "1.29",
- "discountamount": "100.00",
- "dutyamount": "5.07",
- "freightamount": "225.82",
- "convenience_fee": "1.23",
- "supplemental_fee": "1.23"
}, - "order": {
- "custref": "55",
- "ordernum": "A13DDES345",
- "order_id": "7654323456"
}, - "pin_data": {
- "ksn": "654321007CE00114",
- "pin": "AE86DE23D2276C3B"
}, - "processing_options": {
- "capture": "yes",
- "debtrepayment": "no",
- "duplcheck": "no",
- "priority": "normal",
- "timeout": "30"
}, - "recurring_data": {
- "cof_transid": "67898768",
- "cof_authamount": "99.24",
- "installment_num": "17",
- "installment_total": "149",
- "recurring": "recurring"
}, - "nsf": "yes",
- "tokenize": "no",
- "matching_token": "yes",
- "carddenylist_check": "no",
- "carddenylist_decline": "no",
- "rcpt": "yes",
- "rcpt_user_notes": "Review your order at http://...",
- "property1": "string",
- "property2": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "phard_code": "SUCCESS",
- "card_currency": "840",
- "card_cardclass": "CREDIT",
- "card_cardlevel": "V^",
- "card_country_code": "840",
- "card_debit_network": "19N|14N",
- "card_ebt_state": "HI",
- "card_fsa": "N",
- "card_funding_source": "CREDIT",
- "card_issuer_bank": "1st Bank of Money",
- "card_msr_cvm": "sig",
- "card_prepaid": "Y",
- "card_reloadable": "N",
- "card_signature_debit": "N",
- "card_token_card": "N",
- "rcpt_host_ts": "052422143743",
- "rcpt_entry_mode": "C",
- "rcpt_acct_type": "chequing",
- "rcpt_emv_cvm": "none",
- "rcpt_emv_pinbypass": "N",
- "rcpt_resp_code": "A00",
- "rcpt_issuer_resp_code": "00",
- "rcpt_emv_aid": "A0000000031010",
- "rcpt_emv_name": "Visa Credit",
- "rcpt_emv_tvr": "8080008000",
- "rcpt_emv_tsi": "6800",
- "rcpt_emv_actype": "ARQC",
- "rcpt_emv_ac": "D737017E33C78692",
- "rcpt_emv_form_factor": "05",
- "rcpt_custom": "Rec Num:002000089,Transid:940152939191917,VCode:1234",
- "rcpt_emv_iad": "06010A03A02000",
- "rcpt_emv_card_decline": "...",
- "printdata": "APPRoVED",
- "auth": "B2DAA3",
- "batch": "47",
- "issuer_decline": "Y",
- "item": "1245",
- "stan": "994532",
- "proc": "loopback",
- "authamount": "6.50",
- "balance": "12.00",
- "account": "XXXXXXXXXXXX1234",
- "cof_authamount": "19.22",
- "cof_transid": "930734056218579",
- "cardtype": "VISA",
- "cardholdername": "John Doe",
- "language": "en",
- "pclevel": "0",
- "avs": "GOOD",
- "cv": "GOOD",
- "timestamp": "2022-05-24 15:06:13 -0400",
- "token": "6789656783904467894",
- "carddenylist_id": "67898765",
- "ttid": "96748596765467"
}
Refunds a prior purchase
By default users are only allowed to refund to a previous purchase transaction.
This linked transaction is referenced by the original transaction's ttid
The cumulative amount that can be refunded cannot exceed the original transaction
amount.
If the transaction being referenced is still unsettled, the refund amount must
be different than the original authorization amount; if not, reversal
should
be used instead.
libmonetra KVS equivalent for endpoint
action_trans
= refund
ttid required | string Example: 96748596765467 Identifier for transaction to refund |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
object Merchant descriptor parameters | |
object Merchant lane parameters | |
object Monetary parameters | |
object Order detail parameters | |
object PIN data parameters | |
expdate | string = 4 characters (0[1-9]|1[1-2])\d{2} Expiration date of the card (MMYY format) Optional and typically unnecessary to send.
The expiration date will be loaded from the refereed
There are some instances where a different expiration date than what was recorded with the original authorization needs to be specified. Specifically, when the card has expired between the time of the authorization and the refund. For example, card expires on 12/2021. An authorization was
made 11/2021. Then the customers return the item 1/2022 necessitating
a refund. The refund would fail due to the card being expired. However,
the customer since received a new card with a new expiration date but
retained the same card number. The new |
object Recurring group | |
priority | string Default: "normal" Enum: "low" "normal" "high" Processing priority. You should process large batches as priority low, so that any real-time transactions that come through will be processed immediately Values:
|
timeout | string\d+ Length of time in seconds transaction can sit in send queue before sending to the processor. This is a hint/estimate and not a hard value. |
tokenize | string Default: "no" Enum: "yes" "no" Whether or not the account data should be tokenized as part of this request. Defaults to The token will be of type When enabled, by default, this will generate a new token. If Values:
|
matching_token | string Default: "no" Enum: "yes" "no" When paired with By default, every tokenization will generate a new token. Sending
Requires:
Values:
|
rcpt | string The A value of A value of All other values are key/value pairs indicating formatting configurations, separated by semicolons, as in this example:
Receipt configuration options:
|
rcpt_user_notes | string Arbitrary user-specified notes to include in the |
property name* additional property | string |
{- "profile_id": "78965743785967",
- "merchant_descriptors": {
- "descmerch": "Pizza Palace LLC",
- "descloc": "Store CA 543"
}, - "lane": {
- "clerkid": "Doe-1553",
- "stationid": "7",
- "laneid": "4",
- "comments": "Extra beef",
- "divisionnum": "PAYROLL"
}, - "money": {
- "amount": "19.92",
- "cashbackamount": "20.00",
- "currency": "124",
- "examount": "0.33",
- "surchargeamount": "1.25",
- "tax": "1.29",
- "discountamount": "100.00",
- "dutyamount": "5.07",
- "freightamount": "225.82",
- "convenience_fee": "1.23",
- "supplemental_fee": "1.23"
}, - "order": {
- "custref": "55",
- "ordernum": "A13DDES345",
- "order_id": "7654323456"
}, - "pin_data": {
- "ksn": "654321007CE00114",
- "pin": "AE86DE23D2276C3B"
}, - "expdate": "0129",
- "recurring_data": {
- "cof_transid": "67898768",
- "cof_authamount": "99.24",
- "installment_num": "17",
- "installment_total": "149",
- "recurring": "recurring"
}, - "priority": "normal",
- "timeout": "30",
- "tokenize": "no",
- "matching_token": "yes",
- "rcpt": "yes",
- "rcpt_user_notes": "Review your order at http://...",
- "property1": "string",
- "property2": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "phard_code": "SUCCESS",
- "card_currency": "840",
- "card_cardclass": "CREDIT",
- "card_cardlevel": "V^",
- "card_country_code": "840",
- "card_debit_network": "19N|14N",
- "card_ebt_state": "HI",
- "card_fsa": "N",
- "card_funding_source": "CREDIT",
- "card_issuer_bank": "1st Bank of Money",
- "card_msr_cvm": "sig",
- "card_prepaid": "Y",
- "card_reloadable": "N",
- "card_signature_debit": "N",
- "card_token_card": "N",
- "rcpt_host_ts": "052422143743",
- "rcpt_entry_mode": "C",
- "rcpt_acct_type": "chequing",
- "rcpt_emv_cvm": "none",
- "rcpt_emv_pinbypass": "N",
- "rcpt_resp_code": "A00",
- "rcpt_issuer_resp_code": "00",
- "rcpt_emv_aid": "A0000000031010",
- "rcpt_emv_name": "Visa Credit",
- "rcpt_emv_tvr": "8080008000",
- "rcpt_emv_tsi": "6800",
- "rcpt_emv_actype": "ARQC",
- "rcpt_emv_ac": "D737017E33C78692",
- "rcpt_emv_form_factor": "05",
- "rcpt_custom": "Rec Num:002000089,Transid:940152939191917,VCode:1234",
- "rcpt_emv_iad": "06010A03A02000",
- "rcpt_emv_card_decline": "...",
- "printdata": "APPRoVED",
- "auth": "B2DAA3",
- "batch": "47",
- "issuer_decline": "Y",
- "item": "1245",
- "stan": "994532",
- "proc": "loopback",
- "authamount": "6.50",
- "balance": "12.00",
- "account": "XXXXXXXXXXXX1234",
- "cof_authamount": "19.22",
- "cof_transid": "930734056218579",
- "cardtype": "VISA",
- "cardholdername": "John Doe",
- "language": "en",
- "pclevel": "0",
- "timestamp": "2022-05-24 15:06:13 -0400",
- "token": "6789656783904467894",
- "ttid": "96748596765467"
}
Unlinked Refund
By default users are only allowed to refund to a previous purchase transaction.
This linked transaction is referenced by the original transaction's ttid
The cumulative amount that can be refunded cannot exceed the original transaction
amount.
If the transaction being referenced is still unsettled, the refund amount must
be different than the original authorization amount; if not, reversal
should
be used instead.
A user can have the ALLOW_UNLINKED_REFUND
which will allow refunding any
account without referencing a ttid
. Typically, sensitive account info is
required to specify the account that will receive the funds. Which users
are allowed to send unlinked refunds should be highly restricted because it
is a common avenue for fraud.
Gift cards use this operation to load funds onto the cards and is not specifically intended for returning a product. Instead a gift merchandise refund should be used for that situation. If the gift card provider does not support the merchandise refund operation, this refund operation should be used.
libmonetra KVS equivalent for endpoint
action_trans
= refund
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
object Account information parameters There are multiple ways to collect the customer's account information. These are the minimum fields required for each entry method.
Additional modifiers are also present which can provide information about how
the data was received. For example, Cards and phones can be tapped in which
case the ENCRYPTION Many of these can be sent encrypted when using an encrypting reader with
a supported encryption method. The Due to the difference in encrypted reader output and some formats being proprietary limited information about the encrypted account fields are provided. If it is necessary to directly send encrypted reader data to Monetra please contact support who can work with you and the device manufacturer on how to format the data for the relevant fields to a given device. | |
object Merchant descriptor parameters | |
object Merchant lane parameters | |
object Monetary parameters | |
object Order detail parameters | |
object PIN data parameters | |
object Recurring group | |
priority | string Default: "normal" Enum: "low" "normal" "high" Processing priority. You should process large batches as priority low, so that any real-time transactions that come through will be processed immediately Values:
|
timeout | string\d+ Length of time in seconds transaction can sit in send queue before sending to the processor. This is a hint/estimate and not a hard value. |
tokenize | string Default: "no" Enum: "yes" "no" Whether or not the account data should be tokenized as part of this request. Defaults to The token will be of type When enabled, by default, this will generate a new token. If Values:
|
matching_token | string Default: "no" Enum: "yes" "no" When paired with By default, every tokenization will generate a new token. Sending
Requires:
Values:
|
rcpt | string The A value of A value of All other values are key/value pairs indicating formatting configurations, separated by semicolons, as in this example:
Receipt configuration options:
|
rcpt_user_notes | string Arbitrary user-specified notes to include in the |
ttid | string Identifier for transaction to refund |
property name* additional property | string |
{- "profile_id": "78965743785967",
- "account_data": {
- "account": "5454545454545454",
- "cardshieldticket": "567865678987",
- "cardholdername": "John Doe",
- "cardpresent": "yes",
- "countrycode": "840",
- "e_account": "DEF5325DEA5678DB6",
- "e_datafield": "DE45AC529FDE35",
- "e_datafieldfmt": "account|expdate",
- "e_datafieldmasked": "5454********5454",
- "e_trackdata": "...",
- "e_id": "645FF245ED34CD5A",
- "expdate": "0129",
- "icc": "4F07A0000000031010500B564953412043524544495457134761739001010010D22122011143804400000F5A0847617390010100105F201A554154205553412F5465737420436172642030342020202020205F24032212315F280208405F2A0208405F2D02656E5F300202015F34010182021C008407A0000000031010950580800080009A031701059B0268009C01009F02060000000100009F03060000000000009F0607A00000000310109F0702FF009F0902008C9F100706010A03A020009F1101019F120B56697361204372656469749F1A0208409F1B04000000009F1E0838303338383535389F1F183131343338303434383930303030303030303030303030309F21030933379F2608D737017E33C786929F2701809F3303E0F8C89F34031F00029F3501229F360200E09F3704526F34219F3901059F4005F000F0F0019F4104000000039F530152",
- "rfid": "no",
- "token": "6789656783904467894",
- "trackdata": "%B4111111111111111^TEST CARD/VI^29121015432112345678?;4111111111111111=29121015432112345678?",
- "abaroute": "267084131",
- "checknum": "45678",
- "accounttype": "PERSONAL|CHECKING"
}, - "merchant_descriptors": {
- "descmerch": "Pizza Palace LLC",
- "descloc": "Store CA 543"
}, - "lane": {
- "clerkid": "Doe-1553",
- "stationid": "7",
- "laneid": "4",
- "comments": "Extra beef",
- "divisionnum": "PAYROLL"
}, - "money": {
- "amount": "19.92",
- "cashbackamount": "20.00",
- "currency": "124",
- "examount": "0.33",
- "surchargeamount": "1.25",
- "tax": "1.29",
- "discountamount": "100.00",
- "dutyamount": "5.07",
- "freightamount": "225.82",
- "convenience_fee": "1.23",
- "supplemental_fee": "1.23"
}, - "order": {
- "custref": "55",
- "ordernum": "A13DDES345",
- "order_id": "7654323456"
}, - "pin_data": {
- "ksn": "654321007CE00114",
- "pin": "AE86DE23D2276C3B"
}, - "recurring_data": {
- "cof_transid": "67898768",
- "cof_authamount": "99.24",
- "installment_num": "17",
- "installment_total": "149",
- "recurring": "recurring"
}, - "priority": "normal",
- "timeout": "30",
- "tokenize": "no",
- "matching_token": "yes",
- "rcpt": "yes",
- "rcpt_user_notes": "Review your order at http://...",
- "ttid": "96748596765467",
- "property1": "string",
- "property2": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "phard_code": "SUCCESS",
- "card_currency": "840",
- "card_cardclass": "CREDIT",
- "card_cardlevel": "V^",
- "card_country_code": "840",
- "card_debit_network": "19N|14N",
- "card_ebt_state": "HI",
- "card_fsa": "N",
- "card_funding_source": "CREDIT",
- "card_issuer_bank": "1st Bank of Money",
- "card_msr_cvm": "sig",
- "card_prepaid": "Y",
- "card_reloadable": "N",
- "card_signature_debit": "N",
- "card_token_card": "N",
- "rcpt_host_ts": "052422143743",
- "rcpt_entry_mode": "C",
- "rcpt_acct_type": "chequing",
- "rcpt_emv_cvm": "none",
- "rcpt_emv_pinbypass": "N",
- "rcpt_resp_code": "A00",
- "rcpt_issuer_resp_code": "00",
- "rcpt_emv_aid": "A0000000031010",
- "rcpt_emv_name": "Visa Credit",
- "rcpt_emv_tvr": "8080008000",
- "rcpt_emv_tsi": "6800",
- "rcpt_emv_actype": "ARQC",
- "rcpt_emv_ac": "D737017E33C78692",
- "rcpt_emv_form_factor": "05",
- "rcpt_custom": "Rec Num:002000089,Transid:940152939191917,VCode:1234",
- "rcpt_emv_iad": "06010A03A02000",
- "rcpt_emv_card_decline": "...",
- "printdata": "APPRoVED",
- "auth": "B2DAA3",
- "batch": "47",
- "issuer_decline": "Y",
- "item": "1245",
- "stan": "994532",
- "proc": "loopback",
- "authamount": "6.50",
- "balance": "12.00",
- "account": "XXXXXXXXXXXX1234",
- "cof_authamount": "19.22",
- "cof_transid": "930734056218579",
- "cardtype": "VISA",
- "cardholdername": "John Doe",
- "language": "en",
- "pclevel": "0",
- "timestamp": "2022-05-24 15:06:13 -0400",
- "token": "6789656783904467894",
- "ttid": "96748596765467"
}
Verifies avs
and cv
data
The two main uses for this operation are to:
avs
and cv
for fraud logicThis does not verify availability of funds. This is account verification only.
libmonetra KVS equivalent for endpoint
action_trans
= verifyonly
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
object Account information parameters There are multiple ways to collect the customer's account information. These are the minimum fields required for each entry method.
Additional modifiers are also present which can provide information about how
the data was received. For example, Cards and phones can be tapped in which
case the ENCRYPTION Many of these can be sent encrypted when using an encrypting reader with
a supported encryption method. The Due to the difference in encrypted reader output and some formats being proprietary limited information about the encrypted account fields are provided. If it is necessary to directly send encrypted reader data to Monetra please contact support who can work with you and the device manufacturer on how to format the data for the relevant fields to a given device. | |
object Verification parameters | |
tokenize | string Default: "no" Enum: "yes" "no" Whether or not the account data should be tokenized as part of this request. Defaults to The token will be of type When enabled, by default, this will generate a new token. If Values:
|
matching_token | string Default: "no" Enum: "yes" "no" When paired with By default, every tokenization will generate a new token. Sending
Requires:
Values:
|
carddenylist_check | string Enum: "yes" "no" Check the card deny list before going online for authorization If on the list, decline with The value Only the account number is used to determine if there is a match on the list. Other paramters, such as card holder name and card expiration date are not used. Values:
|
carddenylist_decline | string Enum: "yes" "no" Automatically add account to the card deny list if declined by the issuer Values:
|
property name* additional property | string |
{- "profile_id": "78965743785967",
- "account_data": {
- "account": "5454545454545454",
- "cardshieldticket": "567865678987",
- "cardholdername": "John Doe",
- "cardpresent": "yes",
- "countrycode": "840",
- "e_account": "DEF5325DEA5678DB6",
- "e_datafield": "DE45AC529FDE35",
- "e_datafieldfmt": "account|expdate",
- "e_datafieldmasked": "5454********5454",
- "e_trackdata": "...",
- "e_id": "645FF245ED34CD5A",
- "expdate": "0129",
- "icc": "4F07A0000000031010500B564953412043524544495457134761739001010010D22122011143804400000F5A0847617390010100105F201A554154205553412F5465737420436172642030342020202020205F24032212315F280208405F2A0208405F2D02656E5F300202015F34010182021C008407A0000000031010950580800080009A031701059B0268009C01009F02060000000100009F03060000000000009F0607A00000000310109F0702FF009F0902008C9F100706010A03A020009F1101019F120B56697361204372656469749F1A0208409F1B04000000009F1E0838303338383535389F1F183131343338303434383930303030303030303030303030309F21030933379F2608D737017E33C786929F2701809F3303E0F8C89F34031F00029F3501229F360200E09F3704526F34219F3901059F4005F000F0F0019F4104000000039F530152",
- "rfid": "no",
- "token": "6789656783904467894",
- "trackdata": "%B4111111111111111^TEST CARD/VI^29121015432112345678?;4111111111111111=29121015432112345678?",
- "abaroute": "267084131",
- "checknum": "45678",
- "accounttype": "PERSONAL|CHECKING"
}, - "verification": {
- "cv": "123",
- "street": "1st St",
- "zip": "32606"
}, - "tokenize": "no",
- "matching_token": "yes",
- "carddenylist_check": "no",
- "carddenylist_decline": "no",
- "property1": "string",
- "property2": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "phard_code": "SUCCESS",
- "card_currency": "840",
- "card_cardclass": "CREDIT",
- "card_cardlevel": "V^",
- "card_country_code": "840",
- "card_debit_network": "19N|14N",
- "card_ebt_state": "HI",
- "card_fsa": "N",
- "card_funding_source": "CREDIT",
- "card_issuer_bank": "1st Bank of Money",
- "card_msr_cvm": "sig",
- "card_prepaid": "Y",
- "card_reloadable": "N",
- "card_signature_debit": "N",
- "card_token_card": "N",
- "rcpt_host_ts": "052422143743",
- "rcpt_entry_mode": "C",
- "rcpt_acct_type": "chequing",
- "rcpt_emv_cvm": "none",
- "rcpt_emv_pinbypass": "N",
- "rcpt_resp_code": "A00",
- "rcpt_issuer_resp_code": "00",
- "rcpt_emv_aid": "A0000000031010",
- "rcpt_emv_name": "Visa Credit",
- "rcpt_emv_tvr": "8080008000",
- "rcpt_emv_tsi": "6800",
- "rcpt_emv_actype": "ARQC",
- "rcpt_emv_ac": "D737017E33C78692",
- "rcpt_emv_form_factor": "05",
- "rcpt_custom": "Rec Num:002000089,Transid:940152939191917,VCode:1234",
- "rcpt_emv_iad": "06010A03A02000",
- "rcpt_emv_card_decline": "...",
- "printdata": "APPRoVED",
- "account": "XXXXXXXXXXXX1234",
- "cardtype": "VISA",
- "cardholdername": "John Doe",
- "language": "en",
- "pclevel": "0",
- "avs": "GOOD",
- "cv": "GOOD",
- "timestamp": "2022-05-24 15:06:13 -0400",
- "token": "6789656783904467894",
- "carddenylist_id": "67898765"
}
Removes a previously authorized transaction
In the vast majority of cases, a reversal
should be used and not a void
.
In many instances this is not a real time transaction, and the funds held on the customer's account will not be removed. There is no guarantee this will be an online transaction.
The main use for a void
is to ensure the transaction will not settle if a
'reversal' was issued and failed. Since this can be an offline transaction,
processor permitting, there is still a chance of success.
Realize that a reversal
can fail for legitimate reasons, such as the
transaction already being settled, in which case a refund should be issued. Another
case is when the transaction has already been reversed. These are the most
likely cases for a reversal
failing, so the reversal
response should be
evaluated to determine if a void
is actually necessary as a follow up.
libmonetra KVS equivalent for endpoint
action_trans
= void
ttid required | string Example: 96748596765467 Transaction identifier |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
curl -X DELETE 'https://testbox.monetra.com/api/v2/transaction/926573735405091/void' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "phard_code": "SUCCESS",
- "card_currency": "840",
- "card_cardclass": "CREDIT",
- "card_cardlevel": "V^",
- "card_country_code": "840",
- "card_debit_network": "19N|14N",
- "card_ebt_state": "HI",
- "card_fsa": "N",
- "card_funding_source": "CREDIT",
- "card_issuer_bank": "1st Bank of Money",
- "card_msr_cvm": "sig",
- "card_prepaid": "Y",
- "card_reloadable": "N",
- "card_signature_debit": "N",
- "card_token_card": "N",
- "rcpt_host_ts": "052422143743",
- "rcpt_entry_mode": "C",
- "rcpt_acct_type": "chequing",
- "rcpt_emv_cvm": "none",
- "rcpt_emv_pinbypass": "N",
- "rcpt_resp_code": "A00",
- "rcpt_issuer_resp_code": "00",
- "rcpt_emv_aid": "A0000000031010",
- "rcpt_emv_name": "Visa Credit",
- "rcpt_emv_tvr": "8080008000",
- "rcpt_emv_tsi": "6800",
- "rcpt_emv_actype": "ARQC",
- "rcpt_emv_ac": "D737017E33C78692",
- "rcpt_emv_form_factor": "05",
- "rcpt_custom": "Rec Num:002000089,Transid:940152939191917,VCode:1234",
- "rcpt_emv_iad": "06010A03A02000",
- "rcpt_emv_card_decline": "...",
- "printdata": "APPRoVED",
- "auth": "B2DAA3",
- "batch": "47",
- "issuer_decline": "Y",
- "item": "1245",
- "stan": "994532",
- "proc": "loopback",
- "account": "XXXXXXXXXXXX1234",
- "timestamp": "2022-05-24 15:06:13 -0400",
- "cardtype": "VISA",
- "cardholdername": "John Doe",
- "language": "en",
- "pclevel": "0",
- "ttid": "96748596765467"
}
Gift specific operations
This applies to private label gift cards. Not credit card branded gift cards. Such as Visa, Mastercard, or Amex gift cards. Brand cards are handled in the same manner as credit cards.
Gift cards have a number of operations that are specific to gift card processing. For example issuing gift cards. Using gift cards for transaction processing uses the standard transaction operations. Specifically, purchase, reversal, and refund.
Gift cards are also included in the standard transaction reports. Which can be filtered to only include gift cards is gift card specific reporting is needed.
Loyalty cards are not supported. Only gift cards used as payment are supported.
Activate a Gift card
See description for the gift card issue
operation for details.
Processors supporting activate
libmonetra KVS equivalent for endpoint
action_trans
= activate
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
object Account information parameters There are multiple ways to collect the customer's account information. These are the minimum fields required for each entry method.
Additional modifiers are also present which can provide information about how
the data was received. For example, Cards and phones can be tapped in which
case the ENCRYPTION Many of these can be sent encrypted when using an encrypting reader with
a supported encryption method. The Due to the difference in encrypted reader output and some formats being proprietary limited information about the encrypted account fields are provided. If it is necessary to directly send encrypted reader data to Monetra please contact support who can work with you and the device manufacturer on how to format the data for the relevant fields to a given device. | |
pin | string(?i)PINLESS|[[:xdigit:]]{16}|[[:xdigit:]]{20}... Customer PIN number The PIN data can vary depending on the transaction and card type. For PINless debit bill payments, this should be set to For Gift, this is typically the plain text PIN. Otherwise, this is a hex-encoded encrypted PIN block. |
cv | string [ 3 .. 4 ] characters [0-9]{3,4} Card Verification value. Used to help with fraud prevention. 3 digits on back of VISA/MC/Discover, or 4 digits on front of AMEX cards. It's use is HIGHLY recommended for Mail Order/Telephone Order and E-commerce industries. Other indicators may be used, such as 'NR' if the CV is unreadable, 'NA' if the CV is physically not present on the card, or 'N' if the CV is intentionally not provided. If no CV is present, this will default to 'N'. |
object Merchant descriptor parameters | |
object Merchant lane parameters | |
object Order detail parameters | |
object Processing options | |
amount | string\d*(\.\d{0,2})? Amount of money, including decimal. E.g This is the total amount and is an aggregate of all supplementary amounts. |
nsf | string Enum: "yes" "no" Approve transactions even if there are non-sufficient funds (NSF). This will
result in a partial approval if there are not enough funds to cover the full
requested amount, in which case an Gift cards default to If a partial approval is received, it will automatically be reversed internally
and the returned decline will have Values:
|
rcpt | string The A value of A value of All other values are key/value pairs indicating formatting configurations, separated by semicolons, as in this example:
Receipt configuration options:
|
rcpt_user_notes | string Arbitrary user-specified notes to include in the |
{- "profile_id": "78965743785967",
- "account_data": {
- "account": "5454545454545454",
- "cardshieldticket": "567865678987",
- "cardholdername": "John Doe",
- "cardpresent": "yes",
- "countrycode": "840",
- "e_account": "DEF5325DEA5678DB6",
- "e_datafield": "DE45AC529FDE35",
- "e_datafieldfmt": "account|expdate",
- "e_datafieldmasked": "5454********5454",
- "e_trackdata": "...",
- "e_id": "645FF245ED34CD5A",
- "expdate": "0129",
- "icc": "4F07A0000000031010500B564953412043524544495457134761739001010010D22122011143804400000F5A0847617390010100105F201A554154205553412F5465737420436172642030342020202020205F24032212315F280208405F2A0208405F2D02656E5F300202015F34010182021C008407A0000000031010950580800080009A031701059B0268009C01009F02060000000100009F03060000000000009F0607A00000000310109F0702FF009F0902008C9F100706010A03A020009F1101019F120B56697361204372656469749F1A0208409F1B04000000009F1E0838303338383535389F1F183131343338303434383930303030303030303030303030309F21030933379F2608D737017E33C786929F2701809F3303E0F8C89F34031F00029F3501229F360200E09F3704526F34219F3901059F4005F000F0F0019F4104000000039F530152",
- "rfid": "no",
- "token": "6789656783904467894",
- "trackdata": "%B4111111111111111^TEST CARD/VI^29121015432112345678?;4111111111111111=29121015432112345678?",
- "abaroute": "267084131",
- "checknum": "45678",
- "accounttype": "PERSONAL|CHECKING"
}, - "pin": "AE86DE23D2276C3B",
- "cv": "123",
- "merchant_descriptors": {
- "descmerch": "Pizza Palace LLC",
- "descloc": "Store CA 543"
}, - "lane": {
- "clerkid": "Doe-1553",
- "stationid": "7",
- "laneid": "4",
- "comments": "Extra beef",
- "divisionnum": "PAYROLL"
}, - "order": {
- "custref": "55",
- "ordernum": "A13DDES345",
- "order_id": "7654323456"
}, - "processing_options": {
- "capture": "yes",
- "debtrepayment": "no",
- "duplcheck": "no",
- "priority": "normal",
- "timeout": "30"
}, - "amount": "19.92",
- "nsf": "yes",
- "rcpt": "yes",
- "rcpt_user_notes": "Review your order at http://..."
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "phard_code": "SUCCESS",
- "draft_locator_id": "24FDBDD0902",
- "card_currency": "840",
- "card_cardclass": "CREDIT",
- "card_cardlevel": "V^",
- "card_country_code": "840",
- "card_debit_network": "19N|14N",
- "card_ebt_state": "HI",
- "card_fsa": "N",
- "card_funding_source": "CREDIT",
- "card_issuer_bank": "1st Bank of Money",
- "card_msr_cvm": "sig",
- "card_prepaid": "Y",
- "card_reloadable": "N",
- "card_signature_debit": "N",
- "card_token_card": "N",
- "rcpt_host_ts": "052422143743",
- "rcpt_entry_mode": "C",
- "rcpt_acct_type": "chequing",
- "rcpt_emv_cvm": "none",
- "rcpt_emv_pinbypass": "N",
- "rcpt_resp_code": "A00",
- "rcpt_issuer_resp_code": "00",
- "rcpt_emv_aid": "A0000000031010",
- "rcpt_emv_name": "Visa Credit",
- "rcpt_emv_tvr": "8080008000",
- "rcpt_emv_tsi": "6800",
- "rcpt_emv_actype": "ARQC",
- "rcpt_emv_ac": "D737017E33C78692",
- "rcpt_emv_form_factor": "05",
- "rcpt_custom": "Rec Num:002000089,Transid:940152939191917,VCode:1234",
- "rcpt_emv_iad": "06010A03A02000",
- "rcpt_emv_card_decline": "...",
- "printdata": "APPRoVED",
- "auth": "B2DAA3",
- "batch": "47",
- "issuer_decline": "Y",
- "item": "1245",
- "stan": "994532",
- "proc": "loopback",
- "authamount": "6.50",
- "balance": "12.00",
- "account": "XXXXXXXXXXXX1234",
- "timestamp": "2022-05-24 15:06:13 -0400",
- "cardtype": "VISA",
- "cardholdername": "John Doe",
- "language": "en",
- "pclevel": "0",
- "ttid": "96748596765467"
}
Remove all funds from a gift card
Funds are intended to be remitted to the customer either as cash or via another method. Many states have laws requiring merchants to provide the operation at the customer's request.
The authamount
response parameter will contain
the amount of money that needs to be remitted
to the customer.
Depending on the gift card processor this may or may not deactivate the card.
libmonetra KVS equivalent for endpoint
action_trans
= cashout
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
object Account information parameters There are multiple ways to collect the customer's account information. These are the minimum fields required for each entry method.
Additional modifiers are also present which can provide information about how
the data was received. For example, Cards and phones can be tapped in which
case the ENCRYPTION Many of these can be sent encrypted when using an encrypting reader with
a supported encryption method. The Due to the difference in encrypted reader output and some formats being proprietary limited information about the encrypted account fields are provided. If it is necessary to directly send encrypted reader data to Monetra please contact support who can work with you and the device manufacturer on how to format the data for the relevant fields to a given device. | |
pin | string(?i)PINLESS|[[:xdigit:]]{16}|[[:xdigit:]]{20}... Customer PIN number The PIN data can vary depending on the transaction and card type. For PINless debit bill payments, this should be set to For Gift, this is typically the plain text PIN. Otherwise, this is a hex-encoded encrypted PIN block. |
cv | string [ 3 .. 4 ] characters [0-9]{3,4} Card Verification value. Used to help with fraud prevention. 3 digits on back of VISA/MC/Discover, or 4 digits on front of AMEX cards. It's use is HIGHLY recommended for Mail Order/Telephone Order and E-commerce industries. Other indicators may be used, such as 'NR' if the CV is unreadable, 'NA' if the CV is physically not present on the card, or 'N' if the CV is intentionally not provided. If no CV is present, this will default to 'N'. |
object Merchant descriptor parameters | |
object Merchant lane parameters | |
object Order detail parameters | |
object Processing options | |
rcpt | string The A value of A value of All other values are key/value pairs indicating formatting configurations, separated by semicolons, as in this example:
Receipt configuration options:
|
rcpt_user_notes | string Arbitrary user-specified notes to include in the |
{- "profile_id": "78965743785967",
- "account_data": {
- "account": "5454545454545454",
- "cardshieldticket": "567865678987",
- "cardholdername": "John Doe",
- "cardpresent": "yes",
- "countrycode": "840",
- "e_account": "DEF5325DEA5678DB6",
- "e_datafield": "DE45AC529FDE35",
- "e_datafieldfmt": "account|expdate",
- "e_datafieldmasked": "5454********5454",
- "e_trackdata": "...",
- "e_id": "645FF245ED34CD5A",
- "expdate": "0129",
- "icc": "4F07A0000000031010500B564953412043524544495457134761739001010010D22122011143804400000F5A0847617390010100105F201A554154205553412F5465737420436172642030342020202020205F24032212315F280208405F2A0208405F2D02656E5F300202015F34010182021C008407A0000000031010950580800080009A031701059B0268009C01009F02060000000100009F03060000000000009F0607A00000000310109F0702FF009F0902008C9F100706010A03A020009F1101019F120B56697361204372656469749F1A0208409F1B04000000009F1E0838303338383535389F1F183131343338303434383930303030303030303030303030309F21030933379F2608D737017E33C786929F2701809F3303E0F8C89F34031F00029F3501229F360200E09F3704526F34219F3901059F4005F000F0F0019F4104000000039F530152",
- "rfid": "no",
- "token": "6789656783904467894",
- "trackdata": "%B4111111111111111^TEST CARD/VI^29121015432112345678?;4111111111111111=29121015432112345678?",
- "abaroute": "267084131",
- "checknum": "45678",
- "accounttype": "PERSONAL|CHECKING"
}, - "pin": "AE86DE23D2276C3B",
- "cv": "123",
- "merchant_descriptors": {
- "descmerch": "Pizza Palace LLC",
- "descloc": "Store CA 543"
}, - "lane": {
- "clerkid": "Doe-1553",
- "stationid": "7",
- "laneid": "4",
- "comments": "Extra beef",
- "divisionnum": "PAYROLL"
}, - "order": {
- "custref": "55",
- "ordernum": "A13DDES345",
- "order_id": "7654323456"
}, - "processing_options": {
- "capture": "yes",
- "debtrepayment": "no",
- "duplcheck": "no",
- "priority": "normal",
- "timeout": "30"
}, - "rcpt": "yes",
- "rcpt_user_notes": "Review your order at http://..."
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "phard_code": "SUCCESS",
- "draft_locator_id": "24FDBDD0902",
- "card_currency": "840",
- "card_cardclass": "CREDIT",
- "card_cardlevel": "V^",
- "card_country_code": "840",
- "card_debit_network": "19N|14N",
- "card_ebt_state": "HI",
- "card_fsa": "N",
- "card_funding_source": "CREDIT",
- "card_issuer_bank": "1st Bank of Money",
- "card_msr_cvm": "sig",
- "card_prepaid": "Y",
- "card_reloadable": "N",
- "card_signature_debit": "N",
- "card_token_card": "N",
- "rcpt_host_ts": "052422143743",
- "rcpt_entry_mode": "C",
- "rcpt_acct_type": "chequing",
- "rcpt_emv_cvm": "none",
- "rcpt_emv_pinbypass": "N",
- "rcpt_resp_code": "A00",
- "rcpt_issuer_resp_code": "00",
- "rcpt_emv_aid": "A0000000031010",
- "rcpt_emv_name": "Visa Credit",
- "rcpt_emv_tvr": "8080008000",
- "rcpt_emv_tsi": "6800",
- "rcpt_emv_actype": "ARQC",
- "rcpt_emv_ac": "D737017E33C78692",
- "rcpt_emv_form_factor": "05",
- "rcpt_custom": "Rec Num:002000089,Transid:940152939191917,VCode:1234",
- "rcpt_emv_iad": "06010A03A02000",
- "rcpt_emv_card_decline": "...",
- "printdata": "APPRoVED",
- "auth": "B2DAA3",
- "batch": "47",
- "issuer_decline": "Y",
- "item": "1245",
- "stan": "994532",
- "proc": "loopback",
- "authamount": "6.50",
- "balance": "12.00",
- "account": "XXXXXXXXXXXX1234",
- "timestamp": "2022-05-24 15:06:13 -0400",
- "cardtype": "VISA",
- "cardholdername": "John Doe",
- "language": "en",
- "pclevel": "0",
- "ttid": "96748596765467"
}
Issue a Gift card
There are two operations that can open and fund a gift
card activate
and issue
. The difference between these
two is blurry and often they are used interchangeably.
activate
typically applies to denominated cards. Where the amount
is tied to the card and does not need to be specified as part of
the operation. This is in contrast to issue
which typically
applies to non-denominated cards. In this case, the amount being
placed onto the card must be specified.
Using activate
vs issue
can be processor specific.
Some gift processors do not make a distinction between
the two and will use the same operation for both non-denominated
and denominated cards.
Further, processors that support both types of cards may have different programs for different merchants. Such as, providing one, the other, or both for the merchant. Thus it is necessary to work with both the merchant and processor to determine how gift cards need to be funded.
Processors supporting issue
libmonetra KVS equivalent for endpoint
action_trans
= issue
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
object Account information parameters There are multiple ways to collect the customer's account information. These are the minimum fields required for each entry method.
Additional modifiers are also present which can provide information about how
the data was received. For example, Cards and phones can be tapped in which
case the ENCRYPTION Many of these can be sent encrypted when using an encrypting reader with
a supported encryption method. The Due to the difference in encrypted reader output and some formats being proprietary limited information about the encrypted account fields are provided. If it is necessary to directly send encrypted reader data to Monetra please contact support who can work with you and the device manufacturer on how to format the data for the relevant fields to a given device. | |
pin | string(?i)PINLESS|[[:xdigit:]]{16}|[[:xdigit:]]{20}... Customer PIN number The PIN data can vary depending on the transaction and card type. For PINless debit bill payments, this should be set to For Gift, this is typically the plain text PIN. Otherwise, this is a hex-encoded encrypted PIN block. |
cv | string [ 3 .. 4 ] characters [0-9]{3,4} Card Verification value. Used to help with fraud prevention. 3 digits on back of VISA/MC/Discover, or 4 digits on front of AMEX cards. It's use is HIGHLY recommended for Mail Order/Telephone Order and E-commerce industries. Other indicators may be used, such as 'NR' if the CV is unreadable, 'NA' if the CV is physically not present on the card, or 'N' if the CV is intentionally not provided. If no CV is present, this will default to 'N'. |
object Merchant descriptor parameters | |
object Merchant lane parameters | |
object Order detail parameters | |
object Processing options | |
amount required | string\d*(\.\d{0,2})? Amount of money, including decimal. E.g This is the total amount and is an aggregate of all supplementary amounts. |
nsf | string Enum: "yes" "no" Approve transactions even if there are non-sufficient funds (NSF). This will
result in a partial approval if there are not enough funds to cover the full
requested amount, in which case an Gift cards default to If a partial approval is received, it will automatically be reversed internally
and the returned decline will have Values:
|
rcpt | string The A value of A value of All other values are key/value pairs indicating formatting configurations, separated by semicolons, as in this example:
Receipt configuration options:
|
rcpt_user_notes | string Arbitrary user-specified notes to include in the |
{- "profile_id": "78965743785967",
- "account_data": {
- "account": "5454545454545454",
- "cardshieldticket": "567865678987",
- "cardholdername": "John Doe",
- "cardpresent": "yes",
- "countrycode": "840",
- "e_account": "DEF5325DEA5678DB6",
- "e_datafield": "DE45AC529FDE35",
- "e_datafieldfmt": "account|expdate",
- "e_datafieldmasked": "5454********5454",
- "e_trackdata": "...",
- "e_id": "645FF245ED34CD5A",
- "expdate": "0129",
- "icc": "4F07A0000000031010500B564953412043524544495457134761739001010010D22122011143804400000F5A0847617390010100105F201A554154205553412F5465737420436172642030342020202020205F24032212315F280208405F2A0208405F2D02656E5F300202015F34010182021C008407A0000000031010950580800080009A031701059B0268009C01009F02060000000100009F03060000000000009F0607A00000000310109F0702FF009F0902008C9F100706010A03A020009F1101019F120B56697361204372656469749F1A0208409F1B04000000009F1E0838303338383535389F1F183131343338303434383930303030303030303030303030309F21030933379F2608D737017E33C786929F2701809F3303E0F8C89F34031F00029F3501229F360200E09F3704526F34219F3901059F4005F000F0F0019F4104000000039F530152",
- "rfid": "no",
- "token": "6789656783904467894",
- "trackdata": "%B4111111111111111^TEST CARD/VI^29121015432112345678?;4111111111111111=29121015432112345678?",
- "abaroute": "267084131",
- "checknum": "45678",
- "accounttype": "PERSONAL|CHECKING"
}, - "pin": "AE86DE23D2276C3B",
- "cv": "123",
- "merchant_descriptors": {
- "descmerch": "Pizza Palace LLC",
- "descloc": "Store CA 543"
}, - "lane": {
- "clerkid": "Doe-1553",
- "stationid": "7",
- "laneid": "4",
- "comments": "Extra beef",
- "divisionnum": "PAYROLL"
}, - "order": {
- "custref": "55",
- "ordernum": "A13DDES345",
- "order_id": "7654323456"
}, - "processing_options": {
- "capture": "yes",
- "debtrepayment": "no",
- "duplcheck": "no",
- "priority": "normal",
- "timeout": "30"
}, - "amount": "19.92",
- "nsf": "yes",
- "rcpt": "yes",
- "rcpt_user_notes": "Review your order at http://..."
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "phard_code": "SUCCESS",
- "draft_locator_id": "24FDBDD0902",
- "card_currency": "840",
- "card_cardclass": "CREDIT",
- "card_cardlevel": "V^",
- "card_country_code": "840",
- "card_debit_network": "19N|14N",
- "card_ebt_state": "HI",
- "card_fsa": "N",
- "card_funding_source": "CREDIT",
- "card_issuer_bank": "1st Bank of Money",
- "card_msr_cvm": "sig",
- "card_prepaid": "Y",
- "card_reloadable": "N",
- "card_signature_debit": "N",
- "card_token_card": "N",
- "rcpt_host_ts": "052422143743",
- "rcpt_entry_mode": "C",
- "rcpt_acct_type": "chequing",
- "rcpt_emv_cvm": "none",
- "rcpt_emv_pinbypass": "N",
- "rcpt_resp_code": "A00",
- "rcpt_issuer_resp_code": "00",
- "rcpt_emv_aid": "A0000000031010",
- "rcpt_emv_name": "Visa Credit",
- "rcpt_emv_tvr": "8080008000",
- "rcpt_emv_tsi": "6800",
- "rcpt_emv_actype": "ARQC",
- "rcpt_emv_ac": "D737017E33C78692",
- "rcpt_emv_form_factor": "05",
- "rcpt_custom": "Rec Num:002000089,Transid:940152939191917,VCode:1234",
- "rcpt_emv_iad": "06010A03A02000",
- "rcpt_emv_card_decline": "...",
- "printdata": "APPRoVED",
- "auth": "B2DAA3",
- "batch": "47",
- "issuer_decline": "Y",
- "item": "1245",
- "stan": "994532",
- "proc": "loopback",
- "authamount": "6.50",
- "balance": "12.00",
- "account": "XXXXXXXXXXXX1234",
- "timestamp": "2022-05-24 15:06:13 -0400",
- "cardtype": "VISA",
- "cardholdername": "John Doe",
- "language": "en",
- "pclevel": "0",
- "ttid": "96748596765467"
}
Refunds merchandise to a gift card
Instead of sending the sensitive account info, a prior transaction's ttid
may
be referenced (if the transaction hasn't been secured or purged).
If the transaction being referenced is still unsettled, the refund amount must
be different than the original authorization amount; if not, reversal
should
be used instead.
Gift cards use this operation to denote funds are being loaded onto the card
due to returning merchandise. Adding funds to a card should use the
refund
operation.
Not all gift card providers support the merchandise refund operation. In which case, a standard refund to load the funds onto the gift card should be used.
libmonetra KVS equivalent for endpoint
action_trans
= merchreturn
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
object Account information parameters There are multiple ways to collect the customer's account information. These are the minimum fields required for each entry method.
Additional modifiers are also present which can provide information about how
the data was received. For example, Cards and phones can be tapped in which
case the ENCRYPTION Many of these can be sent encrypted when using an encrypting reader with
a supported encryption method. The Due to the difference in encrypted reader output and some formats being proprietary limited information about the encrypted account fields are provided. If it is necessary to directly send encrypted reader data to Monetra please contact support who can work with you and the device manufacturer on how to format the data for the relevant fields to a given device. | |
object Merchant descriptor parameters | |
object Merchant lane parameters | |
object Monetary parameters | |
object Order detail parameters | |
priority | string Default: "normal" Enum: "low" "normal" "high" Processing priority. You should process large batches as priority low, so that any real-time transactions that come through will be processed immediately Values:
|
timeout | string\d+ Length of time in seconds transaction can sit in send queue before sending to the processor. This is a hint/estimate and not a hard value. |
rcpt | string The A value of A value of All other values are key/value pairs indicating formatting configurations, separated by semicolons, as in this example:
Receipt configuration options:
|
rcpt_user_notes | string Arbitrary user-specified notes to include in the |
property name* additional property | string |
{- "profile_id": "78965743785967",
- "account_data": {
- "account": "5454545454545454",
- "cardshieldticket": "567865678987",
- "cardholdername": "John Doe",
- "cardpresent": "yes",
- "countrycode": "840",
- "e_account": "DEF5325DEA5678DB6",
- "e_datafield": "DE45AC529FDE35",
- "e_datafieldfmt": "account|expdate",
- "e_datafieldmasked": "5454********5454",
- "e_trackdata": "...",
- "e_id": "645FF245ED34CD5A",
- "expdate": "0129",
- "icc": "4F07A0000000031010500B564953412043524544495457134761739001010010D22122011143804400000F5A0847617390010100105F201A554154205553412F5465737420436172642030342020202020205F24032212315F280208405F2A0208405F2D02656E5F300202015F34010182021C008407A0000000031010950580800080009A031701059B0268009C01009F02060000000100009F03060000000000009F0607A00000000310109F0702FF009F0902008C9F100706010A03A020009F1101019F120B56697361204372656469749F1A0208409F1B04000000009F1E0838303338383535389F1F183131343338303434383930303030303030303030303030309F21030933379F2608D737017E33C786929F2701809F3303E0F8C89F34031F00029F3501229F360200E09F3704526F34219F3901059F4005F000F0F0019F4104000000039F530152",
- "rfid": "no",
- "token": "6789656783904467894",
- "trackdata": "%B4111111111111111^TEST CARD/VI^29121015432112345678?;4111111111111111=29121015432112345678?",
- "abaroute": "267084131",
- "checknum": "45678",
- "accounttype": "PERSONAL|CHECKING"
}, - "merchant_descriptors": {
- "descmerch": "Pizza Palace LLC",
- "descloc": "Store CA 543"
}, - "lane": {
- "clerkid": "Doe-1553",
- "stationid": "7",
- "laneid": "4",
- "comments": "Extra beef",
- "divisionnum": "PAYROLL"
}, - "money": {
- "amount": "19.92",
- "cashbackamount": "20.00",
- "currency": "124",
- "examount": "0.33",
- "surchargeamount": "1.25",
- "tax": "1.29",
- "discountamount": "100.00",
- "dutyamount": "5.07",
- "freightamount": "225.82",
- "convenience_fee": "1.23",
- "supplemental_fee": "1.23"
}, - "order": {
- "custref": "55",
- "ordernum": "A13DDES345",
- "order_id": "7654323456"
}, - "priority": "normal",
- "timeout": "30",
- "rcpt": "yes",
- "rcpt_user_notes": "Review your order at http://...",
- "property1": "string",
- "property2": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "phard_code": "SUCCESS",
- "draft_locator_id": "24FDBDD0902",
- "card_currency": "840",
- "card_cardclass": "CREDIT",
- "card_cardlevel": "V^",
- "card_country_code": "840",
- "card_debit_network": "19N|14N",
- "card_ebt_state": "HI",
- "card_fsa": "N",
- "card_funding_source": "CREDIT",
- "card_issuer_bank": "1st Bank of Money",
- "card_msr_cvm": "sig",
- "card_prepaid": "Y",
- "card_reloadable": "N",
- "card_signature_debit": "N",
- "card_token_card": "N",
- "rcpt_host_ts": "052422143743",
- "rcpt_entry_mode": "C",
- "rcpt_acct_type": "chequing",
- "rcpt_emv_cvm": "none",
- "rcpt_emv_pinbypass": "N",
- "rcpt_resp_code": "A00",
- "rcpt_issuer_resp_code": "00",
- "rcpt_emv_aid": "A0000000031010",
- "rcpt_emv_name": "Visa Credit",
- "rcpt_emv_tvr": "8080008000",
- "rcpt_emv_tsi": "6800",
- "rcpt_emv_actype": "ARQC",
- "rcpt_emv_ac": "D737017E33C78692",
- "rcpt_emv_form_factor": "05",
- "rcpt_custom": "Rec Num:002000089,Transid:940152939191917,VCode:1234",
- "rcpt_emv_iad": "06010A03A02000",
- "rcpt_emv_card_decline": "...",
- "printdata": "APPRoVED",
- "auth": "B2DAA3",
- "batch": "47",
- "issuer_decline": "Y",
- "item": "1245",
- "stan": "994532",
- "proc": "loopback",
- "authamount": "6.50",
- "balance": "12.00",
- "account": "XXXXXXXXXXXX1234",
- "timestamp": "2022-05-24 15:06:13 -0400",
- "cardtype": "VISA",
- "cardholdername": "John Doe",
- "language": "en",
- "pclevel": "0",
- "ttid": "96748596765467"
}
Issue a refund for merchandise to a gift card based on a previous transaction
If amount
is not specified, the amount from the referenced transaction will be used.
libmonetra KVS equivalent for endpoint
action_trans
= merchreturn
ttid required | string Example: 96748596765467 Identifier for the gift card transaction to refund merchandise |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
object Merchant descriptor parameters | |
object Merchant lane parameters | |
object Monetary parameters | |
object Order detail parameters | |
priority | string Default: "normal" Enum: "low" "normal" "high" Processing priority. You should process large batches as priority low, so that any real-time transactions that come through will be processed immediately Values:
|
timeout | string\d+ Length of time in seconds transaction can sit in send queue before sending to the processor. This is a hint/estimate and not a hard value. |
rcpt | string The A value of A value of All other values are key/value pairs indicating formatting configurations, separated by semicolons, as in this example:
Receipt configuration options:
|
rcpt_user_notes | string Arbitrary user-specified notes to include in the |
property name* additional property | string |
{- "profile_id": "78965743785967",
- "merchant_descriptors": {
- "descmerch": "Pizza Palace LLC",
- "descloc": "Store CA 543"
}, - "lane": {
- "clerkid": "Doe-1553",
- "stationid": "7",
- "laneid": "4",
- "comments": "Extra beef",
- "divisionnum": "PAYROLL"
}, - "money": {
- "amount": "19.92",
- "cashbackamount": "20.00",
- "currency": "124",
- "examount": "0.33",
- "surchargeamount": "1.25",
- "tax": "1.29",
- "discountamount": "100.00",
- "dutyamount": "5.07",
- "freightamount": "225.82",
- "convenience_fee": "1.23",
- "supplemental_fee": "1.23"
}, - "order": {
- "custref": "55",
- "ordernum": "A13DDES345",
- "order_id": "7654323456"
}, - "priority": "normal",
- "timeout": "30",
- "rcpt": "yes",
- "rcpt_user_notes": "Review your order at http://...",
- "property1": "string",
- "property2": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "phard_code": "SUCCESS",
- "draft_locator_id": "24FDBDD0902",
- "card_currency": "840",
- "card_cardclass": "CREDIT",
- "card_cardlevel": "V^",
- "card_country_code": "840",
- "card_debit_network": "19N|14N",
- "card_ebt_state": "HI",
- "card_fsa": "N",
- "card_funding_source": "CREDIT",
- "card_issuer_bank": "1st Bank of Money",
- "card_msr_cvm": "sig",
- "card_prepaid": "Y",
- "card_reloadable": "N",
- "card_signature_debit": "N",
- "card_token_card": "N",
- "rcpt_host_ts": "052422143743",
- "rcpt_entry_mode": "C",
- "rcpt_acct_type": "chequing",
- "rcpt_emv_cvm": "none",
- "rcpt_emv_pinbypass": "N",
- "rcpt_resp_code": "A00",
- "rcpt_issuer_resp_code": "00",
- "rcpt_emv_aid": "A0000000031010",
- "rcpt_emv_name": "Visa Credit",
- "rcpt_emv_tvr": "8080008000",
- "rcpt_emv_tsi": "6800",
- "rcpt_emv_actype": "ARQC",
- "rcpt_emv_ac": "D737017E33C78692",
- "rcpt_emv_form_factor": "05",
- "rcpt_custom": "Rec Num:002000089,Transid:940152939191917,VCode:1234",
- "rcpt_emv_iad": "06010A03A02000",
- "rcpt_emv_card_decline": "...",
- "printdata": "APPRoVED",
- "auth": "B2DAA3",
- "batch": "47",
- "issuer_decline": "Y",
- "item": "1245",
- "stan": "994532",
- "proc": "loopback",
- "authamount": "6.50",
- "balance": "12.00",
- "account": "XXXXXXXXXXXX1234",
- "timestamp": "2022-05-24 15:06:13 -0400",
- "cardtype": "VISA",
- "cardholdername": "John Doe",
- "language": "en",
- "pclevel": "0",
- "ttid": "96748596765467"
}
Electronic Benefits Transfer (EBT) cards can have two different accounts associated with a single account number. Typically these are food and cash account.
Food accounts have specific product qualification requirement which vary by state. Only qualified products can be purchased using the food account. It is up to the merchant to determine what qualifies in their jurisdiction.
Cash accounts are typically unrestricted.
Due to these cards having two different accounts, transaction operations specific to EBT are necessary in order to differentiate. Specifically, purchase, refund, and balance operations.
EBT is included in the standard transaction reports. Which can be filtered to only include EBT if EBT specific reporting is needed.
Get the balance on a Cash account
libmonetra KVS equivalent for endpoint
action_trans
= ebtcbbalance
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
object Account information parameters There are multiple ways to collect the customer's account information for EBT cards. Currently there are no EBT cards issued as EMV chip cards. EBT cards also cannot be tokenized. These are the minimum fields required for each entry method.
All EBT transactions require PIN entry along with the account data. Only EBT food transactions allow keyed entry. They still require PIN even when keyed. EBT cash transactions must be swiped. ENCRYPTION Many of these can be sent encrypted when using an encrypting reader with
a supported encryption method. The Due to the difference in encrypted reader output and some formats being proprietary limited information about the encrypted account fields are provided. If it is necessary to directly send encrypted reader data to Monetra please contact support who can work with you and the device manufacturer on how to format the data for the relevant fields to a given device. | |
required | object PIN data parameters |
rcpt | string The A value of A value of All other values are key/value pairs indicating formatting configurations, separated by semicolons, as in this example:
Receipt configuration options:
|
rcpt_user_notes | string Arbitrary user-specified notes to include in the |
property name* additional property | string |
{- "profile_id": "78965743785967",
- "account_data": {
- "account": "5454545454545454",
- "cardshieldticket": "567865678987",
- "e_account": "DEF5325DEA5678DB6",
- "e_datafield": "DE45AC529FDE35",
- "e_datafieldfmt": "account|expdate",
- "e_datafieldmasked": "5454********5454",
- "e_trackdata": "...",
- "e_id": "645FF245ED34CD5A",
- "expdate": "0129",
- "trackdata": "%B4111111111111111^TEST CARD/VI^29121015432112345678?;4111111111111111=29121015432112345678?"
}, - "pin_data": {
- "ksn": "654321007CE00114",
- "pin": "AE86DE23D2276C3B"
}, - "rcpt": "yes",
- "rcpt_user_notes": "Review your order at http://...",
- "property1": "string",
- "property2": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "phard_code": "SUCCESS",
- "draft_locator_id": "24FDBDD0902",
- "card_currency": "840",
- "card_cardclass": "CREDIT",
- "card_cardlevel": "V^",
- "card_country_code": "840",
- "card_debit_network": "19N|14N",
- "card_ebt_state": "HI",
- "card_fsa": "N",
- "card_funding_source": "CREDIT",
- "card_issuer_bank": "1st Bank of Money",
- "card_msr_cvm": "sig",
- "card_prepaid": "Y",
- "card_reloadable": "N",
- "card_signature_debit": "N",
- "card_token_card": "N",
- "account": "XXXXXXXXXXXX1234",
- "cardtype": "VISA",
- "cardholdername": "John Doe",
- "language": "en",
- "pclevel": "0",
- "rcpt_host_ts": "052422143743",
- "rcpt_entry_mode": "C",
- "rcpt_acct_type": "chequing",
- "rcpt_emv_cvm": "none",
- "rcpt_emv_pinbypass": "N",
- "rcpt_resp_code": "A00",
- "rcpt_issuer_resp_code": "00",
- "rcpt_emv_aid": "A0000000031010",
- "rcpt_emv_name": "Visa Credit",
- "rcpt_emv_tvr": "8080008000",
- "rcpt_emv_tsi": "6800",
- "rcpt_emv_actype": "ARQC",
- "rcpt_emv_ac": "D737017E33C78692",
- "rcpt_emv_form_factor": "05",
- "rcpt_custom": "Rec Num:002000089,Transid:940152939191917,VCode:1234",
- "rcpt_emv_iad": "06010A03A02000",
- "rcpt_emv_card_decline": "...",
- "printdata": "APPRoVED",
- "balance": "12.00",
- "timestamp": "2022-05-24 15:06:13 -0400"
}
Debit funds from a Cash account
libmonetra KVS equivalent for endpoint
action_trans
= ebtcbsale
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
object Account information parameters There are multiple ways to collect the customer's account information for EBT cards. Currently there are no EBT cards issued as EMV chip cards. EBT cards also cannot be tokenized. These are the minimum fields required for each entry method.
All EBT transactions require PIN entry along with the account data. Only EBT food transactions allow keyed entry. They still require PIN even when keyed. EBT cash transactions must be swiped. ENCRYPTION Many of these can be sent encrypted when using an encrypting reader with
a supported encryption method. The Due to the difference in encrypted reader output and some formats being proprietary limited information about the encrypted account fields are provided. If it is necessary to directly send encrypted reader data to Monetra please contact support who can work with you and the device manufacturer on how to format the data for the relevant fields to a given device. | |
object Merchant descriptor parameters | |
object Merchant lane parameters | |
object Order detail parameters | |
required | object PIN data parameters |
object Processing options | |
amount required | string\d*(\.\d{0,2})? Amount of money, including decimal. E.g This is the total amount and is an aggregate of all supplementary amounts. |
nsf | string Enum: "yes" "no" Approve transactions even if there are non-sufficient funds (NSF). This will
result in a partial approval if there are not enough funds to cover the full
requested amount, in which case an Gift cards default to If a partial approval is received, it will automatically be reversed internally
and the returned decline will have Values:
|
carddenylist_check | string Enum: "yes" "no" Check the card deny list before going online for authorization If on the list, decline with The value Only the account number is used to determine if there is a match on the list. Other paramters, such as card holder name and card expiration date are not used. Values:
|
carddenylist_decline | string Enum: "yes" "no" Automatically add account to the card deny list if declined by the issuer Values:
|
rcpt | string The A value of A value of All other values are key/value pairs indicating formatting configurations, separated by semicolons, as in this example:
Receipt configuration options:
|
rcpt_user_notes | string Arbitrary user-specified notes to include in the |
property name* additional property | string |
{- "profile_id": "78965743785967",
- "account_data": {
- "account": "5454545454545454",
- "cardshieldticket": "567865678987",
- "e_account": "DEF5325DEA5678DB6",
- "e_datafield": "DE45AC529FDE35",
- "e_datafieldfmt": "account|expdate",
- "e_datafieldmasked": "5454********5454",
- "e_trackdata": "...",
- "e_id": "645FF245ED34CD5A",
- "expdate": "0129",
- "trackdata": "%B4111111111111111^TEST CARD/VI^29121015432112345678?;4111111111111111=29121015432112345678?"
}, - "merchant_descriptors": {
- "descmerch": "Pizza Palace LLC",
- "descloc": "Store CA 543"
}, - "lane": {
- "clerkid": "Doe-1553",
- "stationid": "7",
- "laneid": "4",
- "comments": "Extra beef",
- "divisionnum": "PAYROLL"
}, - "order": {
- "custref": "55",
- "ordernum": "A13DDES345",
- "order_id": "7654323456"
}, - "pin_data": {
- "ksn": "654321007CE00114",
- "pin": "AE86DE23D2276C3B"
}, - "processing_options": {
- "capture": "yes",
- "debtrepayment": "no",
- "duplcheck": "no",
- "priority": "normal",
- "timeout": "30"
}, - "amount": "19.92",
- "nsf": "yes",
- "carddenylist_check": "no",
- "carddenylist_decline": "no",
- "rcpt": "yes",
- "rcpt_user_notes": "Review your order at http://...",
- "property1": "string",
- "property2": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "phard_code": "SUCCESS",
- "draft_locator_id": "24FDBDD0902",
- "card_currency": "840",
- "card_cardclass": "CREDIT",
- "card_cardlevel": "V^",
- "card_country_code": "840",
- "card_debit_network": "19N|14N",
- "card_ebt_state": "HI",
- "card_fsa": "N",
- "card_funding_source": "CREDIT",
- "card_issuer_bank": "1st Bank of Money",
- "card_msr_cvm": "sig",
- "card_prepaid": "Y",
- "card_reloadable": "N",
- "card_signature_debit": "N",
- "card_token_card": "N",
- "rcpt_host_ts": "052422143743",
- "rcpt_entry_mode": "C",
- "rcpt_acct_type": "chequing",
- "rcpt_emv_cvm": "none",
- "rcpt_emv_pinbypass": "N",
- "rcpt_resp_code": "A00",
- "rcpt_issuer_resp_code": "00",
- "rcpt_emv_aid": "A0000000031010",
- "rcpt_emv_name": "Visa Credit",
- "rcpt_emv_tvr": "8080008000",
- "rcpt_emv_tsi": "6800",
- "rcpt_emv_actype": "ARQC",
- "rcpt_emv_ac": "D737017E33C78692",
- "rcpt_emv_form_factor": "05",
- "rcpt_custom": "Rec Num:002000089,Transid:940152939191917,VCode:1234",
- "rcpt_emv_iad": "06010A03A02000",
- "rcpt_emv_card_decline": "...",
- "printdata": "APPRoVED",
- "auth": "B2DAA3",
- "batch": "47",
- "issuer_decline": "Y",
- "item": "1245",
- "stan": "994532",
- "proc": "loopback",
- "authamount": "6.50",
- "balance": "12.00",
- "account": "XXXXXXXXXXXX1234",
- "timestamp": "2022-05-24 15:06:13 -0400",
- "cardtype": "VISA",
- "cardholdername": "John Doe",
- "language": "en",
- "pclevel": "0",
- "carddenylist_id": "67898765",
- "ttid": "96748596765467"
}
Get the balance on a Food account
libmonetra KVS equivalent for endpoint
action_trans
= ebtfsbalance
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
object Account information parameters There are multiple ways to collect the customer's account information for EBT cards. Currently there are no EBT cards issued as EMV chip cards. EBT cards also cannot be tokenized. These are the minimum fields required for each entry method.
All EBT transactions require PIN entry along with the account data. Only EBT food transactions allow keyed entry. They still require PIN even when keyed. EBT cash transactions must be swiped. ENCRYPTION Many of these can be sent encrypted when using an encrypting reader with
a supported encryption method. The Due to the difference in encrypted reader output and some formats being proprietary limited information about the encrypted account fields are provided. If it is necessary to directly send encrypted reader data to Monetra please contact support who can work with you and the device manufacturer on how to format the data for the relevant fields to a given device. | |
required | object PIN data parameters |
rcpt | string The A value of A value of All other values are key/value pairs indicating formatting configurations, separated by semicolons, as in this example:
Receipt configuration options:
|
rcpt_user_notes | string Arbitrary user-specified notes to include in the |
property name* additional property | string |
{- "profile_id": "78965743785967",
- "account_data": {
- "account": "5454545454545454",
- "cardshieldticket": "567865678987",
- "e_account": "DEF5325DEA5678DB6",
- "e_datafield": "DE45AC529FDE35",
- "e_datafieldfmt": "account|expdate",
- "e_datafieldmasked": "5454********5454",
- "e_trackdata": "...",
- "e_id": "645FF245ED34CD5A",
- "expdate": "0129",
- "trackdata": "%B4111111111111111^TEST CARD/VI^29121015432112345678?;4111111111111111=29121015432112345678?"
}, - "pin_data": {
- "ksn": "654321007CE00114",
- "pin": "AE86DE23D2276C3B"
}, - "rcpt": "yes",
- "rcpt_user_notes": "Review your order at http://...",
- "property1": "string",
- "property2": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "phard_code": "SUCCESS",
- "draft_locator_id": "24FDBDD0902",
- "card_currency": "840",
- "card_cardclass": "CREDIT",
- "card_cardlevel": "V^",
- "card_country_code": "840",
- "card_debit_network": "19N|14N",
- "card_ebt_state": "HI",
- "card_fsa": "N",
- "card_funding_source": "CREDIT",
- "card_issuer_bank": "1st Bank of Money",
- "card_msr_cvm": "sig",
- "card_prepaid": "Y",
- "card_reloadable": "N",
- "card_signature_debit": "N",
- "card_token_card": "N",
- "rcpt_host_ts": "052422143743",
- "rcpt_entry_mode": "C",
- "rcpt_acct_type": "chequing",
- "rcpt_emv_cvm": "none",
- "rcpt_emv_pinbypass": "N",
- "rcpt_resp_code": "A00",
- "rcpt_issuer_resp_code": "00",
- "rcpt_emv_aid": "A0000000031010",
- "rcpt_emv_name": "Visa Credit",
- "rcpt_emv_tvr": "8080008000",
- "rcpt_emv_tsi": "6800",
- "rcpt_emv_actype": "ARQC",
- "rcpt_emv_ac": "D737017E33C78692",
- "rcpt_emv_form_factor": "05",
- "rcpt_custom": "Rec Num:002000089,Transid:940152939191917,VCode:1234",
- "rcpt_emv_iad": "06010A03A02000",
- "rcpt_emv_card_decline": "...",
- "printdata": "APPRoVED",
- "account": "XXXXXXXXXXXX1234",
- "cardtype": "VISA",
- "cardholdername": "John Doe",
- "language": "en",
- "pclevel": "0",
- "balance": "12.00",
- "timestamp": "2022-05-24 15:06:13 -0400"
}
Debit funds from a Food account
libmonetra KVS equivalent for endpoint
action_trans
= ebtfssale
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
object Account information parameters There are multiple ways to collect the customer's account information for EBT cards. Currently there are no EBT cards issued as EMV chip cards. EBT cards also cannot be tokenized. These are the minimum fields required for each entry method.
All EBT transactions require PIN entry along with the account data. Only EBT food transactions allow keyed entry. They still require PIN even when keyed. EBT cash transactions must be swiped. ENCRYPTION Many of these can be sent encrypted when using an encrypting reader with
a supported encryption method. The Due to the difference in encrypted reader output and some formats being proprietary limited information about the encrypted account fields are provided. If it is necessary to directly send encrypted reader data to Monetra please contact support who can work with you and the device manufacturer on how to format the data for the relevant fields to a given device. | |
object Merchant descriptor parameters | |
object Merchant lane parameters | |
object Order detail parameters | |
required | object PIN data parameters |
object Processing options | |
amount required | string\d*(\.\d{0,2})? Amount of money, including decimal. E.g This is the total amount and is an aggregate of all supplementary amounts. |
nsf | string Enum: "yes" "no" Approve transactions even if there are non-sufficient funds (NSF). This will
result in a partial approval if there are not enough funds to cover the full
requested amount, in which case an Gift cards default to If a partial approval is received, it will automatically be reversed internally
and the returned decline will have Values:
|
carddenylist_check | string Enum: "yes" "no" Check the card deny list before going online for authorization If on the list, decline with The value Only the account number is used to determine if there is a match on the list. Other paramters, such as card holder name and card expiration date are not used. Values:
|
carddenylist_decline | string Enum: "yes" "no" Automatically add account to the card deny list if declined by the issuer Values:
|
rcpt | string The A value of A value of All other values are key/value pairs indicating formatting configurations, separated by semicolons, as in this example:
Receipt configuration options:
|
rcpt_user_notes | string Arbitrary user-specified notes to include in the |
property name* additional property | string |
{- "profile_id": "78965743785967",
- "account_data": {
- "account": "5454545454545454",
- "cardshieldticket": "567865678987",
- "e_account": "DEF5325DEA5678DB6",
- "e_datafield": "DE45AC529FDE35",
- "e_datafieldfmt": "account|expdate",
- "e_datafieldmasked": "5454********5454",
- "e_trackdata": "...",
- "e_id": "645FF245ED34CD5A",
- "expdate": "0129",
- "trackdata": "%B4111111111111111^TEST CARD/VI^29121015432112345678?;4111111111111111=29121015432112345678?"
}, - "merchant_descriptors": {
- "descmerch": "Pizza Palace LLC",
- "descloc": "Store CA 543"
}, - "lane": {
- "clerkid": "Doe-1553",
- "stationid": "7",
- "laneid": "4",
- "comments": "Extra beef",
- "divisionnum": "PAYROLL"
}, - "order": {
- "custref": "55",
- "ordernum": "A13DDES345",
- "order_id": "7654323456"
}, - "pin_data": {
- "ksn": "654321007CE00114",
- "pin": "AE86DE23D2276C3B"
}, - "processing_options": {
- "capture": "yes",
- "debtrepayment": "no",
- "duplcheck": "no",
- "priority": "normal",
- "timeout": "30"
}, - "amount": "19.92",
- "nsf": "yes",
- "carddenylist_check": "no",
- "carddenylist_decline": "no",
- "rcpt": "yes",
- "rcpt_user_notes": "Review your order at http://...",
- "property1": "string",
- "property2": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "phard_code": "SUCCESS",
- "draft_locator_id": "24FDBDD0902",
- "card_currency": "840",
- "card_cardclass": "CREDIT",
- "card_cardlevel": "V^",
- "card_country_code": "840",
- "card_debit_network": "19N|14N",
- "card_ebt_state": "HI",
- "card_fsa": "N",
- "card_funding_source": "CREDIT",
- "card_issuer_bank": "1st Bank of Money",
- "card_msr_cvm": "sig",
- "card_prepaid": "Y",
- "card_reloadable": "N",
- "card_signature_debit": "N",
- "card_token_card": "N",
- "rcpt_host_ts": "052422143743",
- "rcpt_entry_mode": "C",
- "rcpt_acct_type": "chequing",
- "rcpt_emv_cvm": "none",
- "rcpt_emv_pinbypass": "N",
- "rcpt_resp_code": "A00",
- "rcpt_issuer_resp_code": "00",
- "rcpt_emv_aid": "A0000000031010",
- "rcpt_emv_name": "Visa Credit",
- "rcpt_emv_tvr": "8080008000",
- "rcpt_emv_tsi": "6800",
- "rcpt_emv_actype": "ARQC",
- "rcpt_emv_ac": "D737017E33C78692",
- "rcpt_emv_form_factor": "05",
- "rcpt_custom": "Rec Num:002000089,Transid:940152939191917,VCode:1234",
- "rcpt_emv_iad": "06010A03A02000",
- "rcpt_emv_card_decline": "...",
- "printdata": "APPRoVED",
- "auth": "B2DAA3",
- "batch": "47",
- "issuer_decline": "Y",
- "item": "1245",
- "stan": "994532",
- "proc": "loopback",
- "authamount": "6.50",
- "balance": "12.00",
- "account": "XXXXXXXXXXXX1234",
- "timestamp": "2022-05-24 15:06:13 -0400",
- "cardtype": "VISA",
- "cardholdername": "John Doe",
- "language": "en",
- "pclevel": "0",
- "carddenylist_id": "67898765",
- "ttid": "96748596765467"
}
Refund to a EBT Food account
The card holder must be present and provide the
card including PIN in order to perform the refund.
The user flag ALLOW_UNLINKED_REFUND
must be enabled
on the user account in order to perform this action.
libmonetra KVS equivalent for endpoint
action_trans
= ebtfsreturn
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
object Account information parameters There are multiple ways to collect the customer's account information for EBT cards. Currently there are no EBT cards issued as EMV chip cards. EBT cards also cannot be tokenized. These are the minimum fields required for each entry method.
All EBT transactions require PIN entry along with the account data. Only EBT food transactions allow keyed entry. They still require PIN even when keyed. EBT cash transactions must be swiped. ENCRYPTION Many of these can be sent encrypted when using an encrypting reader with
a supported encryption method. The Due to the difference in encrypted reader output and some formats being proprietary limited information about the encrypted account fields are provided. If it is necessary to directly send encrypted reader data to Monetra please contact support who can work with you and the device manufacturer on how to format the data for the relevant fields to a given device. | |
object Merchant descriptor parameters | |
object Merchant lane parameters | |
object Order detail parameters | |
required | object PIN data parameters |
object Processing options | |
amount required | string\d*(\.\d{0,2})? Amount of money, including decimal. E.g This is the total amount and is an aggregate of all supplementary amounts. |
nsf | string Enum: "yes" "no" Approve transactions even if there are non-sufficient funds (NSF). This will
result in a partial approval if there are not enough funds to cover the full
requested amount, in which case an Gift cards default to If a partial approval is received, it will automatically be reversed internally
and the returned decline will have Values:
|
carddenylist_check | string Enum: "yes" "no" Check the card deny list before going online for authorization If on the list, decline with The value Only the account number is used to determine if there is a match on the list. Other paramters, such as card holder name and card expiration date are not used. Values:
|
carddenylist_decline | string Enum: "yes" "no" Automatically add account to the card deny list if declined by the issuer Values:
|
rcpt | string The A value of A value of All other values are key/value pairs indicating formatting configurations, separated by semicolons, as in this example:
Receipt configuration options:
|
rcpt_user_notes | string Arbitrary user-specified notes to include in the |
property name* additional property | string |
{- "profile_id": "78965743785967",
- "account_data": {
- "account": "5454545454545454",
- "cardshieldticket": "567865678987",
- "e_account": "DEF5325DEA5678DB6",
- "e_datafield": "DE45AC529FDE35",
- "e_datafieldfmt": "account|expdate",
- "e_datafieldmasked": "5454********5454",
- "e_trackdata": "...",
- "e_id": "645FF245ED34CD5A",
- "expdate": "0129",
- "trackdata": "%B4111111111111111^TEST CARD/VI^29121015432112345678?;4111111111111111=29121015432112345678?"
}, - "merchant_descriptors": {
- "descmerch": "Pizza Palace LLC",
- "descloc": "Store CA 543"
}, - "lane": {
- "clerkid": "Doe-1553",
- "stationid": "7",
- "laneid": "4",
- "comments": "Extra beef",
- "divisionnum": "PAYROLL"
}, - "order": {
- "custref": "55",
- "ordernum": "A13DDES345",
- "order_id": "7654323456"
}, - "pin_data": {
- "ksn": "654321007CE00114",
- "pin": "AE86DE23D2276C3B"
}, - "processing_options": {
- "capture": "yes",
- "debtrepayment": "no",
- "duplcheck": "no",
- "priority": "normal",
- "timeout": "30"
}, - "amount": "19.92",
- "nsf": "yes",
- "carddenylist_check": "no",
- "carddenylist_decline": "no",
- "rcpt": "yes",
- "rcpt_user_notes": "Review your order at http://...",
- "property1": "string",
- "property2": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "phard_code": "SUCCESS",
- "draft_locator_id": "24FDBDD0902",
- "card_currency": "840",
- "card_cardclass": "CREDIT",
- "card_cardlevel": "V^",
- "card_country_code": "840",
- "card_debit_network": "19N|14N",
- "card_ebt_state": "HI",
- "card_fsa": "N",
- "card_funding_source": "CREDIT",
- "card_issuer_bank": "1st Bank of Money",
- "card_msr_cvm": "sig",
- "card_prepaid": "Y",
- "card_reloadable": "N",
- "card_signature_debit": "N",
- "card_token_card": "N",
- "rcpt_host_ts": "052422143743",
- "rcpt_entry_mode": "C",
- "rcpt_acct_type": "chequing",
- "rcpt_emv_cvm": "none",
- "rcpt_emv_pinbypass": "N",
- "rcpt_resp_code": "A00",
- "rcpt_issuer_resp_code": "00",
- "rcpt_emv_aid": "A0000000031010",
- "rcpt_emv_name": "Visa Credit",
- "rcpt_emv_tvr": "8080008000",
- "rcpt_emv_tsi": "6800",
- "rcpt_emv_actype": "ARQC",
- "rcpt_emv_ac": "D737017E33C78692",
- "rcpt_emv_form_factor": "05",
- "rcpt_custom": "Rec Num:002000089,Transid:940152939191917,VCode:1234",
- "rcpt_emv_iad": "06010A03A02000",
- "rcpt_emv_card_decline": "...",
- "printdata": "APPRoVED",
- "auth": "B2DAA3",
- "batch": "47",
- "issuer_decline": "Y",
- "item": "1245",
- "stan": "994532",
- "proc": "loopback",
- "authamount": "6.50",
- "balance": "12.00",
- "account": "XXXXXXXXXXXX1234",
- "avs": "GOOD",
- "cv": "GOOD",
- "cardtype": "VISA",
- "cardholdername": "John Doe",
- "language": "en",
- "pclevel": "0",
- "timestamp": "2022-05-24 15:06:13 -0400",
- "carddenylist_id": "67898765",
- "ttid": "96748596765467"
}
Paper checks can be converted to a digital check and processed. This is not an ACH transaction, it is for accepting physical, paper checks. ACH processing uses standard transaction operations.
Checks do not undergo real time authorization with the customer's bank. The verification operation uses a block list service provided by the check processor in order to determine if the account has had non-payment instances in the past.
In order to alleviate issues with failure to fund, check processors provide conversation with guarantee. The guarantee is provided by the check processor who will fund even if the check cannot be funded. Typically, an additional fee is charged by the check processor for this service.
The paper check after being accepted and approved by the check processor can be scanned and an image uploaded to Monetra using the "Store Check" image operation for record keeping purposes.
Convert a check
This is a simple conversion with no additional features
libmonetra KVS equivalent for endpoint
action_trans
= checkconvonly
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
required | object Account information parameters |
object Verification parameters | |
object Shipping detail parameters | |
object Healthcare parameters | |
object Lodging parameters | |
object Merchant descriptor parameters | |
required | object Monetary parameters |
object Order detail parameters | |
object Merchant lane parameters | |
object Processing options | |
tokenize | string Default: "no" Enum: "yes" "no" Whether or not the account data should be tokenized as part of this request. Defaults to The token will be of type When enabled, by default, this will generate a new token. If Values:
|
matching_token | string Default: "no" Enum: "yes" "no" When paired with By default, every tokenization will generate a new token. Sending
Requires:
Values:
|
rcpt | string The A value of A value of All other values are key/value pairs indicating formatting configurations, separated by semicolons, as in this example:
Receipt configuration options:
|
rcpt_user_notes | string Arbitrary user-specified notes to include in the |
property name* additional property | string |
{- "profile_id": "78965743785967",
- "account_data": {
- "micr": "...",
- "dltrack2": "...",
- "dlnumber": "FL445739643",
- "dlstate": "FL",
- "dob": "01011970",
- "accounttype": "PERSONAL|CHECKING"
}, - "verification": {
- "cv": "123",
- "street": "1st St",
- "zip": "32606"
}, - "shipping": {
- "shipcountry": "840",
- "shipzip": "32789"
}, - "health": {
- "healthcare": "no",
- "dentalamount": "1.76",
- "clinicamount": "1.75",
- "otheramount": "1.77",
- "rxamount": "1.78",
- "transitamount": "1.79",
- "visionamount": "1.80"
}, - "lodging": {
- "advancedeposit": "no",
- "noshow": "yes",
- "bdate": "now",
- "edate": "+3 days",
- "excharges": "GIFT|MINI",
- "rate": "12.00",
- "roomnum": "5143"
}, - "merchant_descriptors": {
- "descmerch": "Pizza Palace LLC",
- "descloc": "Store CA 543"
}, - "money": {
- "amount": "19.92",
- "cashbackamount": "20.00",
- "currency": "124",
- "examount": "0.33",
- "surchargeamount": "1.25",
- "tax": "1.29",
- "discountamount": "100.00",
- "dutyamount": "5.07",
- "freightamount": "225.82",
- "convenience_fee": "1.23",
- "supplemental_fee": "1.23"
}, - "order": {
- "custref": "55",
- "ordernum": "A13DDES345",
- "order_id": "7654323456"
}, - "lane": {
- "clerkid": "Doe-1553",
- "stationid": "7",
- "laneid": "4",
- "comments": "Extra beef",
- "divisionnum": "PAYROLL"
}, - "processing_options": {
- "capture": "yes",
- "debtrepayment": "no",
- "duplcheck": "no",
- "priority": "normal",
- "timeout": "30"
}, - "tokenize": "no",
- "matching_token": "yes",
- "rcpt": "yes",
- "rcpt_user_notes": "Review your order at http://...",
- "property1": "string",
- "property2": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "phard_code": "SUCCESS",
- "draft_locator_id": "24FDBDD0902",
- "rcpt_host_ts": "052422143743",
- "rcpt_entry_mode": "C",
- "rcpt_acct_type": "chequing",
- "rcpt_emv_cvm": "none",
- "rcpt_emv_pinbypass": "N",
- "rcpt_resp_code": "A00",
- "rcpt_issuer_resp_code": "00",
- "rcpt_emv_aid": "A0000000031010",
- "rcpt_emv_name": "Visa Credit",
- "rcpt_emv_tvr": "8080008000",
- "rcpt_emv_tsi": "6800",
- "rcpt_emv_actype": "ARQC",
- "rcpt_emv_ac": "D737017E33C78692",
- "rcpt_emv_form_factor": "05",
- "rcpt_custom": "Rec Num:002000089,Transid:940152939191917,VCode:1234",
- "rcpt_emv_iad": "06010A03A02000",
- "rcpt_emv_card_decline": "...",
- "printdata": "APPRoVED",
- "auth": "B2DAA3",
- "batch": "47",
- "cardtype": "VISA",
- "issuer_decline": "Y",
- "item": "1245",
- "stan": "994532",
- "proc": "loopback",
- "timestamp": "2022-05-24 15:06:13 -0400",
- "ttid": "96748596765467"
}
Convert a check with a guarantee on funds
libmonetra KVS equivalent for endpoint
action_trans
= checkconvguar
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
required | object Account information parameters |
object Verification parameters | |
object Shipping detail parameters | |
object Healthcare parameters | |
object Lodging parameters | |
object Merchant descriptor parameters | |
required | object Monetary parameters |
object Order detail parameters | |
object Merchant lane parameters | |
object Processing options | |
tokenize | string Default: "no" Enum: "yes" "no" Whether or not the account data should be tokenized as part of this request. Defaults to The token will be of type When enabled, by default, this will generate a new token. If Values:
|
matching_token | string Default: "no" Enum: "yes" "no" When paired with By default, every tokenization will generate a new token. Sending
Requires:
Values:
|
rcpt | string The A value of A value of All other values are key/value pairs indicating formatting configurations, separated by semicolons, as in this example:
Receipt configuration options:
|
rcpt_user_notes | string Arbitrary user-specified notes to include in the |
property name* additional property | string |
{- "profile_id": "78965743785967",
- "account_data": {
- "micr": "...",
- "dltrack2": "...",
- "dlnumber": "FL445739643",
- "dlstate": "FL",
- "dob": "01011970",
- "accounttype": "PERSONAL|CHECKING"
}, - "verification": {
- "cv": "123",
- "street": "1st St",
- "zip": "32606"
}, - "shipping": {
- "shipcountry": "840",
- "shipzip": "32789"
}, - "health": {
- "healthcare": "no",
- "dentalamount": "1.76",
- "clinicamount": "1.75",
- "otheramount": "1.77",
- "rxamount": "1.78",
- "transitamount": "1.79",
- "visionamount": "1.80"
}, - "lodging": {
- "advancedeposit": "no",
- "noshow": "yes",
- "bdate": "now",
- "edate": "+3 days",
- "excharges": "GIFT|MINI",
- "rate": "12.00",
- "roomnum": "5143"
}, - "merchant_descriptors": {
- "descmerch": "Pizza Palace LLC",
- "descloc": "Store CA 543"
}, - "money": {
- "amount": "19.92",
- "cashbackamount": "20.00",
- "currency": "124",
- "examount": "0.33",
- "surchargeamount": "1.25",
- "tax": "1.29",
- "discountamount": "100.00",
- "dutyamount": "5.07",
- "freightamount": "225.82",
- "convenience_fee": "1.23",
- "supplemental_fee": "1.23"
}, - "order": {
- "custref": "55",
- "ordernum": "A13DDES345",
- "order_id": "7654323456"
}, - "lane": {
- "clerkid": "Doe-1553",
- "stationid": "7",
- "laneid": "4",
- "comments": "Extra beef",
- "divisionnum": "PAYROLL"
}, - "processing_options": {
- "capture": "yes",
- "debtrepayment": "no",
- "duplcheck": "no",
- "priority": "normal",
- "timeout": "30"
}, - "tokenize": "no",
- "matching_token": "yes",
- "rcpt": "yes",
- "rcpt_user_notes": "Review your order at http://...",
- "property1": "string",
- "property2": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "phard_code": "SUCCESS",
- "draft_locator_id": "24FDBDD0902",
- "rcpt_host_ts": "052422143743",
- "rcpt_entry_mode": "C",
- "rcpt_acct_type": "chequing",
- "rcpt_emv_cvm": "none",
- "rcpt_emv_pinbypass": "N",
- "rcpt_resp_code": "A00",
- "rcpt_issuer_resp_code": "00",
- "rcpt_emv_aid": "A0000000031010",
- "rcpt_emv_name": "Visa Credit",
- "rcpt_emv_tvr": "8080008000",
- "rcpt_emv_tsi": "6800",
- "rcpt_emv_actype": "ARQC",
- "rcpt_emv_ac": "D737017E33C78692",
- "rcpt_emv_form_factor": "05",
- "rcpt_custom": "Rec Num:002000089,Transid:940152939191917,VCode:1234",
- "rcpt_emv_iad": "06010A03A02000",
- "rcpt_emv_card_decline": "...",
- "printdata": "APPRoVED",
- "auth": "B2DAA3",
- "batch": "47",
- "cardtype": "VISA",
- "issuer_decline": "Y",
- "item": "1245",
- "stan": "994532",
- "proc": "loopback",
- "timestamp": "2022-05-24 15:06:13 -0400",
- "ttid": "96748596765467"
}
Convert a check with override
This overrides a previous failure.
libmonetra KVS equivalent for endpoint
action_trans
= checkconvover
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
required | object Account information parameters |
object Verification parameters | |
object Shipping detail parameters | |
object Healthcare parameters | |
object Lodging parameters | |
object Merchant descriptor parameters | |
required | object Monetary parameters |
object Order detail parameters | |
object Merchant lane parameters | |
object Processing options | |
tokenize | string Default: "no" Enum: "yes" "no" Whether or not the account data should be tokenized as part of this request. Defaults to The token will be of type When enabled, by default, this will generate a new token. If Values:
|
matching_token | string Default: "no" Enum: "yes" "no" When paired with By default, every tokenization will generate a new token. Sending
Requires:
Values:
|
rcpt | string The A value of A value of All other values are key/value pairs indicating formatting configurations, separated by semicolons, as in this example:
Receipt configuration options:
|
rcpt_user_notes | string Arbitrary user-specified notes to include in the |
property name* additional property | string |
{- "profile_id": "78965743785967",
- "account_data": {
- "micr": "...",
- "dltrack2": "...",
- "dlnumber": "FL445739643",
- "dlstate": "FL",
- "dob": "01011970",
- "accounttype": "PERSONAL|CHECKING"
}, - "verification": {
- "cv": "123",
- "street": "1st St",
- "zip": "32606"
}, - "shipping": {
- "shipcountry": "840",
- "shipzip": "32789"
}, - "health": {
- "healthcare": "no",
- "dentalamount": "1.76",
- "clinicamount": "1.75",
- "otheramount": "1.77",
- "rxamount": "1.78",
- "transitamount": "1.79",
- "visionamount": "1.80"
}, - "lodging": {
- "advancedeposit": "no",
- "noshow": "yes",
- "bdate": "now",
- "edate": "+3 days",
- "excharges": "GIFT|MINI",
- "rate": "12.00",
- "roomnum": "5143"
}, - "merchant_descriptors": {
- "descmerch": "Pizza Palace LLC",
- "descloc": "Store CA 543"
}, - "money": {
- "amount": "19.92",
- "cashbackamount": "20.00",
- "currency": "124",
- "examount": "0.33",
- "surchargeamount": "1.25",
- "tax": "1.29",
- "discountamount": "100.00",
- "dutyamount": "5.07",
- "freightamount": "225.82",
- "convenience_fee": "1.23",
- "supplemental_fee": "1.23"
}, - "order": {
- "custref": "55",
- "ordernum": "A13DDES345",
- "order_id": "7654323456"
}, - "lane": {
- "clerkid": "Doe-1553",
- "stationid": "7",
- "laneid": "4",
- "comments": "Extra beef",
- "divisionnum": "PAYROLL"
}, - "processing_options": {
- "capture": "yes",
- "debtrepayment": "no",
- "duplcheck": "no",
- "priority": "normal",
- "timeout": "30"
}, - "tokenize": "no",
- "matching_token": "yes",
- "rcpt": "yes",
- "rcpt_user_notes": "Review your order at http://...",
- "property1": "string",
- "property2": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "phard_code": "SUCCESS",
- "draft_locator_id": "24FDBDD0902",
- "rcpt_host_ts": "052422143743",
- "rcpt_entry_mode": "C",
- "rcpt_acct_type": "chequing",
- "rcpt_emv_cvm": "none",
- "rcpt_emv_pinbypass": "N",
- "rcpt_resp_code": "A00",
- "rcpt_issuer_resp_code": "00",
- "rcpt_emv_aid": "A0000000031010",
- "rcpt_emv_name": "Visa Credit",
- "rcpt_emv_tvr": "8080008000",
- "rcpt_emv_tsi": "6800",
- "rcpt_emv_actype": "ARQC",
- "rcpt_emv_ac": "D737017E33C78692",
- "rcpt_emv_form_factor": "05",
- "rcpt_custom": "Rec Num:002000089,Transid:940152939191917,VCode:1234",
- "rcpt_emv_iad": "06010A03A02000",
- "rcpt_emv_card_decline": "...",
- "printdata": "APPRoVED",
- "auth": "B2DAA3",
- "batch": "47",
- "cardtype": "VISA",
- "issuer_decline": "Y",
- "item": "1245",
- "stan": "994532",
- "proc": "loopback",
- "timestamp": "2022-05-24 15:06:13 -0400",
- "ttid": "96748596765467"
}
Convert a check with verification
libmonetra KVS equivalent for endpoint
action_trans
= checkconvonly
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
required | object Account information parameters |
object Verification parameters | |
object Shipping detail parameters | |
object Healthcare parameters | |
object Lodging parameters | |
object Merchant descriptor parameters | |
required | object Monetary parameters |
object Order detail parameters | |
object Merchant lane parameters | |
object Processing options | |
tokenize | string Default: "no" Enum: "yes" "no" Whether or not the account data should be tokenized as part of this request. Defaults to The token will be of type When enabled, by default, this will generate a new token. If Values:
|
matching_token | string Default: "no" Enum: "yes" "no" When paired with By default, every tokenization will generate a new token. Sending
Requires:
Values:
|
rcpt | string The A value of A value of All other values are key/value pairs indicating formatting configurations, separated by semicolons, as in this example:
Receipt configuration options:
|
rcpt_user_notes | string Arbitrary user-specified notes to include in the |
property name* additional property | string |
{- "profile_id": "78965743785967",
- "account_data": {
- "micr": "...",
- "dltrack2": "...",
- "dlnumber": "FL445739643",
- "dlstate": "FL",
- "dob": "01011970",
- "accounttype": "PERSONAL|CHECKING"
}, - "verification": {
- "cv": "123",
- "street": "1st St",
- "zip": "32606"
}, - "shipping": {
- "shipcountry": "840",
- "shipzip": "32789"
}, - "health": {
- "healthcare": "no",
- "dentalamount": "1.76",
- "clinicamount": "1.75",
- "otheramount": "1.77",
- "rxamount": "1.78",
- "transitamount": "1.79",
- "visionamount": "1.80"
}, - "lodging": {
- "advancedeposit": "no",
- "noshow": "yes",
- "bdate": "now",
- "edate": "+3 days",
- "excharges": "GIFT|MINI",
- "rate": "12.00",
- "roomnum": "5143"
}, - "merchant_descriptors": {
- "descmerch": "Pizza Palace LLC",
- "descloc": "Store CA 543"
}, - "money": {
- "amount": "19.92",
- "cashbackamount": "20.00",
- "currency": "124",
- "examount": "0.33",
- "surchargeamount": "1.25",
- "tax": "1.29",
- "discountamount": "100.00",
- "dutyamount": "5.07",
- "freightamount": "225.82",
- "convenience_fee": "1.23",
- "supplemental_fee": "1.23"
}, - "order": {
- "custref": "55",
- "ordernum": "A13DDES345",
- "order_id": "7654323456"
}, - "lane": {
- "clerkid": "Doe-1553",
- "stationid": "7",
- "laneid": "4",
- "comments": "Extra beef",
- "divisionnum": "PAYROLL"
}, - "processing_options": {
- "capture": "yes",
- "debtrepayment": "no",
- "duplcheck": "no",
- "priority": "normal",
- "timeout": "30"
}, - "tokenize": "no",
- "matching_token": "yes",
- "rcpt": "yes",
- "rcpt_user_notes": "Review your order at http://...",
- "property1": "string",
- "property2": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "phard_code": "SUCCESS",
- "draft_locator_id": "24FDBDD0902",
- "rcpt_host_ts": "052422143743",
- "rcpt_entry_mode": "C",
- "rcpt_acct_type": "chequing",
- "rcpt_emv_cvm": "none",
- "rcpt_emv_pinbypass": "N",
- "rcpt_resp_code": "A00",
- "rcpt_issuer_resp_code": "00",
- "rcpt_emv_aid": "A0000000031010",
- "rcpt_emv_name": "Visa Credit",
- "rcpt_emv_tvr": "8080008000",
- "rcpt_emv_tsi": "6800",
- "rcpt_emv_actype": "ARQC",
- "rcpt_emv_ac": "D737017E33C78692",
- "rcpt_emv_form_factor": "05",
- "rcpt_custom": "Rec Num:002000089,Transid:940152939191917,VCode:1234",
- "rcpt_emv_iad": "06010A03A02000",
- "rcpt_emv_card_decline": "...",
- "printdata": "APPRoVED",
- "auth": "B2DAA3",
- "batch": "47",
- "cardtype": "VISA",
- "issuer_decline": "Y",
- "item": "1245",
- "stan": "994532",
- "proc": "loopback",
- "timestamp": "2022-05-24 15:06:13 -0400",
- "ttid": "96748596765467"
}
Verify a check
This does not actually verify that the check's account exists or is in good standing. While some processors differ in their offerings, this typically performs a fraud test by checking if the account owner is known to write bad checks.
libmonetra KVS equivalent for endpoint
action_trans
= checkverify
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
required | object Account information parameters There are multiple ways to collect the customer's check information. These are the minimum fields required for each entry method.
Additonal parameters such as drivers license information may be provided. |
object Merchant lane parameters | |
object Processing options | |
rcpt | string The A value of A value of All other values are key/value pairs indicating formatting configurations, separated by semicolons, as in this example:
Receipt configuration options:
|
rcpt_user_notes | string Arbitrary user-specified notes to include in the |
property name* additional property | string |
{- "profile_id": "78965743785967",
- "account_data": {
- "micr": "...",
- "account": "5454545454545454",
- "abaroute": "267084131",
- "checknum": "45678",
- "cardholdername": "John Doe",
- "dltrack2": "...",
- "dlnumber": "FL445739643",
- "dlstate": "FL",
- "dob": "01011970",
- "accounttype": "PERSONAL|CHECKING"
}, - "lane": {
- "clerkid": "Doe-1553",
- "stationid": "7",
- "laneid": "4",
- "comments": "Extra beef",
- "divisionnum": "PAYROLL"
}, - "processing_options": {
- "capture": "yes",
- "debtrepayment": "no",
- "duplcheck": "no",
- "priority": "normal",
- "timeout": "30"
}, - "rcpt": "yes",
- "rcpt_user_notes": "Review your order at http://...",
- "property1": "string",
- "property2": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "phard_code": "SUCCESS",
- "draft_locator_id": "24FDBDD0902",
- "rcpt_host_ts": "052422143743",
- "rcpt_entry_mode": "C",
- "rcpt_acct_type": "chequing",
- "rcpt_emv_cvm": "none",
- "rcpt_emv_pinbypass": "N",
- "rcpt_resp_code": "A00",
- "rcpt_issuer_resp_code": "00",
- "rcpt_emv_aid": "A0000000031010",
- "rcpt_emv_name": "Visa Credit",
- "rcpt_emv_tvr": "8080008000",
- "rcpt_emv_tsi": "6800",
- "rcpt_emv_actype": "ARQC",
- "rcpt_emv_ac": "D737017E33C78692",
- "rcpt_emv_form_factor": "05",
- "rcpt_custom": "Rec Num:002000089,Transid:940152939191917,VCode:1234",
- "rcpt_emv_iad": "06010A03A02000",
- "rcpt_emv_card_decline": "...",
- "printdata": "APPRoVED",
- "auth": "B2DAA3",
- "batch": "47",
- "cardtype": "VISA",
- "issuer_decline": "Y",
- "item": "1245",
- "stan": "994532",
- "proc": "loopback",
- "timestamp": "2022-05-24 15:06:13 -0400",
- "ttid": "96748596765467"
}
Handle alternative payment methods
Some payment methods require a unique multipart flow which requires user interaction outside of a standard payment request.
For example, PayPal Express Checkout requires the merchant to initalize a payment
request, then direct the customer to PayPal where they can authorize the
request. At which point the merchant can perform a purchase
or preauth
if
the merchant has authorized the charge to take place.
Start a PayPal Express Checkout payment
Express Checkout allows one time purchases as well as setting up optional
"billing agreements". A billing agreement is a long term use token associated
with the customer's account which can be stored for later transactions.
It is equivalent to tokenizing a credit card. A merchant wishing to use
billing agreements should prompt the customer before initiating the altpaymentinit
action whether they want to create one or not. The customer is not given a choice
on the PayPal authorization page and not all customers will want to start a
billing agreement.
Billing Agreements can be tokenized by Monetra using the tokenize=yes
parameter
with purchases
or preauth
. One time use tokens cannot be tokenized. In which
case the agreement is stored in the account vault and a Monetra token is returned.
This token is used the same as any other token.
Note, the customer can at any time go into their PayPal account and revoke any previously authorized billing agreements.
With PayPal Express Checkout, one of three flows will be utilized.
One time payment:
altpaymentinit
action which will generate a
one time use token for subsequent operationsaltpaymentinit
. The customer customer will approve chargepurchase
/ preauth
using the one time use tokenGenerate billing agreement token:
altpaymentinit
action which will generate a
one time use token for subsequent operations. This will include the
flag stating a billing agreement is being requited by the merchantaltpaymentinit
. The customer customer will approve setting up
a billing agreement as part of the transactionpurchase
/ preauth
using the one time use token.
A billing agreement token will be generated that can be stored
for later transactionsUse already existing generated billing agreement token:
purchase
/ preauth
using the billing agreement tokenThe customer will be sent to the following URL with the one time use token
returned by altpaymentinit
passed in the URL as the '
https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=<ONE_TIME_USE_TOKEN>
Upon authorizing or declining, the customer's browser will be redirected to
either the returnurl
or cancelurl
that was provided in the altpaymentinit
request. The redirect should be back to the merchant's web site and the
redirect will provide the merchant with the one time use token that triggered
the redirect. The merchant will know whether the customer has approved or
declined the request based on the response from PayPal. At which point the
merchant will know if they should move forward with the purchase
or preauth
step.
When using an Express Checkout token with purchase
or preauth
it is passed
in the account
field. It needs to be formatting in the following way.
altpaymentinit
= 'PAYPAL|TOKEN|libmonetra KVS equivalent for endpoint
action_trans
= altpaymentinit
altpaymentinit
= paypal
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
amount required | string\d*(\.\d{0,2})? Amount of money, including decimal. E.g This is the total amount and is an aggregate of all supplementary amounts. |
returnurl required | string URL to the merchant's website the alternate payment method should redirect the customer to once they've completed the alternate method steps |
cancelurl required | string URL to the merchant's website the alternate payment method should redirect the customer to if they cancel the alternate method process |
ordernum | string <= 128 characters [0-9a-zA-Z]+ Order number An order number is required for all Card Not Present (e.g. Mail Order / Telephone Order and E-commerce) transactions, all transactions for the Restaurant industry, and all Level 2 cards such as Purchase or Corporate cards. Since it is not possible to know the card type prior to a request to Monetra, an order number should be sent on all transactions. An order number is alphanumeric. However, for the restaurant industry, it should be numeric only. Processors are limited in the number of characters that can be sent as part of a transaction. Non restaurant industry will only have 25 characters sent and restaurant will only have 6. |
string Customer's email | |
logoimg | string URL to merchant logo that should be shown |
brandname | string Company brand name to show |
billingagreement | string Default: "no" Enum: "yes" "no" Wether to generate a billing agreement with the customer Values:
|
billingagreementdescr | string Description of billing agreement to show to customer |
{- "profile_id": "78965743785967",
- "amount": "19.92",
- "ordernum": "A13DDES345",
- "email": "customer@email",
- "brandname": "string",
- "billingagreement": "no",
- "billingagreementdescr": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "phard_code": "SUCCESS",
- "draft_locator_id": "24FDBDD0902",
- "altpmtid": "EC-9R462081MR2007401"
}
Get all order payment transaction details
Gets fine-grained detail about all payments in an order.
Includes all the fields returned from an original transaction response, as well as non-sensitive request data. Additionally, metadata about the transaction state is also returned. The result data is very verbose, and only fields that are relevant to making this call should be evaluated.
libmonetra KVS equivalent for endpoint
action_admin
= tran_detail
order_id required | string Example: 58445676543 Unique ID of an order Cannot be combined with:
|
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
ttid | string Example: ttid=96748596765467 Transaction identifier Cannot be combined with:
|
payment_id | string Example: payment_id=987653645678 Unique ID of a payment for an order Requires:
|
curl -X GET 'https://testbox.monetra.com/api/v2/transaction/order/17485767483/payment' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "card_currency": "840",
- "card_cardclass": "CREDIT",
- "card_cardlevel": "V^",
- "card_country_code": "840",
- "card_debit_network": "19N|14N",
- "card_ebt_state": "HI",
- "card_fsa": "N",
- "card_funding_source": "CREDIT",
- "card_issuer_bank": "1st Bank of Money",
- "card_msr_cvm": "sig",
- "card_prepaid": "Y",
- "card_reloadable": "N",
- "card_signature_debit": "N",
- "card_token_card": "N",
- "auth": "B2DAA3",
- "batch": "47",
- "issuer_decline": "Y",
- "item": "1245",
- "stan": "994532",
- "proc": "loopback",
- "account": "XXXXXXXXXXXX1234",
- "abaroute": "267084131",
- "checknum": "45678",
- "accounttype": "PERSONAL|CHECKING",
- "cardtype": "VISA",
- "cardholdername": "John Doe",
- "language": "en",
- "pclevel": "0",
- "cof_transid": "930734056218579",
- "cof_authamount": "19.22",
- "installment_num": "17",
- "installment_total": "149",
- "recurring": "recurring",
- "avs": "GOOD",
- "cv": "GOOD",
- "shipcountry": "840",
- "shipzip": "32789",
- "zip": "32606",
- "action": "SALE",
- "orig_code": "AUTH",
- "orig_msoft_code": "INT_SUCCESS",
- "orig_phard_code": "SUCCESS",
- "orig_reqamount": "155.34",
- "orig_verbiage": "Transaction approved",
- "merch_name": "Pizza Palace",
- "merch_addr1": "777 77th Ct",
- "merch_addr2": "Jacksonville FL",
- "merch_addr3": "32789",
- "merch_phone": "555-555-5555",
- "merch_email": "merchant@email",
- "merch_proc": "loopback",
- "custref": "55",
- "ordernum": "A13DDES345",
- "amount": "19.92",
- "cashbackamount": "20.00",
- "currency": "124",
- "examount": "0.33",
- "surchargeamount": "1.25",
- "tax": "1.29",
- "discountamount": "100.00",
- "dutyamount": "5.07",
- "freightamount": "225.82",
- "convenience_fee": "1.23",
- "supplemental_fee": "1.23",
- "bdate": "-6 months",
- "edate": "now",
- "excharges": "GIFT|MINI",
- "rate": "12.00",
- "roomnum": "5143",
- "descmerch": "Pizza Palace LLC",
- "descloc": "Store CA 543",
- "clerkid": "Doe-1553",
- "stationid": "7",
- "laneid": "4",
- "comments": "Extra beef",
- "divisionnum": "PAYROLL",
- "expdate": "0129",
- "healthcare": "no",
- "reversible": "yes",
- "reversal_reason": "CLERKVOID",
- "offline_decline": "...",
- "tranflags": "CAPTURED|ONLINE|SENSITIVEDATA",
- "txnstatus": "COMPLETE|ONLINE|SENSITIVEDATA",
- "last_modified_ts": "1653422816",
- "order_id": "58445676543",
- "payment_id": "987653645678",
- "order_cash_discount": "12.37",
- "order_cash_price": "142.97",
- "order_noncash_price": "155.34",
- "order_tip": "0.50",
- "order_total": "155.34",
- "order_tax": "2.44",
- "order_discount": "5.22",
- "detail_order_notes": "Extra pickles",
- "trans": "...",
- "line_items": "...",
- "ttid": "96748596765467",
- "draft_locator_id": "24FDBDD0902",
- "property1": "string",
- "property2": "string"
}
Gets fine-grained detail about a transaction
Includes all the fields returned from an original transaction response, as well as non-sensitive request data. Additionally, metadata about the transaction state is also returned. The result data is very verbose, and only fields that are relevant to making this call should be evaluated.
libmonetra KVS equivalent for endpoint
action_admin
= tran_detail
ttid required | string Example: 96748596765467 Transaction identifier |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
curl -X GET 'https://testbox.monetra.com/api/v2/transaction/926572778835889' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "card_currency": "840",
- "card_cardclass": "CREDIT",
- "card_cardlevel": "V^",
- "card_country_code": "840",
- "card_debit_network": "19N|14N",
- "card_ebt_state": "HI",
- "card_fsa": "N",
- "card_funding_source": "CREDIT",
- "card_issuer_bank": "1st Bank of Money",
- "card_msr_cvm": "sig",
- "card_prepaid": "Y",
- "card_reloadable": "N",
- "card_signature_debit": "N",
- "card_token_card": "N",
- "auth": "B2DAA3",
- "batch": "47",
- "issuer_decline": "Y",
- "item": "1245",
- "stan": "994532",
- "proc": "loopback",
- "account": "XXXXXXXXXXXX1234",
- "abaroute": "267084131",
- "checknum": "45678",
- "accounttype": "PERSONAL|CHECKING",
- "cardtype": "VISA",
- "cardholdername": "John Doe",
- "language": "en",
- "pclevel": "0",
- "cof_transid": "930734056218579",
- "cof_authamount": "19.22",
- "installment_num": "17",
- "installment_total": "149",
- "recurring": "recurring",
- "avs": "GOOD",
- "cv": "GOOD",
- "shipcountry": "840",
- "shipzip": "32789",
- "zip": "32606",
- "action": "SALE",
- "orig_code": "AUTH",
- "orig_msoft_code": "INT_SUCCESS",
- "orig_phard_code": "SUCCESS",
- "orig_reqamount": "155.34",
- "orig_verbiage": "Transaction approved",
- "merch_name": "Pizza Palace",
- "merch_addr1": "777 77th Ct",
- "merch_addr2": "Jacksonville FL",
- "merch_addr3": "32789",
- "merch_phone": "555-555-5555",
- "merch_email": "merchant@email",
- "merch_proc": "loopback",
- "custref": "55",
- "ordernum": "A13DDES345",
- "amount": "19.92",
- "cashbackamount": "20.00",
- "currency": "124",
- "examount": "0.33",
- "surchargeamount": "1.25",
- "tax": "1.29",
- "discountamount": "100.00",
- "dutyamount": "5.07",
- "freightamount": "225.82",
- "convenience_fee": "1.23",
- "supplemental_fee": "1.23",
- "bdate": "-6 months",
- "edate": "now",
- "excharges": "GIFT|MINI",
- "rate": "12.00",
- "roomnum": "5143",
- "descmerch": "Pizza Palace LLC",
- "descloc": "Store CA 543",
- "clerkid": "Doe-1553",
- "stationid": "7",
- "laneid": "4",
- "comments": "Extra beef",
- "divisionnum": "PAYROLL",
- "expdate": "0129",
- "healthcare": "no",
- "reversible": "yes",
- "reversal_reason": "CLERKVOID",
- "offline_decline": "...",
- "tranflags": "CAPTURED|ONLINE|SENSITIVEDATA",
- "txnstatus": "COMPLETE|ONLINE|SENSITIVEDATA",
- "last_modified_ts": "1653422816",
- "order_id": "58445676543",
- "payment_id": "987653645678",
- "order_cash_discount": "12.37",
- "order_cash_price": "142.97",
- "order_noncash_price": "155.34",
- "order_tip": "0.50",
- "order_total": "155.34",
- "order_tax": "2.44",
- "order_discount": "5.22",
- "detail_order_notes": "Extra pickles",
- "trans": "...",
- "line_items": "...",
- "ttid": "96748596765467",
- "draft_locator_id": "24FDBDD0902",
- "property1": "string",
- "property2": "string"
}
Gets fine-grained detail about an order payment
Includes all the fields returned from an original transaction response, as well as non-sensitive request data. Additionally, metadata about the transaction state is also returned. The result data is very verbose, and only fields that are relevant to making this call should be evaluated.
libmonetra KVS equivalent for endpoint
action_admin
= tran_detail
order_id required | string Example: 58445676543 Unique ID of an order |
payment_id required | string Example: 987653645678 Unique ID of a payment for an order |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
curl -X GET 'https://testbox.monetra.com/api/v2/transaction/order/17485767483/payment/7849345732' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "card_currency": "840",
- "card_cardclass": "CREDIT",
- "card_cardlevel": "V^",
- "card_country_code": "840",
- "card_debit_network": "19N|14N",
- "card_ebt_state": "HI",
- "card_fsa": "N",
- "card_funding_source": "CREDIT",
- "card_issuer_bank": "1st Bank of Money",
- "card_msr_cvm": "sig",
- "card_prepaid": "Y",
- "card_reloadable": "N",
- "card_signature_debit": "N",
- "card_token_card": "N",
- "auth": "B2DAA3",
- "batch": "47",
- "issuer_decline": "Y",
- "item": "1245",
- "stan": "994532",
- "proc": "loopback",
- "account": "XXXXXXXXXXXX1234",
- "abaroute": "267084131",
- "checknum": "45678",
- "accounttype": "PERSONAL|CHECKING",
- "cardtype": "VISA",
- "cardholdername": "John Doe",
- "language": "en",
- "pclevel": "0",
- "cof_transid": "930734056218579",
- "cof_authamount": "19.22",
- "installment_num": "17",
- "installment_total": "149",
- "recurring": "recurring",
- "avs": "GOOD",
- "cv": "GOOD",
- "shipcountry": "840",
- "shipzip": "32789",
- "zip": "32606",
- "action": "SALE",
- "orig_code": "AUTH",
- "orig_msoft_code": "INT_SUCCESS",
- "orig_phard_code": "SUCCESS",
- "orig_reqamount": "155.34",
- "orig_verbiage": "Transaction approved",
- "merch_name": "Pizza Palace",
- "merch_addr1": "777 77th Ct",
- "merch_addr2": "Jacksonville FL",
- "merch_addr3": "32789",
- "merch_phone": "555-555-5555",
- "merch_email": "merchant@email",
- "merch_proc": "loopback",
- "custref": "55",
- "ordernum": "A13DDES345",
- "amount": "19.92",
- "cashbackamount": "20.00",
- "currency": "124",
- "examount": "0.33",
- "surchargeamount": "1.25",
- "tax": "1.29",
- "discountamount": "100.00",
- "dutyamount": "5.07",
- "freightamount": "225.82",
- "convenience_fee": "1.23",
- "supplemental_fee": "1.23",
- "bdate": "-6 months",
- "edate": "now",
- "excharges": "GIFT|MINI",
- "rate": "12.00",
- "roomnum": "5143",
- "descmerch": "Pizza Palace LLC",
- "descloc": "Store CA 543",
- "clerkid": "Doe-1553",
- "stationid": "7",
- "laneid": "4",
- "comments": "Extra beef",
- "divisionnum": "PAYROLL",
- "expdate": "0129",
- "healthcare": "no",
- "reversible": "yes",
- "reversal_reason": "CLERKVOID",
- "offline_decline": "...",
- "tranflags": "CAPTURED|ONLINE|SENSITIVEDATA",
- "txnstatus": "COMPLETE|ONLINE|SENSITIVEDATA",
- "last_modified_ts": "1653422816",
- "order_id": "58445676543",
- "payment_id": "987653645678",
- "order_cash_discount": "12.37",
- "order_cash_price": "142.97",
- "order_noncash_price": "155.34",
- "order_tip": "0.50",
- "order_total": "155.34",
- "order_tax": "2.44",
- "order_discount": "5.22",
- "detail_order_notes": "Extra pickles",
- "trans": "...",
- "line_items": "...",
- "ttid": "96748596765467",
- "draft_locator_id": "24FDBDD0902",
- "property1": "string",
- "property2": "string"
}
Receipts can be generated for transactions, payments, and orders
Order receipts are special in that they can be sent to customers when open and before payment. This is the primary way to notify customers about a pending invoice. If the order is closed then the notification email or SMS message will allow the customer to view all payment receipts for the order.
Receipts can be generated for order payments using the order payment
id instead of a linked ttid
due to orders being able to accept
check and cash payments as external transactions which are reported
to the order system for reporting.
If the transaction is part of an order or if an order payment was referenced all line items will be included in the receipt.
Receipts can be pre-formatted, or emailed. Orders can be sent by email or SMS.
Email of receipts will contain a formatted receipt.
SMS
SMS will contain a link to view the order and pay, or view receipts of the order is complete. The link will redirect to Monetra.
Pre-formatted
Pre-formatted receipts are generated as blocks the merchant can use to construct the receipts themselves. The blocks are generated from data that can be obtained using "Transaction Details" if the merchant wants the raw data to build receipts fully themself.
Email a receipt for a transaction to the customer
libmonetra KVS equivalent for endpoint
action_admin
= tran_receipt
ttid required | string Example: 96748596765467 Transaction identifier |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
email required | string Example: email=email@email Email to send customer receipt copy to Can be an email or |
duplicate | object Enum: "yes" "no" Example: duplicate=no Values:
|
curl -X GET 'https://testbox.monetra.com/api/v2/transaction/926572778835889/receipt' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "property1": "string",
- "property2": "string"
}
Email a receipt for an order payment to a customer
Will send the receipt not a link to view the invoice.
libmonetra KVS equivalent for endpoint
action_admin
= tran_receipt
order_id required | string Example: 58445676543 Unique ID of an order |
payment_id required | string Example: 987653645678 Unique ID of a payment for an order |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
email required | string Example: email=email@email Email to send customer receipt copy to Can be an email or |
duplicate | object Enum: "yes" "no" Example: duplicate=no Values:
|
merch_copy | object Enum: "yes" "no" Example: merch_copy=yes Values:
|
curl -X GET 'https://testbox.monetra.com/api/v2/transaction/order/17485767483/payment/7849345732/receipt' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "property1": "string",
- "property2": "string"
}
Email a link to view the invoice to a customer
The message will indicate the invoice is open and awaiting payment. The link will take the customer to the payment server where they can make payment.
The message will indicate the invoice is closed. The link will take the customer to the payment server where they can view payment receipts.
libmonetra KVS equivalent for endpoint
action_admin
= tran_receipt
order_id required | string Example: 58445676543 Unique ID of an order |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
email required | string Example: email=email@email Email to send customer receipt copy to Can be an email or |
curl -X GET 'https://testbox.monetra.com/api/v2/transaction/order/17485767483/receipt/email?email=customer' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "property1": "string",
- "property2": "string"
}
Get Pre-formatted receipt for a transaction
Gets pre-formatted receipt output that can be provided to a customer.
When pre-formatted output is returned it will take the form rcpt_cust_*
,
rcpt_mercht_*
for the various parts of the customer and merchant copy.
If more than one format is requested for output then the response fields
will take the form rcpt_<FORMAT_TYPE>_cust_*
and rcpt_<FORMAT_TYPE>_merch_*
.
The following receipt blocks may be returned based on the transaction.
*_merch_info
- Merchant contact information*_reference
- Information about the transaction*_items
- Line items if part of an invoice or order*_money
- Money related to the transaction. Amount, tip, discounts, etc*_disposition
- Transaction outcome*_signature
- Blank signature line*_emv
- EMV card information*_notice
- Notice to customer they should keep the receipt for their records*_notes
- Notes associated with an order or invoiceMerchants using pre-formatted receipt output can augment the receipt with additional data the merchant feels is needed. Additional data is the responsibility of the merchant as to how they will include it on the receipt.
libmonetra KVS equivalent for endpoint
action_admin
= tran_receipt
ttid required | string Example: 96748596765467 Transaction identifier |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
rcpt | string Example: rcpt=yes The A value of A value of All other values are key/value pairs indicating formatting configurations, separated by semicolons, as in this example:
Receipt configuration options:
Cannot be combined with:
|
duplicate | object Enum: "yes" "no" Example: duplicate=no Values:
|
merch_copy | object Enum: "yes" "no" Example: merch_copy=yes Values:
|
curl -X GET 'https://testbox.monetra.com/api/v2/transaction/926572778835889/receipt' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "property1": "string",
- "property2": "string"
}
Get Pre-formatted receipt for an order payment
Gets pre-formatted receipt output that can be provided to a customer.
When pre-formatted output is returned it will take the form rcpt_cust_*
,
rcpt_mercht_*
for the various parts of the customer and merchant copy.
If more than one format is requested for output then the response fields
will take the form rcpt_<FORMAT_TYPE>_cust_*
and rcpt_<FORMAT_TYPE>_merch_*
.
The following receipt blocks may be returned based on the transaction.
*_merch_info
- Merchant contact information*_reference
- Information about the transaction*_items
- Line items if part of an invoice or order*_money
- Money related to the transaction. Amount, tip, discounts, etc*_disposition
- Transaction outcome*_signature
- Blank signature line*_emv
- EMV card information*_notice
- Notice to customer they should keep the receipt for their records*_notes
- Notes associated with an order or invoiceMerchants using pre-formatted receipt output can augment the receipt with additional data the merchant feels is needed. Additional data is the responsibility of the merchant as to how they will include it on the receipt.
libmonetra KVS equivalent for endpoint
action_admin
= tran_receipt
order_id required | string Example: 58445676543 Unique ID of an order |
payment_id required | string Example: 987653645678 Unique ID of a payment for an order |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
rcpt | string Example: rcpt=yes The A value of A value of All other values are key/value pairs indicating formatting configurations, separated by semicolons, as in this example:
Receipt configuration options:
|
duplicate | object Enum: "yes" "no" Example: duplicate=no Values:
|
merch_copy | object Enum: "yes" "no" Example: merch_copy=yes Values:
|
curl -X GET 'https://testbox.monetra.com/api/v2/transaction/order/17485767483/payment/7849345732/receipt' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "property1": "string",
- "property2": "string"
}
SMS a link to view the invoice to a customer
The message will indicate the invoice is open and awaiting payment. The link will take the customer to the payment server where they can make payment.
The message will indicate the invoice is closed. The link will take the customer to the payment server where they can view payment receipts.
libmonetra KVS equivalent for endpoint
action_admin
= tran_receipt
order_id required | string Example: 58445676543 Unique ID of an order |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
sms required | string Example: sms=555-555-5555 Send SMS for order invoices Can be an phone number or Requires:
Cannot be combined with:
|
curl -X GET 'https://testbox.monetra.com/api/v2/transaction/order/17485767483/receipt/sms?sms=customer' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "property1": "string",
- "property2": "string"
}
Lists all failed transactions for the requested profile
The resulting report will contain these headers:
user, ttid, msoft_code, phard_code, type, proc, entrymode, txnstatus,
tranflags, capture, reversible, card, pclevel, cardlevel, abaroute, account,
expdate, checknum, timestamp, last_modified_ts, accounttype, reasoncode,
amount, reqamount, orig_authamount, authamount, examount, tax, cashback,
authnum, stan, batch, item, code, verbiage, cardholdername, avs, cv, clerkid,
stationid, comments, divisionnum, promoid, descmerch, descloc, ptrannum,
ordernum, custref, discountamount, freightamount, dutyamount, shipzip,
shipcountry, l3num, bdate, edate, roomnum, excharges, rate, customer_id, token,
order_id, surchargeamount, accounting_id
Additional columns may be present if profile custom fields are in use.
libmonetra KVS equivalent for endpoint
action_admin
= report_tran
txnstatus
= DECLINED
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
acct | string Example: acct=5454 Account number for auditing Note: Only the last four digits of the card should be sent |
amount | string Example: amount=19.92 Amount of money, including decimal. E.g This is the total amount and is an aggregate of all supplementary amounts. |
bdate | string Example: bdate=-6 months Start of date range |
edate | string Example: edate=now End of date range |
cardholdername | string Example: cardholdername=John Doe Name of the cardholder |
cardtypes | object Enum: "VISA" "MC" "AMEX" "DISC" "DINERS" "JCB" "BML" "GIFT" "VISADEBIT" "MCDEBIT" "OTHERDEBIT" "EBT" "CHECK" "INTERAC" "CUP" "PAYPALEC" "ACH" Example: cardtypes=VISA|MC Cardtypes Pipe (|) separated. Cardtype support is dependant on the processor. Not all processor support all cardtypes. Flag values (pipe separated):
|
clerkid | string Example: clerkid=Doe-1553 Identifier for the clerk running the transaction |
comments | string Example: comments=Extra beef User-defined comments related to the transaction |
ordernum | string Example: ordernum=A13DDES345 Order number An order number is required for all Card Not Present (e.g. Mail Order / Telephone Order and E-commerce) transactions, all transactions for the Restaurant industry, and all Level 2 cards such as Purchase or Corporate cards. Since it is not possible to know the card type prior to a request to Monetra, an order number should be sent on all transactions. An order number is alphanumeric. However, for the restaurant industry, it should be numeric only. Processors are limited in the number of characters that can be sent as part of a transaction. Non restaurant industry will only have 25 characters sent and restaurant will only have 6. |
stationid | string Example: stationid=7 Identifier for the physical station running the transaction |
type | string Example: type=sale Type of action that was taken. Can be a pipe (|) separated list of actions |
last_modified_bdate | string Example: last_modified_bdate=-9 days Used to filter report by date range. This is the beginning date as most recently modified for a transaction, not the bdate that was originally entered. |
last_modified_edate | string Example: last_modified_edate=-4 days Used to filter report by date range. This is the ending date as most recently modified for a transaction, not the edate that was originally entered. |
curl -X GET 'https://testbox.monetra.com/api/v2/report/declined' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Lists all settled transactions for the requested profile
The resulting report will contain these headers:
user, ttid, msoft_code, phard_code, type, proc, entrymode, txnstatus,
tranflags, capture, reversible, card, pclevel, cardlevel, abaroute, account,
expdate, checknum, timestamp, last_modified_ts, accounttype, reasoncode,
amount, reqamount, orig_authamount, authamount, examount, tax, cashback,
authnum, stan, batch, item, code, verbiage, cardholdername, avs, cv, clerkid,
stationid, comments, divisionnum, promoid, descmerch, descloc, ptrannum,
ordernum, custref, discountamount, freightamount, dutyamount, shipzip,
shipcountry, l3num, bdate, edate, roomnum, excharges, rate, customer_id, token,
order_id, surchargeamount, accounting_id
libmonetra KVS equivalent for endpoint
action_admin
= report_tran
txnstatus
= COMPLETE
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
acct | string Example: acct=5454 Account number for auditing Note: Only the last four digits of the card should be sent |
amount | string Example: amount=19.92 Amount of money, including decimal. E.g This is the total amount and is an aggregate of all supplementary amounts. |
batch | string Example: batch=47 The batch number associated with the transaction |
bdate | string Example: bdate=-6 months Start of date range |
edate | string Example: edate=now End of date range |
cardholdername | string Example: cardholdername=John Doe Name of the cardholder |
cardtypes | object Enum: "VISA" "MC" "AMEX" "DISC" "DINERS" "JCB" "BML" "GIFT" "VISADEBIT" "MCDEBIT" "OTHERDEBIT" "EBT" "CHECK" "INTERAC" "CUP" "PAYPALEC" "ACH" Example: cardtypes=VISA|MC Cardtypes Pipe (|) separated. Cardtype support is dependant on the processor. Not all processor support all cardtypes. Flag values (pipe separated):
|
clerkid | string Example: clerkid=Doe-1553 Identifier for the clerk running the transaction |
comments | string Example: comments=Extra beef User-defined comments related to the transaction |
pclevel | object Enum: "0" "1" "2" Example: pclevel=0 Indicates the level of payment card Values:
|
ordernum | string Example: ordernum=A13DDES345 Order number An order number is required for all Card Not Present (e.g. Mail Order / Telephone Order and E-commerce) transactions, all transactions for the Restaurant industry, and all Level 2 cards such as Purchase or Corporate cards. Since it is not possible to know the card type prior to a request to Monetra, an order number should be sent on all transactions. An order number is alphanumeric. However, for the restaurant industry, it should be numeric only. Processors are limited in the number of characters that can be sent as part of a transaction. Non restaurant industry will only have 25 characters sent and restaurant will only have 6. |
stationid | string Example: stationid=7 Identifier for the physical station running the transaction |
ttid | string Example: ttid=96748596765467 Transaction identifier |
ttid_ref | string TTID of a linked transaction. Used for things like refunds by TTID to refernece the original transaction that was refunded. |
order_id | string Example: order_id=7654323456 Order ID from the Monetra order system this tranaction should be associated with |
token | string Example: token=6789656783904467894 Filter based on token. Can be |
type | string Example: type=sale Type of action that was taken. Can be a pipe (|) separated list of actions |
last_modified_bdate | string Example: last_modified_bdate=-9 days Used to filter report by date range. This is the beginning date as most recently modified for a transaction, not the bdate that was originally entered. |
last_modified_edate | string Example: last_modified_edate=-4 days Used to filter report by date range. This is the ending date as most recently modified for a transaction, not the edate that was originally entered. |
user | string Example: user=user19 User name used to limit results of report to only the specified user |
reversible | object Enum: "yes" "no" Example: reversible=yes Whether or not the report should include reversible transactions If not present, show both reversible and non-reversible transactions Values:
|
showvoids | object Enum: "yes" "no" "only" Example: showvoids=yes Whether or not the report should include voids Values:
|
route_id | string Example: route_id=0 Processing route More than one route ID may be associated with a profile. This can happen when
split-routing is in use. The specific ID for the route being operated on must
be specified in requests that accept |
interchange | object Enum: "yes" "no" Example: interchange=yes Include interchange response data This is has very limited use because interchange data is not necessary in the vast majority of circumstances. Receiving interchange data is highly restricted and not accessible to most accounts. Values:
|
tranflags | object Enum: "HASAVS" "CAVVFULL" "CAVVBAD" "DATATRACK1" "DATATRACK2" "DATAKEYED" "DATAMICR" "CARDNOTPRESENT" "ADVANCEDEPOSIT" "NONTAXABLE" "RFID" "NSF" "RECURRING" "RECURRING_FIRST" "INSTALLMENT" "PINLESS" "HEALTHCARE" "SNF_APPROVED" "SNF_DENY" "ACCT_BUSINESS" "PARTIALAUTH" "NOSHOW" "RFIDCAPABLE" "DIGITAL_GOODS" "PROC_E2E" "CNP_ECOMM" "CARDSHIELD_E2E" "ICC" "EMV_FALLBACK" "EMV_OFFLINE" "DEBTREPAYMENT" "PROC_TOKEN" "MOBILEINAPP" "CARDONFILE" "STANDIN" "PINBYPASS" "ENCPROV_E2E" "INCREMENTAL" "ACCT_SAVINGS" "EMV_FALLBACK_NOAID" "HOSTEDPAGE" Example: tranflags=CAPTURED|ONLINE|SENSITIVEDATA Pipe (|) separated list of flags that describe the parameters that went into the transaction. When filtering this will include any transactions that contain these flags. Flag values (pipe separated):
|
not_tranflags | object Enum: "HASAVS" "CAVVFULL" "CAVVBAD" "DATATRACK1" "DATATRACK2" "DATAKEYED" "DATAMICR" "CARDNOTPRESENT" "ADVANCEDEPOSIT" "NONTAXABLE" "RFID" "NSF" "RECURRING" "RECURRING_FIRST" "INSTALLMENT" "PINLESS" "HEALTHCARE" "SNF_APPROVED" "SNF_DENY" "ACCT_BUSINESS" "PARTIALAUTH" "NOSHOW" "RFIDCAPABLE" "DIGITAL_GOODS" "PROC_E2E" "CNP_ECOMM" "CARDSHIELD_E2E" "ICC" "EMV_FALLBACK" "EMV_OFFLINE" "DEBTREPAYMENT" "PROC_TOKEN" "MOBILEINAPP" "CARDONFILE" "STANDIN" "PINBYPASS" "ENCPROV_E2E" "INCREMENTAL" "ACCT_SAVINGS" "EMV_FALLBACK_NOAID" "HOSTEDPAGE" Example: not_tranflags=CAPTURED|ONLINE|SENSITIVEDATA Pipe (|) separated list of flags that describe the parameters that went into the transaction. When filtering this will exclude any transactions that contain these flags. Flag values (pipe separated):
|
curl -X GET 'https://testbox.monetra.com/api/v2/report/settled' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Lists all transactions for the requested profile
This allows combining multiple transaction status. For example, generating a report of only transactions that have sensitive data and are settled.
The resulting report will contain these headers:
user, ttid, msoft_code, phard_code, type, proc, entrymode, txnstatus,
tranflags, capture, reversible, card, pclevel, cardlevel, abaroute, account,
expdate, checknum, timestamp, last_modified_ts, accounttype, reasoncode,
amount, reqamount, orig_authamount, authamount, examount, tax, cashback,
authnum, stan, batch, item, code, verbiage, cardholdername, avs, cv, clerkid,
stationid, comments, divisionnum, promoid, descmerch, descloc, ptrannum,
ordernum, custref, discountamount, freightamount, dutyamount, shipzip,
shipcountry, l3num, bdate, edate, roomnum, excharges, rate, customer_id, token,
order_id, surchargeamount, accounting_id
libmonetra KVS equivalent for endpoint
action_admin
= report_tran
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
txnstatus required | object Enum: "DECLINED" "UNCAPTURED" "CAPTURED" "COMPLETE" Example: txnstatus=DECLINED|UNCAPTURED|CAPTURED|COMPLETE Pipe (|) separated list of flags that describe the current status of the transaction Flag values (pipe separated):
|
acct | string Example: acct=5454 Account number for auditing Note: Only the last four digits of the card should be sent |
amount | string Example: amount=19.92 Amount of money, including decimal. E.g This is the total amount and is an aggregate of all supplementary amounts. |
batch | string Example: batch=47 The batch number associated with the transaction |
bdate | string Example: bdate=-6 months Start of date range |
edate | string Example: edate=now End of date range |
cardholdername | string Example: cardholdername=John Doe Name of the cardholder |
cardtypes | object Enum: "VISA" "MC" "AMEX" "DISC" "DINERS" "JCB" "BML" "GIFT" "VISADEBIT" "MCDEBIT" "OTHERDEBIT" "EBT" "CHECK" "INTERAC" "CUP" "PAYPALEC" "ACH" Example: cardtypes=VISA|MC Cardtypes Pipe (|) separated. Cardtype support is dependant on the processor. Not all processor support all cardtypes. Flag values (pipe separated):
|
clerkid | string Example: clerkid=Doe-1553 Identifier for the clerk running the transaction |
comments | string Example: comments=Extra beef User-defined comments related to the transaction |
pclevel | object Enum: "0" "1" "2" Example: pclevel=0 Indicates the level of payment card Values:
|
ordernum | string Example: ordernum=A13DDES345 Order number An order number is required for all Card Not Present (e.g. Mail Order / Telephone Order and E-commerce) transactions, all transactions for the Restaurant industry, and all Level 2 cards such as Purchase or Corporate cards. Since it is not possible to know the card type prior to a request to Monetra, an order number should be sent on all transactions. An order number is alphanumeric. However, for the restaurant industry, it should be numeric only. Processors are limited in the number of characters that can be sent as part of a transaction. Non restaurant industry will only have 25 characters sent and restaurant will only have 6. |
stationid | string Example: stationid=7 Identifier for the physical station running the transaction |
ttid | string Example: ttid=96748596765467 Transaction identifier |
ttid_ref | string TTID of a linked transaction. Used for things like refunds by TTID to refernece the original transaction that was refunded. |
order_id | string Example: order_id=7654323456 Order ID from the Monetra order system this tranaction should be associated with |
token | string Example: token=6789656783904467894 Filter based on token. Can be |
type | string Example: type=sale Type of action that was taken. Can be a pipe (|) separated list of actions |
last_modified_bdate | string Example: last_modified_bdate=-9 days Used to filter report by date range. This is the beginning date as most recently modified for a transaction, not the bdate that was originally entered. |
last_modified_edate | string Example: last_modified_edate=-4 days Used to filter report by date range. This is the ending date as most recently modified for a transaction, not the edate that was originally entered. |
user | string Example: user=user19 User name used to limit results of report to only the specified user |
reversible | object Enum: "yes" "no" Example: reversible=yes Whether or not the report should include reversible transactions If not present, show both reversible and non-reversible transactions Values:
|
showvoids | object Enum: "yes" "no" "only" Example: showvoids=yes Whether or not the report should include voids Values:
|
route_id | string Example: route_id=0 Processing route More than one route ID may be associated with a profile. This can happen when
split-routing is in use. The specific ID for the route being operated on must
be specified in requests that accept |
interchange | object Enum: "yes" "no" Example: interchange=yes Include interchange response data This is has very limited use because interchange data is not necessary in the vast majority of circumstances. Receiving interchange data is highly restricted and not accessible to most accounts. Values:
|
tranflags | object Enum: "HASAVS" "CAVVFULL" "CAVVBAD" "DATATRACK1" "DATATRACK2" "DATAKEYED" "DATAMICR" "CARDNOTPRESENT" "ADVANCEDEPOSIT" "NONTAXABLE" "RFID" "NSF" "RECURRING" "RECURRING_FIRST" "INSTALLMENT" "PINLESS" "HEALTHCARE" "SNF_APPROVED" "SNF_DENY" "ACCT_BUSINESS" "PARTIALAUTH" "NOSHOW" "RFIDCAPABLE" "DIGITAL_GOODS" "PROC_E2E" "CNP_ECOMM" "CARDSHIELD_E2E" "ICC" "EMV_FALLBACK" "EMV_OFFLINE" "DEBTREPAYMENT" "PROC_TOKEN" "MOBILEINAPP" "CARDONFILE" "STANDIN" "PINBYPASS" "ENCPROV_E2E" "INCREMENTAL" "ACCT_SAVINGS" "EMV_FALLBACK_NOAID" "HOSTEDPAGE" Example: tranflags=CAPTURED|ONLINE|SENSITIVEDATA Pipe (|) separated list of flags that describe the parameters that went into the transaction. When filtering this will include any transactions that contain these flags. Flag values (pipe separated):
|
not_tranflags | object Enum: "HASAVS" "CAVVFULL" "CAVVBAD" "DATATRACK1" "DATATRACK2" "DATAKEYED" "DATAMICR" "CARDNOTPRESENT" "ADVANCEDEPOSIT" "NONTAXABLE" "RFID" "NSF" "RECURRING" "RECURRING_FIRST" "INSTALLMENT" "PINLESS" "HEALTHCARE" "SNF_APPROVED" "SNF_DENY" "ACCT_BUSINESS" "PARTIALAUTH" "NOSHOW" "RFIDCAPABLE" "DIGITAL_GOODS" "PROC_E2E" "CNP_ECOMM" "CARDSHIELD_E2E" "ICC" "EMV_FALLBACK" "EMV_OFFLINE" "DEBTREPAYMENT" "PROC_TOKEN" "MOBILEINAPP" "CARDONFILE" "STANDIN" "PINBYPASS" "ENCPROV_E2E" "INCREMENTAL" "ACCT_SAVINGS" "EMV_FALLBACK_NOAID" "HOSTEDPAGE" Example: not_tranflags=CAPTURED|ONLINE|SENSITIVEDATA Pipe (|) separated list of flags that describe the parameters that went into the transaction. When filtering this will exclude any transactions that contain these flags. Flag values (pipe separated):
|
curl -X GET 'https://testbox.monetra.com/api/v2/report' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Lists all unsettled transactions for the requested profile
This is useful for monitoring which transactions have yet to be Settled.
The resulting report will contain these headers:
user, ttid, msoft_code, phard_code, type, proc, entrymode, txnstatus,
tranflags, capture, reversible, card, pclevel, cardlevel, abaroute, account,
expdate, checknum, timestamp, last_modified_ts, accounttype, reasoncode,
amount, reqamount, orig_authamount, authamount, examount, tax, cashback,
authnum, stan, batch, item, code, verbiage, cardholdername, avs, cv, clerkid,
stationid, comments, divisionnum, promoid, descmerch, descloc, ptrannum,
ordernum, custref, discountamount, freightamount, dutyamount, shipzip,
shipcountry, l3num, bdate, edate, roomnum, excharges, rate, customer_id, token,
order_id, surchargeamount, accounting_id
libmonetra KVS equivalent for endpoint
action_admin
= report_tran
txnstatus
= CAPTURED|UNCAPTURED
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
acct | string Example: acct=5454 Account number for auditing Note: Only the last four digits of the card should be sent |
amount | string Example: amount=19.92 Amount of money, including decimal. E.g This is the total amount and is an aggregate of all supplementary amounts. |
batch | string Example: batch=47 The batch number associated with the transaction |
bdate | string Example: bdate=-6 months Start of date range |
edate | string Example: edate=now End of date range |
cardholdername | string Example: cardholdername=John Doe Name of the cardholder |
cardtypes | object Enum: "VISA" "MC" "AMEX" "DISC" "DINERS" "JCB" "BML" "GIFT" "VISADEBIT" "MCDEBIT" "OTHERDEBIT" "EBT" "CHECK" "INTERAC" "CUP" "PAYPALEC" "ACH" Example: cardtypes=VISA|MC Cardtypes Pipe (|) separated. Cardtype support is dependant on the processor. Not all processor support all cardtypes. Flag values (pipe separated):
|
clerkid | string Example: clerkid=Doe-1553 Identifier for the clerk running the transaction |
comments | string Example: comments=Extra beef User-defined comments related to the transaction |
pclevel | object Enum: "0" "1" "2" Example: pclevel=0 Indicates the level of payment card Values:
|
ordernum | string Example: ordernum=A13DDES345 Order number An order number is required for all Card Not Present (e.g. Mail Order / Telephone Order and E-commerce) transactions, all transactions for the Restaurant industry, and all Level 2 cards such as Purchase or Corporate cards. Since it is not possible to know the card type prior to a request to Monetra, an order number should be sent on all transactions. An order number is alphanumeric. However, for the restaurant industry, it should be numeric only. Processors are limited in the number of characters that can be sent as part of a transaction. Non restaurant industry will only have 25 characters sent and restaurant will only have 6. |
stationid | string Example: stationid=7 Identifier for the physical station running the transaction |
ttid | string Example: ttid=96748596765467 Transaction identifier |
ttid_ref | string TTID of a linked transaction. Used for things like refunds by TTID to refernece the original transaction that was refunded. |
order_id | string Example: order_id=7654323456 Order ID from the Monetra order system this tranaction should be associated with |
token | string Example: token=6789656783904467894 Filter based on token. Can be |
type | string Example: type=sale Type of action that was taken. Can be a pipe (|) separated list of actions |
last_modified_bdate | string Example: last_modified_bdate=-9 days Used to filter report by date range. This is the beginning date as most recently modified for a transaction, not the bdate that was originally entered. |
last_modified_edate | string Example: last_modified_edate=-4 days Used to filter report by date range. This is the ending date as most recently modified for a transaction, not the edate that was originally entered. |
user | string Example: user=user19 User name used to limit results of report to only the specified user |
reversible | object Enum: "yes" "no" Example: reversible=yes Whether or not the report should include reversible transactions If not present, show both reversible and non-reversible transactions Values:
|
showvoids | object Enum: "yes" "no" "only" Example: showvoids=yes Whether or not the report should include voids Values:
|
route_id | string Example: route_id=0 Processing route More than one route ID may be associated with a profile. This can happen when
split-routing is in use. The specific ID for the route being operated on must
be specified in requests that accept |
interchange | object Enum: "yes" "no" Example: interchange=yes Include interchange response data This is has very limited use because interchange data is not necessary in the vast majority of circumstances. Receiving interchange data is highly restricted and not accessible to most accounts. Values:
|
tranflags | object Enum: "HASAVS" "CAVVFULL" "CAVVBAD" "DATATRACK1" "DATATRACK2" "DATAKEYED" "DATAMICR" "CARDNOTPRESENT" "ADVANCEDEPOSIT" "NONTAXABLE" "RFID" "NSF" "RECURRING" "RECURRING_FIRST" "INSTALLMENT" "PINLESS" "HEALTHCARE" "SNF_APPROVED" "SNF_DENY" "ACCT_BUSINESS" "PARTIALAUTH" "NOSHOW" "RFIDCAPABLE" "DIGITAL_GOODS" "PROC_E2E" "CNP_ECOMM" "CARDSHIELD_E2E" "ICC" "EMV_FALLBACK" "EMV_OFFLINE" "DEBTREPAYMENT" "PROC_TOKEN" "MOBILEINAPP" "CARDONFILE" "STANDIN" "PINBYPASS" "ENCPROV_E2E" "INCREMENTAL" "ACCT_SAVINGS" "EMV_FALLBACK_NOAID" "HOSTEDPAGE" Example: tranflags=CAPTURED|ONLINE|SENSITIVEDATA Pipe (|) separated list of flags that describe the parameters that went into the transaction. When filtering this will include any transactions that contain these flags. Flag values (pipe separated):
|
not_tranflags | object Enum: "HASAVS" "CAVVFULL" "CAVVBAD" "DATATRACK1" "DATATRACK2" "DATAKEYED" "DATAMICR" "CARDNOTPRESENT" "ADVANCEDEPOSIT" "NONTAXABLE" "RFID" "NSF" "RECURRING" "RECURRING_FIRST" "INSTALLMENT" "PINLESS" "HEALTHCARE" "SNF_APPROVED" "SNF_DENY" "ACCT_BUSINESS" "PARTIALAUTH" "NOSHOW" "RFIDCAPABLE" "DIGITAL_GOODS" "PROC_E2E" "CNP_ECOMM" "CARDSHIELD_E2E" "ICC" "EMV_FALLBACK" "EMV_OFFLINE" "DEBTREPAYMENT" "PROC_TOKEN" "MOBILEINAPP" "CARDONFILE" "STANDIN" "PINBYPASS" "ENCPROV_E2E" "INCREMENTAL" "ACCT_SAVINGS" "EMV_FALLBACK_NOAID" "HOSTEDPAGE" Example: not_tranflags=CAPTURED|ONLINE|SENSITIVEDATA Pipe (|) separated list of flags that describe the parameters that went into the transaction. When filtering this will exclude any transactions that contain these flags. Flag values (pipe separated):
|
curl -X GET 'https://testbox.monetra.com/api/v2/report/unsettled' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Chart data is used to generate breakdowns over time in order to visualize statical information.
The chats provide buckets based on time segments over a given time period. Each bucket will have the number of the charted data in order to generate graphs.
Totals for card types used to generate charts
The resulting report will contain these headers:
cardtype count
libmonetra KVS equivalent for endpoint
action_admin
= report_chartdata
chartdata
= cardtype
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
bdate required | string Example: bdate=-6 months Start of date range |
edate required | string Example: edate=now End of date range |
grouping required | object Enum: "hour" "day" Example: grouping=day Group chart data within a time period Grouping allows fine or course grained details about the data requested. Values:
|
curl -X GET 'https://testbox.monetra.com/api/v2/report/chartdata/carddtype?bdate=-2%20days&edate=now' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Totals for orders used to generate charts
The resulting report will contain these headers:
ts_begin, ts_end, sale_count, sale_amount, return_count, return_amount
libmonetra KVS equivalent for endpoint
action_admin
= report_chartdata
chartdata
= orders
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
bdate required | string Example: bdate=-6 months Start of date range |
edate required | string Example: edate=now End of date range |
grouping required | object Enum: "hour" "day" Example: grouping=day Group chart data within a time period Grouping allows fine or course grained details about the data requested. Values:
|
curl -X GET 'https://testbox.monetra.com/api/v2/report/chartdata/orders?bdate=-2%20days&edate=now' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Totals for transactions used to generate charts
The resulting report will contain these headers:
ts_begin, ts_end, sale_count, sale_amount, return_count, return_amount, failed_count
libmonetra KVS equivalent for endpoint
action_admin
= report_chartdata
chartdata
= transactions
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
bdate required | string Example: bdate=-6 months Start of date range |
edate required | string Example: edate=now End of date range |
grouping required | object Enum: "hour" "day" Example: grouping=day Group chart data within a time period Grouping allows fine or course grained details about the data requested. Values:
|
curl -X GET 'https://testbox.monetra.com/api/v2/report/chartdata/transactions?bdate=-2%20days&edate=now' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Level 3 processing (aka Enhanced Processing) is a feature specifically designed for processing commercial cards and government purchasing cards within a business to business and/or business to government environment. In order to process Level 3 transactions successfully, you must be able to supply detailed line item information to complete the transaction. The required line item details are basically the same as the details a customer might see on an invoice such as: products purchased, SKU numbers, descriptions, quantities, etc.
Limitations
Both Visa and Mastercard are currently supported for passing Level 3 details. While all Visa and Mastercard Corporate/Business/Purchase cards will allow Level3 data to be sent, on Visa, only Purchase cards will provide interchange rate reductions. Other card brands do not support Level 3 line items and will not provide a rate reduction.
Not all processors support Level 3 line items.
Adding line items
If manually adding Level 3 line items, they are added to a transaction after
authorization using the ttid
from the transaction.
Line items will be automatically added in the when using the Monetra order system. As long as the line items in the order contain all required information for Level 3 line items. This includes items from Monetra's inventory system or custom order line items. This only applies when a transaction is associated with an order before settlement.
A transaction can be associated in two ways:
order_id
with the purchase or pre-authorizationLine item pre-populate
Profiles can be configured with pre-populated, default, Level 3 line items. The relevant information is configured on the profile. The default values will be used to create a single line item added to the transaction. This is intended for merchants that routinely sell a single item and is a convince to simplify this common type of integration.
If manual line items are added either manually or via an order, they will be used instead of the pre-populate default values. If the transaction contains more than the default item, or additional items, the integration must send the line items that are actually part of the transaction.
Adds Level 3 line item to an unsettled transaction
libmonetra KVS equivalent for endpoint
action_admin
= level3
level3
= add
ttid required | string Example: 96748596765467 Transaction identifier |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
commoditycode required | string[0-9a-zA-Z]{8,12} Contains an international description code of the individual good or service being supplied The acquiring bank or processor should provide the merchant an updated listing of currently defined codes. Please note that this is different from the 4-character summary commodity code. Codes can be found online at http://www.unspsc.org The code itself will not be validated; only the format is validated. |
description required | string[0-9a-zA-Z ]{1,26} Merchant-defined description of the item or service being sold This is a free-form field. |
productcode required | string[0-9a-zA-Z ]{1,12} Merchant-defined code for the item being purchased, such as a UPC #, SKU #, or Item # |
qty required | string Quantity of the item being purchased This field allows up to 5 decimal places of precision. If the card brand does not allow that level of precision, the number will be rounded. Minimum quantity is 0.00005. Maximum quantity is 99999.00. |
unit required | string Free-form unit of measure Merchant's description for a unit of measurement. If no good description, use 'Unit' |
unitprice required | string Item price per Unit Must not reflect any duty, freight, discount, or tax. This field allows up to 5 decimal places of precision. If the card brand does not allow that level of precision, the number will be rounded. Minimum amount is 0.00005. Maximum amount is 9999999.99. |
discountamount | string Discount amount per line item The total discount amount applied against the line item total. This field allows up to 2 decimal places of precision. The sum of all line item discounts must be less than or equal to the transaction's discount amount. If a discount was applied to this line item, this field must be populated. Minimum amount is 0.00. Maximum amount is 9999999.99. |
discountrate | string Discount rate per line item The discount rate applied against the line item. This field allows up to 5 decimal places of precision. If the card brand does not allow that level of precision, the number will be rounded. This field appears to be optional. It is not valid to specify this if discount amount is not specified or is 0. Minimum rate is 0.00. Maximum rate is 99.99. |
amount required | string Line item total amount This is the line item amount after all taxes and discounts have been applied (but not inclusive of duty or freight). This amount must be greater than or equal to (unitprice * qty) - discountamount. This amount has 2 decimal places of precision. Minimum amount is 0.01. Maximum amount is 9999999.99. |
{- "profile_id": "78965743785967",
- "commoditycode": "50301700",
- "description": "Pickles",
- "productcode": "7456",
- "qty": "1",
- "unit": "1",
- "unitprice": "0.25",
- "discountamount": "2.53",
- "discountrate": "4.05",
- "amount": "1.51"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "l3id": "56789673"
}
Retrieves a list of Level 3 line items associated with an unsettled transaction
The resulting report will contain these headers:
l3id, ttid, commoditycode, description, productcode, qty, unit, unitprice,
discountamount, discountrate, amount
libmonetra KVS equivalent for endpoint
action_admin
= level3
level3
= list
ttid required | string Example: 96748596765467 Transaction identifier |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
curl -X GET 'https://testbox.monetra.com/api/v2/level3/926660343286234' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Deletes Level 3 line item from an unsettled transaction
libmonetra KVS equivalent for endpoint
action_admin
= level3
level3
= del
ttid required | string Example: 96748596765467 Transaction identifier |
l3id required | string Example: 56789673 ID associated with the Level 3 line item |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
curl -X DELETE 'https://testbox.monetra.com/api/v2/level3/926660343286234/19266603985142159' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Gets the specified line item for the transaction
libmonetra KVS equivalent for endpoint
action_admin
= level3
level3
= list
ttid required | string Example: 96748596765467 Transaction identifier |
l3id required | string Example: 56789673 ID associated with the Level 3 line item |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
curl -X GET 'https://testbox.monetra.com/api/v2/level3/926660343286234/19266603985142159' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "l3id": "56789673",
- "ttid": "96748596765467",
- "commoditycode": "50301700",
- "description": "Pickles",
- "productcode": "7456",
- "qty": "1",
- "unit": "1",
- "unitprice": "0.25",
- "discountamount": "2.53",
- "discountrate": "4.05",
- "amount": "1.51"
}
Basic and advanced batch management operations.
Basic operations manual settlement and reports.
It is recommended to use automatic settlement instead of manual settlement. As it simplifies the settlement process and removed points of error. No one can forget to settle or forgets to retry settlement if it fails.
One case where manual settlement is necessary is if the profile is changing processing routes. Often transactions authorized by one processor can only be settled with that processor. In this case outstanding batches must be settled before the route change takes place.
More advanced operations are should be used with care and typically only after consultation, and confirmation with the processor.
Marks the batch as settled within Monetra without ever requesting funding
The transaction data in the batch is not sent to the processing institution. This should only be used if the processing institution has accepted the batch, but Monetra did not receive the response.
This must only be used after the processing institution has confirmed they've received the batch and they've instructed not sending it again.
WARNING: This function should be used with extreme caution as clearing a batch which the processing institution has not received will prevent funding of those transactions in the batch. It is imperative confirmation by the processor of funding will take place before using this action.
libmonetra KVS equivalent for endpoint
action_admin
= batch_clear
batch required | string Example: 47 The batch number associated with the transaction |
route_id required | string Example: 0 Processing route More than one route ID may be associated with a profile. This can happen when
split-routing is in use. The specific ID for the route being operated on must
be specified in requests that accept |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
{- "profile_id": "78965743785967"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Close the currently open batch without sending it to the processor
This will force Monetra to start adding transactions to a new batch.
The closed batch will remain in an unsettled state and will not be sent to the processor. To settle a batch, which will send it to the processor to request funds, see "Settle Batch". This is different than clearing a batch.
Only one batch per settlement route can be open at a time. This request enables a Merchant to close a batch so as to prevent additional transactions from being added to it while preventing the batch from being sent online to the processor.
There is often no need to manually close a batch. Batches will be closed and opened per processor requirements and after settlement.
libmonetra KVS equivalent for endpoint
action_admin
= batch_close
batch required | string Example: 47 The batch number associated with the transaction |
route_id required | string Example: 0 Processing route More than one route ID may be associated with a profile. This can happen when
split-routing is in use. The specific ID for the route being operated on must
be specified in requests that accept |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
{- "profile_id": "78965743785967"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Gets an abbreviated 'batch totals' summary for each 'Settled' batch, within a given date range.
The resulting report will contain these headers:
batch, route_id, timestamp, totaltransNum, totaltransAmount, totalAuthNum,
totalAuthAmount, totalReturnNum, totalReturnAmount, totaltransExamount,
totalAuthExamount, totalReturnExamount, NumVisaAuth, AmntVisaAuth,
NumVisaReturn, AmntVisaReturn, NumVisaDSAuth, AmntVisaDSAuth, NumVisaDSReturn,
AmntVisaDSReturn, NumMCAuth, AmntMCAuth, NumMCReturn, AmntMCReturn,
NumDiscAuth, AmntDiscAuth, NumDiscReturn, AmntDiscReturn, NumCUPAuth,
AmntCUPAuth, NumCUPReturn, AmntCUPReturn, NumAmexAuth, AmntAmexAuth,
NumAmexReturn, AmntAmexReturn, NumDinersAuth, AmntDinersAuth, NumDinersReturn,
AmntDinersReturn, NumCBAuth, AmntCBAuth, NumCBReturn, AmntCBReturn, NumJCBAuth,
AmntJCBAuth, NumJCBReturn, AmntJCBReturn, NumGIFTAuth, AmntGIFTAuth,
NumGIFTReturn, AmntGIFTReturn, NumOtherAuth, AmntOtherAuth, NumOtherReturn,
AmntOtherReturn, NumDebitAuth, AmntDebitAuth, NumDebitReturn, AmntDebitReturn,
NumEBTAuth, AmntEBTAuth, NumEBTReturn, AmntEBTReturn, NumCheckAuth,
AmntCheckAuth, NumACHAuth, AmntACHAuth, NumACHReturn, AmntACHReturn,
NumUnknownAuth, AmntUnknownAuth, NumUnknownReturn, AmntUnknownReturn
libmonetra KVS equivalent for endpoint
action_admin
= report_totals
report_totals
= settled
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
batch | string Example: batch=47 The batch number associated with the transaction |
bdate | string Example: bdate=-6 months Start of date range |
edate | string Example: edate=now End of date range |
reversible | object Enum: "yes" "no" Example: reversible=yes Whether or not the report should include reversible transactions If not present, show both reversible and non-reversible transactions Values:
|
curl -X GET 'https://testbox.monetra.com/api/v2/batch/totals/settled?bdate=-5%20days&edate=now' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Gets an abbreviated 'batch totals' summary for each 'Unsettled' batch.
The resulting report will contain these headers:
batch, route_id, status, totaltransNum, totaltransAmount, totalAuthNum,
totalAuthAmount, totalReturnNum, totalReturnAmount, totaltransExamount,
totalAuthExamount, totalReturnExamount, NumVisaAuth, AmntVisaAuth,
NumVisaReturn, AmntVisaReturn, NumVisaDSAuth, AmntVisaDSAuth, NumVisaDSReturn,
AmntVisaDSReturn, NumMCAuth, AmntMCAuth, NumMCReturn, AmntMCReturn,
NumDiscAuth, AmntDiscAuth, NumDiscReturn, AmntDiscReturn, NumCUPAuth,
AmntCUPAuth, NumCUPReturn, AmntCUPReturn, NumAmexAuth, AmntAmexAuth,
NumAmexReturn, AmntAmexReturn, NumDinersAuth, AmntDinersAuth, NumDinersReturn,
AmntDinersReturn, NumCBAuth, AmntCBAuth, NumCBReturn, AmntCBReturn, NumJCBAuth,
AmntJCBAuth, NumJCBReturn, AmntJCBReturn, NumGIFTAuth, AmntGIFTAuth,
NumGIFTReturn, AmntGIFTReturn, NumOtherAuth, AmntOtherAuth, NumOtherReturn,
AmntOtherReturn, NumDebitAuth, AmntDebitAuth, NumDebitReturn, AmntDebitReturn,
NumEBTAuth, AmntEBTAuth, NumEBTReturn, AmntEBTReturn, NumCheckAuth,
AmntCheckAuth, NumACHAuth, AmntACHAuth, NumACHReturn, AmntACHReturn,
NumUnknownAuth, AmntUnknownAuth, NumUnknownReturn, AmntUnknownReturn
libmonetra KVS equivalent for endpoint
action_admin
= report_totals
report_totals
= unsettled
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
batch | string Example: batch=47 The batch number associated with the transaction |
bdate | string Example: bdate=-6 months Start of date range |
edate | string Example: edate=now End of date range |
curl -X GET 'https://testbox.monetra.com/api/v2/batch/totals/unsettled' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Change an individual batch's number.
This will not affect any other batch number or the batch counter. For example, an open batch is numbered 10. When that batch is settled, the next batch will be numbered 11. If batch 10 has its number set to 50 using this action, then the next batch will still be numbered 11. To also set the batch counter so that the next batch number will be incremented from the new batch number provided (to 50 in this example) see "Resequence Open Batch Numbers".
This action is relevant when batch numbers conflict, such as can happen when a merchant is attempting to fix a settlement issue with a processor.
Some notes to keep in mind when modifying a batch number:
Processors keep batch numbers for 7 days to check for duplicates. Batch numbers within that window should not be reused. It is probably wise to not reuse batch numbers within a 90-day window, so as to stay within the card brand's chargeback window to avoid an actual chargeback. Monetra will retain data on a settled batch until that batch number is used again, at which point it will be overwritten.
libmonetra KVS equivalent for endpoint
action_admin
= batch_set
batch_set
= renumber
batch required | string Example: 47 The batch number associated with the transaction |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
newbatch required | string |
route_id | string\d+ Processing route More than one route ID may be associated with a profile. This can happen when
split-routing is in use. The specific ID for the route being operated on must
be specified in requests that accept |
{- "profile_id": "78965743785967",
- "newbatch": "string",
- "route_id": "0"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Set open batch numbering to the given value
This will have two effects on the batch number: it will change the open batch's number to the provided value, and it will set the batch counter to that same value. When the batch is then closed/settled, the batch number will be incremented for the new batch. For example, an open batch is numbered "10". When that batch is settled, the next batch will be numbered "11". If instead batch "10" has its number set to "50" using this action, then the next batch will be numbered "51". To only change a batch's number without affecting the numbering of any other batch, see "Renumber Single Batch".
This action is relevant when batch numbers conflict, such as can happen when a merchant is attempting to fix a settlement issue with a processor.
Some notes to keep in mind when modifying a batch number:
Processors keep batch numbers for 7 days to check for duplicates. Batch numbers within that window should not be reused. It is probably wise to not reuse batch numbers within a 90-day window, so as to stay within the card brand's chargeback window to avoid an actual chargeback. Monetra will retain data on a settled batch until that batch number is used again, at which point it will be overwritten.
libmonetra KVS equivalent for endpoint
action_admin
= batch_set
batch_set
= batchnum
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
batch required | string\d+ The batch number associated with the transaction |
route_id | string\d+ Processing route More than one route ID may be associated with a profile. This can happen when
split-routing is in use. The specific ID for the route being operated on must
be specified in requests that accept |
{- "profile_id": "78965743785967",
- "batch": "47",
- "route_id": "0"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Submits transactions for funding
To determine which route IDs are in use for the profile, the 'Unsettled Batch Totals' report can be used to determine which routes need to be settled.
This operation can be scheduled to run automatically using the scheduler. It is recommended to use the scheduler to automatically settle all closed and open batches instead of issuing this action manually.
libmonetra KVS equivalent for endpoint
action_trans
= settle
batch required | string Example: 47 The batch number associated with the transaction |
route_id required | string Example: 0 Processing route More than one route ID may be associated with a profile. This can happen when
split-routing is in use. The specific ID for the route being operated on must
be specified in requests that accept |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
{- "profile_id": "78965743785967"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Marks a batch in Monetra as unsettled
This will allow the batch to be submitted for funding again. A batch should only be unsettled when the processor has confirmed that they did not receive the batch but it is showing as settled in Monetra. It is important that this action only be taken with confirmation from the processor that this should happen.
This will not unsettle with the processor. Any batches accepted by the processor will be funded regardless if they are rescinded via this action.
Warning: Rescinding and then settling again will most likely cause double charging of customers. It is imperative to confirm with the processor a batch marked as settled will not be funded unless rescinded and settled.
libmonetra KVS equivalent for endpoint
action_admin
= batch_rescind
batch required | string Example: 47 The batch number associated with the transaction |
route_id required | string Example: 0 Processing route More than one route ID may be associated with a profile. This can happen when
split-routing is in use. The specific ID for the route being operated on must
be specified in requests that accept |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
{- "profile_id": "78965743785967"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Delete a check image
libmonetra KVS equivalent for endpoint
action_admin
= image_del
image_type
= check
ttid required | string Example: 96748596765467 Transaction identifier |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
curl -X DELETE 'https://testbox.monetra.com/api/v2/image/19538953454/check' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Stores a check image
libmonetra KVS equivalent for endpoint
action_admin
= image_add
image_type
= check
ttid required | string Example: 96748596765467 Transaction identifier |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
image required | string[a-zA-Z0-9+/\n]+={0,2}[\n]* Base64-encoded image data. Supports TIFF, PNG and PBM formats. |
{- "profile_id": "78965743785967",
- "image": "..."
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Delete a signature image
libmonetra KVS equivalent for endpoint
action_admin
= image_del
image_type
= signature
ttid required | string Example: 96748596765467 Transaction identifier |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
curl -X DELETE 'https://testbox.monetra.com/api/v2/image/19538953454/signature' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Stores a signature.
Typically used for receipts
libmonetra KVS equivalent for endpoint
action_admin
= image_add
image_type
= signature
ttid required | string Example: 96748596765467 Transaction identifier |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
image required | string[a-zA-Z0-9+/\n]+={0,2}[\n]* Base64-encoded image data. Supports TIFF, PNG and PBM formats. |
{- "profile_id": "78965743785967",
- "image": "..."
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Gets images for the specified transaction.
See List Images for report output
libmonetra KVS equivalent for endpoint
action_admin
= image_get
ttid required | string Example: 96748596765467 Transaction identifier |
image_format | object Enum: "TIFF" "PNG" "PBM" Example: image_format=PNG Image format Values:
|
curl -X GET 'https://testbox.monetra.com/api/v2/image/4783758439245' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Lists stored images
The resulting report will contain these headers:
ttid, ts, status, ptrannum, batch, image_type, image
libmonetra KVS equivalent for endpoint
action_admin
= image_get
batch | string Example: batch=47 The batch number associated with the transaction |
status | object Enum: "unsettled" "settled" Example: status=unsettled Transaction status Values:
|
bdate | string Example: bdate=-6 months Start of date range |
edate | string Example: edate=now End of date range |
image_format | object Enum: "TIFF" "PNG" "PBM" Example: image_format=PNG Image format Values:
|
curl -X GET 'https://testbox.monetra.com/api/v2/image?bdate=-5%20months&edate=now' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
The account vault allows for security storing customer accounts. Both cards and ACH information.
When storing an account it is recommended to tokenize the as part of a transaction instead of manually creating an entry. If no charge is taking place at the time, it is recommended to use the verification transaction to at least verify the card is valid.
Stored accounts can be referenced when processing transactions to charge the card. They can also be attached to a schedule for an installment or recurring payment. Additionally, they can be attached to a customer.
When working with customers in the customer system, a default_token
can be associated with the customer for using the customer to process payments.
Additionally a stored account can have a customer_id
set to associate
the account to a customer. A customer can have multiple stored accounts
associated with them.
It is recommend that a zip code be added to the stored account to ensure proper interchange rates.
Edits a stored account
libmonetra KVS equivalent for endpoint
action_admin
= token_edit
token required | string Example: 6789656783904467894 Referent to the account data that's been stored |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
status | string Enum: "enabled" "disabled" "au_disabled" Token status Values:
|
object Account information parameters There are multiple ways to collect the customer's account information. These are the minimum fields required for each entry method.
Additional modifiers are also present which can provide information about how
the data was received. For example, Cards and phones can be tapped in which
case the ENCRYPTION Many of these can be sent encrypted when using an encrypting reader with
a supported encryption method. The Due to the difference in encrypted reader output and some formats being proprietary limited information about the encrypted account fields are provided. If it is necessary to directly send encrypted reader data to Monetra please contact support who can work with you and the device manufacturer on how to format the data for the relevant fields to a given device. | |
street | string Street address for AVS. Typically, only numbers need to be passed in this field, as letters and other characters are ignored by the processor |
zip | string <= 32 characters Zip code for AVS verification. All Card Not Present transactions require this to avoid being 'downgraded' |
clientref | string\d+ Reference number associated with the customer |
matching_token | string Enum: "yes" "no" When enabled, the token vault will be searched for tokens matching this account. If found, the token will be updated instead of a new token being added. Values:
|
customer_id | string[0-9]+ Customer identifier, numeric only |
cof_transid | string Transaction ID from initial transaction |
cof_authamount | string Authorized amount from initial transaction |
descr | string <= 128 characters Description of the account |
cust_regdate | string E-commerce only Discover. If a customer has registered with the merchant's website, this is the registration date. |
{- "profile_id": "78965743785967",
- "status": "enabled",
- "account_data": {
- "account": "5454545454545454",
- "cardshieldticket": "567865678987",
- "cardholdername": "John Doe",
- "cardpresent": "yes",
- "countrycode": "840",
- "e_account": "DEF5325DEA5678DB6",
- "e_datafield": "DE45AC529FDE35",
- "e_datafieldfmt": "account|expdate",
- "e_datafieldmasked": "5454********5454",
- "e_trackdata": "...",
- "e_id": "645FF245ED34CD5A",
- "expdate": "0129",
- "icc": "4F07A0000000031010500B564953412043524544495457134761739001010010D22122011143804400000F5A0847617390010100105F201A554154205553412F5465737420436172642030342020202020205F24032212315F280208405F2A0208405F2D02656E5F300202015F34010182021C008407A0000000031010950580800080009A031701059B0268009C01009F02060000000100009F03060000000000009F0607A00000000310109F0702FF009F0902008C9F100706010A03A020009F1101019F120B56697361204372656469749F1A0208409F1B04000000009F1E0838303338383535389F1F183131343338303434383930303030303030303030303030309F21030933379F2608D737017E33C786929F2701809F3303E0F8C89F34031F00029F3501229F360200E09F3704526F34219F3901059F4005F000F0F0019F4104000000039F530152",
- "rfid": "no",
- "trackdata": "%B4111111111111111^TEST CARD/VI^29121015432112345678?;4111111111111111=29121015432112345678?",
- "abaroute": "267084131",
- "checknum": "45678",
- "accounttype": "PERSONAL|CHECKING"
}, - "street": "1st St",
- "zip": "32606",
- "clientref": "55",
- "matching_token": "no",
- "customer_id": "56789687564",
- "cof_transid": "67898768",
- "cof_authamount": "76.42",
- "descr": "description of some kind",
- "cust_regdate": "2023-04-01"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Gets details for the specified stored account
libmonetra KVS equivalent for endpoint
action_admin
= token_list
token required | string Example: 6789656783904467894 Referent to the account data that's been stored |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
curl -X GET 'https://testbox.monetra.com/api/v2/vault/account/1001709895560774683' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "token": "6789656783904467894",
- "tokengroup_id": "654356543",
- "create_profile_id": "654765436",
- "create_ts": "2022-05-24 15:06:13 -0400",
- "update_ts": "2022-05-24 15:06:13 -0400",
- "type": "NORMAL",
- "flags": "ACCT_BUSINESS",
- "status": "enabled",
- "cardtype": "VISA",
- "abaroute": "267084131",
- "account": "XXXXXXXXXXXX1234",
- "expdate": "0129",
- "cardholdername": "John Doe",
- "descr": "string",
- "clientref": "55",
- "customer_id": "56789687564",
- "street": "91st St",
- "zip": "32606",
- "descmerch": "Pizza Palace LLC",
- "descloc": "Store CA 543"
}
Permanently removes a stored account from the vault
libmonetra KVS equivalent for endpoint
action_admin
= token_del
token required | string Example: 6789656783904467894 Referent to the account data that's been stored |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
curl -X DELETE 'https://testbox.monetra.com/api/v2/vault/account/1719266678671633432' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Export stored account tokens
Stored accounts are exported per group and are only exported encrypted. A PGP public key must be provided in order to encrypt the report data.
Stored account tokens can only be exported by users within the top most group. Users within a sub group cannot export stored accounts.
The resulting PGP encrypted data will contain a report which will contain these headers:
token, create_ts, update_ts, flags, status, cardtype, abaroute, account,
expdate, cardholdername, descr, clientref, customer_id, street, zip, descmerch,
descloc
libmonetra KVS equivalent for endpoint
action_su
= token_export
pgp_pubkey required | string PGP public key |
group_id required | string\d+ Group identifier |
{- "pgp_pubkey": "...",
- "group_id": "36789654543"
}
{- "datablock": "..."
}
Get count of stored accounts for the user's group
libmonetra KVS equivalent for endpoint
action_admin
= token_list
token_list
= count
curl -X GET 'https://testbox.monetra.com/api/v2/vault/account/count' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "count": "string"
}
Lists stored account details
The resulting report will contain these headers:
token, tokengroup_id, create_profile_id, create_ts, update_ts, type, flags,
status, cardtype, abaroute, account, expdate, cardholdername, descr, clientref,
customer_id, au_ts, au_status, street, zip, descmerch, descloc, cust_regdate
libmonetra KVS equivalent for endpoint
action_admin
= token_list
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
active | object Enum: "yes" "no" Example: active=yes Token active status Values:
|
clientref | string Example: clientref=55 Reference number associated with the customer |
id | string Example: id=56789687564 Customer identifier |
expdate_end | string Example: expdate_end=1022 Maximum expiration date a card can have. Limit all expiration dates to before this time. |
cardholdername | string Example: cardholdername=John Doe Name of the cardholder. Will be read from account data (EMV, Track 1, etc.) but is not guaranteed to be present. Some presentation methods, such as keyed, do not have any way to capture the name as part of the account data. Further, Visa explicitly does not allow the cardholder name to be transmitted as part of a contactless read. Typically, a contactless read will result in a cardholder name of "/". If the name is known by another means, it can be entered in this parameter to override what was read (or not read) from the card. This is purely a reporting field and is not used by issuers to perform verification of the card or customer. |
cardtypes | object Enum: "VISA" "MC" "AMEX" "DISC" "DINERS" "JCB" "BML" "GIFT" "VISADEBIT" "MCDEBIT" "OTHERDEBIT" "EBT" "CHECK" "INTERAC" "CUP" "PAYPALEC" "ACH" Example: cardtypes=VISA|MC Cardtypes Pipe (|) separated. Cardtype support is dependant on the processor. Not all processor support all cardtypes. Flag values (pipe separated):
|
account | string Example: account=5454 Last 4 digits of account number |
curl -X GET 'https://testbox.monetra.com/api/v2/vault/account?active=no&cardtypes=VISA%7CMC' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Stores an account
Allows for manually tokenizing a payment method and
storing it in the token vault. The token
can be used
for later transaction processing.
Note: Tokenization can happen at time of authorization
or verification by using the tokenize=yes
parameter as
part of the transaction.
libmonetra KVS equivalent for endpoint
action_admin
= token_add
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
object Account information parameters There are multiple ways to collect the customer's account information. These are the minimum fields required for each entry method.
Additional modifiers are also present which can provide information about how
the data was received. For example, Cards and phones can be tapped in which
case the ENCRYPTION Many of these can be sent encrypted when using an encrypting reader with
a supported encryption method. The Due to the difference in encrypted reader output and some formats being proprietary limited information about the encrypted account fields are provided. If it is necessary to directly send encrypted reader data to Monetra please contact support who can work with you and the device manufacturer on how to format the data for the relevant fields to a given device. | |
ttid | string Transaction identifier of previously authorized transaction to load account data from Cannot be combined with:
|
carddenylist_id | string\d+ ID in the card deny/allow list Cannot be combined with:
|
street | string Street address for AVS. Typically, only numbers need to be passed in this field, as letters and other characters are ignored by the processor |
zip | string <= 32 characters Zip code for AVS verification. All Card Not Present transactions require this to avoid being 'downgraded' |
clientref | string\d+ Reference number associated with the customer |
matching_token | string Enum: "yes" "no" When enabled, the token vault will be searched for tokens matching this account. If found, the token will be updated instead of a new token being added. Values:
|
customer_id | string[0-9]+ Customer identifier, numeric only |
cof_transid | string Transaction ID from initial transaction |
cof_authamount | string Authorized amount from initial transaction |
cust_regdate | string E-commerce only Discover. If a customer has registered with the merchant's website, this is the registration date. |
descr | string <= 128 characters Description of the account |
{- "profile_id": "78965743785967",
- "account_data": {
- "account": "5454545454545454",
- "cardshieldticket": "567865678987",
- "cardholdername": "John Doe",
- "cardpresent": "yes",
- "countrycode": "840",
- "e_account": "DEF5325DEA5678DB6",
- "e_datafield": "DE45AC529FDE35",
- "e_datafieldfmt": "account|expdate",
- "e_datafieldmasked": "5454********5454",
- "e_trackdata": "...",
- "e_id": "645FF245ED34CD5A",
- "expdate": "0129",
- "icc": "4F07A0000000031010500B564953412043524544495457134761739001010010D22122011143804400000F5A0847617390010100105F201A554154205553412F5465737420436172642030342020202020205F24032212315F280208405F2A0208405F2D02656E5F300202015F34010182021C008407A0000000031010950580800080009A031701059B0268009C01009F02060000000100009F03060000000000009F0607A00000000310109F0702FF009F0902008C9F100706010A03A020009F1101019F120B56697361204372656469749F1A0208409F1B04000000009F1E0838303338383535389F1F183131343338303434383930303030303030303030303030309F21030933379F2608D737017E33C786929F2701809F3303E0F8C89F34031F00029F3501229F360200E09F3704526F34219F3901059F4005F000F0F0019F4104000000039F530152",
- "rfid": "no",
- "token": "6789656783904467894",
- "trackdata": "%B4111111111111111^TEST CARD/VI^29121015432112345678?;4111111111111111=29121015432112345678?",
- "abaroute": "267084131",
- "checknum": "45678",
- "accounttype": "PERSONAL|CHECKING"
}, - "ttid": "96748596765467",
- "carddenylist_id": "67898765",
- "street": "1st St",
- "zip": "32606",
- "clientref": "55",
- "matching_token": "no",
- "customer_id": "56789687564",
- "cof_transid": "67898768",
- "cof_authamount": "76.42",
- "cust_regdate": "2023-04-01",
- "descr": "description of some kind"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "token": "6789656783904467894"
}
Scheduled payments allow using a stored account to be charged on a configured period. Both recurring and installment payments are supported.
Scheduled payments are a schedule and instructions on how much, how often, and what to charge. They are linked to a stored account stored in Monetra. The stored account a schedule is using for the charge can be changed to a different account. This allows updating schedules without disrupting them.
Adds an installment payment
libmonetra KVS equivalent for endpoint
action_admin
= token_schedule
token_schedule
= add
type
= installment
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
customer_id | string[0-9]+ Customer identifier, numeric only |
token required | string\d+ Reference to the stored account that's being charged for the scheduled payment |
clientref | string\d+ Reference number associated with the customer |
cof_transid | string Transaction ID from initial transaction |
cof_authamount | string Authorized amount from initial transaction |
descr | string <= 128 characters Description of the payment |
bdate | string Start of date range |
installment_total required | string\d+ Total number of installment payments to make |
frequency required | string Enum: "daily" "weekly" "biweekly" "monthly" "bimonthly" "quarterly" "semiannually" "annually" Frequency of payment Values:
|
amount required | string\d*(\.\d{0,2})? Amount of money, including decimal. E.g This is the total amount and is an aggregate of all supplementary amounts. |
status | string Enum: "active" "disabled" Schedule active status Values:
|
property name* additional property | string |
{- "profile_id": "78965743785967",
- "customer_id": "56789687564",
- "token": "765432767",
- "clientref": "55",
- "cof_transid": "67898768",
- "cof_authamount": "76.42",
- "descr": "description of some kind",
- "bdate": "-6 months",
- "installment_total": "149",
- "frequency": "monthly",
- "amount": "19.92",
- "status": "active",
- "property1": "string",
- "property2": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "id": "565432"
}
Lists installment payment details
The resulting report will contain these headers:
id, token, create_ts, update_ts, type, flags, status, cardtype, account,
cardholdername, bdate, edate, frequency, installment_total, amount, last_run,
last_run_success, last_run_ttid, next_run, installment_num, total_paid, notes
Additional columns may be present if profile custom fields are in use.
libmonetra KVS equivalent for endpoint
action_admin
= token_schedule
token_schedule
= list
type
= installment
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
clientref | string Example: clientref=55 Reference number associated with the customer |
customer_id | string Example: customer_id=56789687564 Customer identifier, numeric only |
expdate_end | string Example: expdate_end=1022 Maximum expiration date a card can have. Limit all expiration dates to before this time. |
cardholdername | string Example: cardholdername=John Doe Name of the cardholder. Will be read from account data (EMV, Track 1, etc.) but is not guaranteed to be present. Some presentation methods, such as keyed, do not have any way to capture the name as part of the account data. Further, Visa explicitly does not allow the cardholder name to be transmitted as part of a contactless read. Typically, a contactless read will result in a cardholder name of "/". If the name is known by another means, it can be entered in this parameter to override what was read (or not read) from the card. This is purely a reporting field and is not used by issuers to perform verification of the card or customer. |
cardtypes | object Enum: "VISA" "MC" "AMEX" "DISC" "DINERS" "JCB" "BML" "GIFT" "VISADEBIT" "MCDEBIT" "OTHERDEBIT" "EBT" "CHECK" "INTERAC" "CUP" "PAYPALEC" "ACH" Example: cardtypes=VISA|MC Cardtypes Pipe (|) separated. Cardtype support is dependant on the processor. Not all processor support all cardtypes. Flag values (pipe separated):
|
account | string Example: account=5454 Last 4 digits of account number |
status | object Enum: "ACTIVE" "DISABLED" "ERROR" "DONE" "PENDING" Example: status=ACTIVE Status of scheduled payment Values:
|
curl -X GET 'https://testbox.monetra.com/api/v2/vault/payment/installment?active=yes' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Adds a recurring payment
libmonetra KVS equivalent for endpoint
action_admin
= token_schedule
token_schedule
= add
type
= recurring
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
status | string Enum: "active" "disabled" Schedule active status Values:
|
token required | string\d+ Reference to the stored account that's being charged for the scheduled payment |
clientref | string\d+ Reference number associated with the customer |
cof_transid | string Transaction ID from initial transaction |
cof_authamount | string Authorized amount from initial transaction |
descr | string <= 128 characters Description of of the payment |
bdate | string Start of date range |
edate | string End of date range |
frequency required | string Enum: "daily" "weekly" "biweekly" "monthly" "bimonthly" "quarterly" "semiannually" "annually" Frequency of payment Values:
|
amount required | string\d*(\.\d{0,2})? Amount of money, including decimal. E.g This is the total amount and is an aggregate of all supplementary amounts. |
property name* additional property | string |
{- "profile_id": "78965743785967",
- "status": "active",
- "token": "765432767",
- "clientref": "55",
- "cof_transid": "67898768",
- "cof_authamount": "76.42",
- "descr": "description of some kind",
- "bdate": "-6 months",
- "edate": "now",
- "frequency": "monthly",
- "amount": "19.92",
- "property1": "string",
- "property2": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "id": "565432"
}
Lists recurring payment details
The resulting report will contain these headers:
id, token, create_ts, update_ts, type, flags, status, cardtype, account,
cardholdername, bdate, edate, frequency, installment_total, amount, last_run,
last_run_success, last_run_ttid, next_run, installment_num, total_paid, notes
Additional columns may be present if profile custom fields are in use.
libmonetra KVS equivalent for endpoint
action_admin
= token_schedule
token_schedule
= list
type
= recurring
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
clientref | string Example: clientref=55 Reference number associated with the customer |
customer_id | string Example: customer_id=56789687564 Customer identifier, numeric only |
expdate_end | string Example: expdate_end=1022 Maximum expiration date a card can have. Limit all expiration dates to before this time. |
cardholdername | string Example: cardholdername=John Doe Name of the cardholder. Will be read from account data (EMV, Track 1, etc.) but is not guaranteed to be present. Some presentation methods, such as keyed, do not have any way to capture the name as part of the account data. Further, Visa explicitly does not allow the cardholder name to be transmitted as part of a contactless read. Typically, a contactless read will result in a cardholder name of "/". If the name is known by another means, it can be entered in this parameter to override what was read (or not read) from the card. This is purely a reporting field and is not used by issuers to perform verification of the card or customer. |
cardtypes | object Enum: "VISA" "MC" "AMEX" "DISC" "DINERS" "JCB" "BML" "GIFT" "VISADEBIT" "MCDEBIT" "OTHERDEBIT" "EBT" "CHECK" "INTERAC" "CUP" "PAYPALEC" "ACH" Example: cardtypes=VISA|MC Cardtypes Pipe (|) separated. Cardtype support is dependant on the processor. Not all processor support all cardtypes. Flag values (pipe separated):
|
account | string Example: account=5454 Last 4 digits of account number |
status | object Enum: "ACTIVE" "DISABLED" "ERROR" "DONE" "PENDING" Example: status=ACTIVE Status of scheduled payment Values:
|
curl -X GET 'https://testbox.monetra.com/api/v2/vault/payment/recurring?clientref=55' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Edits a stored installment payment
libmonetra KVS equivalent for endpoint
action_admin
= token_schedule
token_schedule
= edit
type
= installment
id required | string Example: 565432 Schedule ID |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
status | string Enum: "active" "disabled" Schedule active status Values:
|
customer_id | string[0-9]+ Customer identifier, numeric only |
token | string\d+ Referent to the account data that's been stored |
clientref | string\d+ Reference number associated with the customer |
cof_transid | string Transaction ID from initial transaction |
cof_authamount | string Authorized amount from initial transaction |
descr | string <= 128 characters Description of the payment |
bdate | string Start of date range |
installment_total | string\d+ Total number of installment payments to make |
frequency | string Enum: "daily" "weekly" "biweekly" "monthly" "bimonthly" "quarterly" "semiannually" "annually" Frequency of payment Values:
|
amount | string\d*(\.\d{0,2})? Amount of money, including decimal. E.g This is the total amount and is an aggregate of all supplementary amounts. |
property name* additional property | string |
{- "profile_id": "78965743785967",
- "status": "active",
- "customer_id": "56789687564",
- "token": "6789656783904467894",
- "clientref": "55",
- "cof_transid": "67898768",
- "cof_authamount": "76.42",
- "descr": "description of some kind",
- "bdate": "-6 months",
- "installment_total": "149",
- "frequency": "monthly",
- "amount": "19.92",
- "property1": "string",
- "property2": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Gets details for the specified installment payment
Additional columns may be present if profile custom fields are in use.
libmonetra KVS equivalent for endpoint
action_admin
= token_schedule
token_schedule
= list
type
= installment
id required | string Example: 565432 Schedule ID |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
curl -X GET 'https://testbox.monetra.com/api/v2/vault/payment/installment/1719266657160421715' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "id": "565432",
- "token": "765432767",
- "create_ts": "2022-05-24 15:06:13 -0400",
- "update_ts": "2022-05-24 15:06:13 -0400",
- "type": "NORMAL",
- "flags": "ACCT_BUSINESS",
- "status": "ACTIVE",
- "cardtype": "VISA",
- "account": "XXXXXXXXXXXX1234",
- "cardholdername": "John Doe",
- "bdate": "-6 months",
- "edate": "now",
- "installment_total": "149",
- "amount": "19.92",
- "last_run": "2022-05-24 15:06:13 -0400",
- "last_run_success": "2022-05-24 15:06:13 -0400",
- "last_run_ttid": "214372416680781",
- "next_run": "2022-06-24 15:06:13 -0400",
- "installment_num": "17",
- "total_paid": "155.34",
- "notes": "This is a note",
- "property1": "string",
- "property2": "string"
}
Edits a stored recurring payment
libmonetra KVS equivalent for endpoint
action_admin
= token_schedule
token_schedule
= edit
type
= recurring
id required | string Example: 565432 Schedule ID |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
skipmissed | string Default: "no" Enum: "yes" "no" Whether missed payments should be skipped By default, when activating an inactive recurring schedule all missed payment (while inactive) will be charged. This is to deal with situations where service was rendered but payment failed and previous payments need to be made now that the schedule is able to run again. A common scenario is a card closed due to fraud and the merchant not having been provided the new card information. It's not unusable for a customer to forget to update all merchants they have recurring payments with. Automatically charging missed payments makes it easier for the merchant so they don't have to determine how many payments were missed and manually charge each one. Sending this parameter as Values:
|
status | string Enum: "active" "disabled" Schedule active status Values:
|
token | string\d+ Reference to the stored account that's being charged for the scheduled payment |
clientref | string\d+ Reference number associated with the customer |
cof_transid | string Transaction ID from initial transaction |
cof_authamount | string Authorized amount from initial transaction |
descr | string <= 128 characters Description of of the payment |
bdate | string Start of date range |
edate | string End of date range |
frequency | string Enum: "daily" "weekly" "biweekly" "monthly" "bimonthly" "quarterly" "semiannually" "annually" Frequency of payment Values:
|
amount | string\d*(\.\d{0,2})? Amount of money, including decimal. E.g This is the total amount and is an aggregate of all supplementary amounts. |
property name* additional property | string |
{- "profile_id": "78965743785967",
- "skipmissed": "no",
- "status": "active",
- "token": "765432767",
- "clientref": "55",
- "cof_transid": "67898768",
- "cof_authamount": "76.42",
- "descr": "description of some kind",
- "bdate": "-6 months",
- "edate": "now",
- "frequency": "monthly",
- "amount": "19.92",
- "property1": "string",
- "property2": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Gets details for the specified recurring payment
Additional columns may be present if profile custom fields are in use.
libmonetra KVS equivalent for endpoint
action_admin
= token_schedule
token_schedule
= list
type
= recurring
id required | string Example: 565432 Schedule ID |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
curl -X GET 'https://testbox.monetra.com/api/v2/vault/payment/recurring/' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "id": "565432",
- "token": "765432767",
- "create_ts": "2022-05-24 15:06:13 -0400",
- "update_ts": "2022-05-24 15:06:13 -0400",
- "type": "NORMAL",
- "flags": "ACCT_BUSINESS",
- "status": "ACTIVE",
- "cardtype": "VISA",
- "account": "XXXXXXXXXXXX1234",
- "cardholdername": "John Doe",
- "bdate": "-6 months",
- "edate": "now",
- "frequency": "monthly",
- "amount": "19.92",
- "last_run": "2022-05-24 15:06:13 -0400",
- "last_run_success": "2022-05-24 15:06:13 -0400",
- "last_run_ttid": "214372416680781",
- "next_run": "2022-06-24 15:06:13 -0400",
- "total_paid": "155.34",
- "notes": "This is a note",
- "property1": "string",
- "property2": "string"
}
Lists transactions that have been run by the recurring billing system
This includes both recurring and installment payments but does not include transactions run using stored accounts.
The resulting report will contain these headers:
user, ttid, msoft_code, phard_code, type, proc, entrymode, txnstatus,
tranflags, capture, reversible, card, pclevel, cardlevel, abaroute, account,
expdate, checknum, timestamp, last_modified_ts, accounttype, reasoncode,
amount, reqamount, orig_authamount, authamount, examount, tax, cashback,
authnum, stan, batch, item, code, verbiage, cardholdername, avs, cv, clerkid,
stationid, comments, divisionnum, promoid, descmerch, descloc, ptrannum,
ordernum, custref, discountamount, freightamount, dutyamount, shipzip,
shipcountry, l3num, bdate, edate, roomnum, excharges, rate, customer_id, token,
order_id, surchargeamount, accounting_id
libmonetra KVS equivalent for endpoint
action_admin
= report_tran
token
= yes
txnstatus
= CAPTURED|UNCAPTURED|COMPLETE|DECLINED
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
bdate | string Example: bdate=-6 months Start of date range |
edate | string Example: edate=now End of date range |
token | string Example: token=6789656783904467894 Referent to the account data that's been stored |
customer_id | string Example: customer_id=56789687564 Customer identifier, numeric only |
curl -X GET 'https://testbox.monetra.com/api/v2/vault/payment/history?bdate=-1%20year&edate=now' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Permanently removes a stored payment from the vault
libmonetra KVS equivalent for endpoint
action_admin
= token_schedule
token_schedule
= del
id required | string Example: 565432 Schedule ID |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
curl -X DELETE 'https://testbox.monetra.com/api/v2/vault/payment/1719266657160421715' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
The card deny list is an internal, merchant maintained, list of cards or ACH accounts. Card deny list entries are shared among the token sharing group. Entries indicate accounts that are problematic and should no longer be transacted with.
Accounts can be added to the deny list in a number of ways:
CARDDENYLIST_DECLINE
profile flag is set to yes
and the transaction carddenylist_decline
flag does not
override it with no
carddenylist_decline
flag set to yes
Accounts can be checked if they are on the card deny list two different ways:
CARDDENYLIST_CHECK
profile flag is set to yes
and the transaction carddenylist_check
flag does not
override it with no
carddenylist_check
flag set to yes
Add a card to the deny list
libmonetra KVS equivalent for endpoint
action_admin
= carddenylist
carddenylist
= add
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
object Account information parameters There are multiple ways to collect the customer's account information. These are the minimum fields required for each entry method.
Additional modifiers are also present which can provide information about how
the data was received. For example, Cards and phones can be tapped in which
case the ENCRYPTION Many of these can be sent encrypted when using an encrypting reader with
a supported encryption method. The Due to the difference in encrypted reader output and some formats being proprietary limited information about the encrypted account fields are provided. If it is necessary to directly send encrypted reader data to Monetra please contact support who can work with you and the device manufacturer on how to format the data for the relevant fields to a given device. | |
reason_code | string Default: "UNSPECIFIED" Enum: "UNSPECIFIED" "DECLINE" "TESTCARD" "CHARGEBACK" "FRAUDCHECK" Reason an account was added to the deny list Values:
|
expire | string How long to keep a card on file before being automatically removed Standard date format accepted by the payment server. Can be a specific date to expire on or a relative data (E.g "+10 days"). Default is 180 days if not specified. Smallest amount of time allowed is 1 day. Anything shorter will be rounded up to 1 day. The deny list is automatically cleaned up on a regular basis. Anything added to the list will have an expiration associated with it for how long it should be on the list. This expiration is different than the card's expiration date associated with the account number. This is how long the entry will remain in the list. It can be set to a very long time such as 50+ years. Card expiration date is not used for removal for several reasons.
|
comment | string Arbitrary comment related to deny list entry |
{- "profile_id": "78965743785967",
- "account_data": {
- "account": "5454545454545454",
- "cardshieldticket": "567865678987",
- "cardholdername": "John Doe",
- "cardpresent": "yes",
- "countrycode": "840",
- "e_account": "DEF5325DEA5678DB6",
- "e_datafield": "DE45AC529FDE35",
- "e_datafieldfmt": "account|expdate",
- "e_datafieldmasked": "5454********5454",
- "e_trackdata": "...",
- "e_id": "645FF245ED34CD5A",
- "expdate": "0129",
- "icc": "4F07A0000000031010500B564953412043524544495457134761739001010010D22122011143804400000F5A0847617390010100105F201A554154205553412F5465737420436172642030342020202020205F24032212315F280208405F2A0208405F2D02656E5F300202015F34010182021C008407A0000000031010950580800080009A031701059B0268009C01009F02060000000100009F03060000000000009F0607A00000000310109F0702FF009F0902008C9F100706010A03A020009F1101019F120B56697361204372656469749F1A0208409F1B04000000009F1E0838303338383535389F1F183131343338303434383930303030303030303030303030309F21030933379F2608D737017E33C786929F2701809F3303E0F8C89F34031F00029F3501229F360200E09F3704526F34219F3901059F4005F000F0F0019F4104000000039F530152",
- "rfid": "no",
- "token": "6789656783904467894",
- "trackdata": "%B4111111111111111^TEST CARD/VI^29121015432112345678?;4111111111111111=29121015432112345678?",
- "abaroute": "267084131",
- "checknum": "45678",
- "accounttype": "PERSONAL|CHECKING"
}, - "reason_code": "CHARGEBACK",
- "expire": "+90 days",
- "comment": "ACH payment bounced"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "carddenylist_id": "67898765"
}
Lists accounts on the card deny list
The resulting report will contain these headers:
id, last4, expdate, cardtype, added, last_seen,
expire, cardholdername, reason_code, comment
libmonetra KVS equivalent for endpoint
action_admin
= carddenylist
carddenylist
= list
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
expdate_bdate | string Example: expdate_bdate=-5 months Used to filter report by card expiration date range. Expiration is when the card expires, the |
expdate_edate | string Example: expdate_edate=-2 months Used to filter report by card expiration date range. Expiration is when the card expires, the |
added_bdate | string Example: added_bdate=-5 months Used to filter report by added date range. This is the beginning date of the added date rate to match. |
added_edate | string Example: added_edate=-2 months Used to filter report by added date range. This is the ending date of the added date range to match. |
last_seen_bdate | string Example: last_seen_bdate=-5 months Used to filter report by last seen date range. This is the beginning date of the last seen date range to match. |
last_seen_edate | string Example: last_seen_edate=-2 months Used to filter report by last seen date range. This is the ending date of the last seen date range to match. |
expire_bdate | string Example: expire_bdate=-5 months Used to filter report by expire date range Expiration is when the entry in the list will be removed. Corresponds |
expire_edate | string Example: expire_edate=-2 months Used to filter report by expire date range Expiration is when the entry in the list should be removed. Corresponds |
curl -X GET 'https://testbox.monetra.com/api/v2/cardlist/deny' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Check if account is on the card deny list
Will return details about the card if it is on the list.
No fields returned indicates it is not on the list. Use
the presence of the id
response key to determine if
a record was found.
libmonetra KVS equivalent for endpoint
action_admin
= carddenylist
carddenylist
= list
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
object Account information parameters There are multiple ways to collect the customer's account information. These are the minimum fields required for each entry method.
Additional modifiers are also present which can provide information about how
the data was received. For example, Cards and phones can be tapped in which
case the ENCRYPTION Many of these can be sent encrypted when using an encrypting reader with
a supported encryption method. The Due to the difference in encrypted reader output and some formats being proprietary limited information about the encrypted account fields are provided. If it is necessary to directly send encrypted reader data to Monetra please contact support who can work with you and the device manufacturer on how to format the data for the relevant fields to a given device. |
{- "profile_id": "78965743785967",
- "account_data": {
- "account": "5454545454545454",
- "cardshieldticket": "567865678987",
- "cardholdername": "John Doe",
- "cardpresent": "yes",
- "countrycode": "840",
- "e_account": "DEF5325DEA5678DB6",
- "e_datafield": "DE45AC529FDE35",
- "e_datafieldfmt": "account|expdate",
- "e_datafieldmasked": "5454********5454",
- "e_trackdata": "...",
- "e_id": "645FF245ED34CD5A",
- "expdate": "0129",
- "icc": "4F07A0000000031010500B564953412043524544495457134761739001010010D22122011143804400000F5A0847617390010100105F201A554154205553412F5465737420436172642030342020202020205F24032212315F280208405F2A0208405F2D02656E5F300202015F34010182021C008407A0000000031010950580800080009A031701059B0268009C01009F02060000000100009F03060000000000009F0607A00000000310109F0702FF009F0902008C9F100706010A03A020009F1101019F120B56697361204372656469749F1A0208409F1B04000000009F1E0838303338383535389F1F183131343338303434383930303030303030303030303030309F21030933379F2608D737017E33C786929F2701809F3303E0F8C89F34031F00029F3501229F360200E09F3704526F34219F3901059F4005F000F0F0019F4104000000039F530152",
- "rfid": "no",
- "token": "6789656783904467894",
- "trackdata": "%B4111111111111111^TEST CARD/VI^29121015432112345678?;4111111111111111=29121015432112345678?",
- "abaroute": "267084131",
- "checknum": "45678",
- "accounttype": "PERSONAL|CHECKING"
}
}
{- "id": "167643643",
- "last4": "5454",
- "expdate": "0129",
- "cardtype": "VISA",
- "added": "2022-05-24 15:06:13 -0400",
- "last_seen": "2022-05-24 15:06:13 -0400",
- "expire": "+90 days",
- "cardholdername": "John Doe",
- "reason_code": "CHARGEBACK",
- "comment": "ACH payment bounced"
}
Account detail for a card on the card deny list
libmonetra KVS equivalent for endpoint
action_admin
= carddenylist
carddenylist
= list
carddenylist_id required | string Example: 67898765 ID in the card deny/allow list |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
curl -X GET 'https://testbox.monetra.com/api/v2/cardlist/deny/143432' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "id": "167643643",
- "last4": "5454",
- "expdate": "0129",
- "cardtype": "VISA",
- "added": "2022-05-24 15:06:13 -0400",
- "last_seen": "2022-05-24 15:06:13 -0400",
- "expire": "+90 days",
- "cardholdername": "John Doe",
- "reason_code": "CHARGEBACK",
- "comment": "ACH payment bounced"
}
Remove a card from the deny list
libmonetra KVS equivalent for endpoint
action_admin
= carddenylist
carddenylist
= remove
carddenylist_id required | string Example: 67898765 ID in the card deny/allow list |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
curl -X DELETE 'https://testbox.monetra.com/api/v2/cardlist/deny/134543245543' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
The card allow list is an internal, merchant maintained, list of cards or ACH accounts. Card allow list entries are shared among the token sharing group. Entries indicate accounts that are known good and should skip fraud checks and automatic deny list entry.
Accounts can be added to the allow list:
Accounts can be checked if they are on the allow list:
Add a card to the allow list
libmonetra KVS equivalent for endpoint
action_admin
= cardallowlist
cardallowlist
= add
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
object Account information parameters There are multiple ways to collect the customer's account information. These are the minimum fields required for each entry method.
Additional modifiers are also present which can provide information about how
the data was received. For example, Cards and phones can be tapped in which
case the ENCRYPTION Many of these can be sent encrypted when using an encrypting reader with
a supported encryption method. The Due to the difference in encrypted reader output and some formats being proprietary limited information about the encrypted account fields are provided. If it is necessary to directly send encrypted reader data to Monetra please contact support who can work with you and the device manufacturer on how to format the data for the relevant fields to a given device. | |
reason_code | string Default: "UNSPECIFIED" Enum: "UNSPECIFIED" "FRAUDCHECK" Reason an account was added to the allow list Values:
|
expire | string How long to keep a card on file before being automatically removed Standard date format accepted by the payment server. Can be a specific date to expire on or a relative data (E.g "+10 days"). Default is 180 days if not specified. Smallest amount of time allowed is 1 day. Anything shorter will be rounded up to 1 day. The deny list is automatically cleaned up on a regular basis. Anything added to the list will have an expiration associated with it for how long it should be on the list. This expiration is different than the card's expiration date associated with the account number. This is how long the entry will remain in the list. It can be set to a very long time such as 50+ years. Card expiration date is not used for removal for several reasons.
|
comment | string Arbitrary comment related to allow list entry |
{- "profile_id": "78965743785967",
- "account_data": {
- "account": "5454545454545454",
- "cardshieldticket": "567865678987",
- "cardholdername": "John Doe",
- "cardpresent": "yes",
- "countrycode": "840",
- "e_account": "DEF5325DEA5678DB6",
- "e_datafield": "DE45AC529FDE35",
- "e_datafieldfmt": "account|expdate",
- "e_datafieldmasked": "5454********5454",
- "e_trackdata": "...",
- "e_id": "645FF245ED34CD5A",
- "expdate": "0129",
- "icc": "4F07A0000000031010500B564953412043524544495457134761739001010010D22122011143804400000F5A0847617390010100105F201A554154205553412F5465737420436172642030342020202020205F24032212315F280208405F2A0208405F2D02656E5F300202015F34010182021C008407A0000000031010950580800080009A031701059B0268009C01009F02060000000100009F03060000000000009F0607A00000000310109F0702FF009F0902008C9F100706010A03A020009F1101019F120B56697361204372656469749F1A0208409F1B04000000009F1E0838303338383535389F1F183131343338303434383930303030303030303030303030309F21030933379F2608D737017E33C786929F2701809F3303E0F8C89F34031F00029F3501229F360200E09F3704526F34219F3901059F4005F000F0F0019F4104000000039F530152",
- "rfid": "no",
- "token": "6789656783904467894",
- "trackdata": "%B4111111111111111^TEST CARD/VI^29121015432112345678?;4111111111111111=29121015432112345678?",
- "abaroute": "267084131",
- "checknum": "45678",
- "accounttype": "PERSONAL|CHECKING"
}, - "reason_code": "UNSPECIFIED",
- "expire": "+90 days",
- "comment": "false positive on fraud check"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "cardallowlist_id": "67898765"
}
Lists accounts on the card allow list
The resulting report will contain these headers:
id, last4, expdate, cardtype, added, last_seen,
expire, cardholdername, reason_code, comment
libmonetra KVS equivalent for endpoint
action_admin
= cardallowlist
cardallowlist
= list
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
expdate_bdate | string Example: expdate_bdate=-5 months Used to filter report by card expiration date range. Expiration is when the card expires, the |
expdate_edate | string Example: expdate_edate=-2 months Used to filter report by card expiration date range. Expiration is when the card expires, the |
added_bdate | string Example: added_bdate=-5 months Used to filter report by added date range. This is the beginning date of the added date rate to match. |
added_edate | string Example: added_edate=-2 months Used to filter report by added date range. This is the ending date of the added date range to match. |
last_seen_bdate | string Example: last_seen_bdate=-5 months Used to filter report by last seen date range. This is the beginning date of the last seen date range to match. |
last_seen_edate | string Example: last_seen_edate=-2 months Used to filter report by last seen date range. This is the ending date of the last seen date range to match. |
expire_bdate | string Example: expire_bdate=-5 months Used to filter report by expire date range Expiration is when the entry in the list will be removed. Corresponds |
expire_edate | string Example: expire_edate=-2 months Used to filter report by expire date range Expiration is when the entry in the list should be removed. Corresponds |
curl -X GET 'https://testbox.monetra.com/api/v2/cardlist/allow' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Check if account is on the card allow list
Will return details about the card if it is on the list.
No fields returned indicates it is not on the list. Use
the presence of the id
response key to determine if
a record was found.
libmonetra KVS equivalent for endpoint
action_admin
= cardallowlist
cardallowlist
= list
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
object Account information parameters There are multiple ways to collect the customer's account information. These are the minimum fields required for each entry method.
Additional modifiers are also present which can provide information about how
the data was received. For example, Cards and phones can be tapped in which
case the ENCRYPTION Many of these can be sent encrypted when using an encrypting reader with
a supported encryption method. The Due to the difference in encrypted reader output and some formats being proprietary limited information about the encrypted account fields are provided. If it is necessary to directly send encrypted reader data to Monetra please contact support who can work with you and the device manufacturer on how to format the data for the relevant fields to a given device. |
{- "profile_id": "78965743785967",
- "account_data": {
- "account": "5454545454545454",
- "cardshieldticket": "567865678987",
- "cardholdername": "John Doe",
- "cardpresent": "yes",
- "countrycode": "840",
- "e_account": "DEF5325DEA5678DB6",
- "e_datafield": "DE45AC529FDE35",
- "e_datafieldfmt": "account|expdate",
- "e_datafieldmasked": "5454********5454",
- "e_trackdata": "...",
- "e_id": "645FF245ED34CD5A",
- "expdate": "0129",
- "icc": "4F07A0000000031010500B564953412043524544495457134761739001010010D22122011143804400000F5A0847617390010100105F201A554154205553412F5465737420436172642030342020202020205F24032212315F280208405F2A0208405F2D02656E5F300202015F34010182021C008407A0000000031010950580800080009A031701059B0268009C01009F02060000000100009F03060000000000009F0607A00000000310109F0702FF009F0902008C9F100706010A03A020009F1101019F120B56697361204372656469749F1A0208409F1B04000000009F1E0838303338383535389F1F183131343338303434383930303030303030303030303030309F21030933379F2608D737017E33C786929F2701809F3303E0F8C89F34031F00029F3501229F360200E09F3704526F34219F3901059F4005F000F0F0019F4104000000039F530152",
- "rfid": "no",
- "token": "6789656783904467894",
- "trackdata": "%B4111111111111111^TEST CARD/VI^29121015432112345678?;4111111111111111=29121015432112345678?",
- "abaroute": "267084131",
- "checknum": "45678",
- "accounttype": "PERSONAL|CHECKING"
}
}
{- "id": "167643643",
- "last4": "5454",
- "expdate": "0129",
- "cardtype": "VISA",
- "added": "2022-05-24 15:06:13 -0400",
- "last_seen": "2022-05-24 15:06:13 -0400",
- "expire": "+90 days",
- "cardholdername": "John Doe",
- "reason_code": "UNSPECIFIED",
- "comment": "false positive on fraud check"
}
Account detail for a card on the card allow list
libmonetra KVS equivalent for endpoint
action_admin
= cardallowlist
cardallowlist
= list
cardallowlist_id required | string Example: 67898765 ID in the card allow list |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
curl -X GET 'https://testbox.monetra.com/api/v2/cardlist/allow/143432' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "id": "167643643",
- "last4": "5454",
- "expdate": "0129",
- "cardtype": "VISA",
- "added": "2022-05-24 15:06:13 -0400",
- "last_seen": "2022-05-24 15:06:13 -0400",
- "expire": "+90 days",
- "cardholdername": "John Doe",
- "reason_code": "UNSPECIFIED",
- "comment": "false positive on fraud check"
}
Remove a card from the allow list
libmonetra KVS equivalent for endpoint
action_admin
= cardallowlist
cardallowlist
= remove
cardallowlist_id required | string Example: 67898765 ID in the card allow list |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
curl -X DELETE 'https://testbox.monetra.com/api/v2/cardlist/allow/134543245543' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
The Customer database is a limited Client Management System (CMS) with a focus on payments. It is not a full replacement for a dedicated CMS but is intended for smaller merchants that only need payment handling functionality of a CMS.
This system allows creating customer, managing metadata about the customer. For example, addresses, stored cards, and scheduled payments. Customer can optionally be utilized by Monetra's order system. This is to aid in creating and notification of invoices.
Larger business with an existing CMS are expected to use the Monetra customer database for helping manage customer payments. The external CMS would include the ID for the customer created in Monetra's system. The external CMS then be able to use the Monetra system to manage payment information and initiate transactions.
Adds a customer to the customer database for the merchant or token group
libmonetra KVS equivalent for endpoint
action_admin
= customer_add
customer_add
= customer
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
display_name required | string <= 128 characters Display name |
name_company | string <= 128 characters Company name |
name_prefix | string <= 32 characters Name prefix, Mr. Mrs. Ms. Dr... Free-form field |
name_first | string <= 32 characters First name |
name_middle | string <= 32 characters Middle name |
name_last | string <= 32 characters Last name |
name_suffix | string <= 32 characters Name suffix, Jr. Sr. III... Free-form field |
phone_work | string <= 32 characters [-+0-9() .]* Work phone |
phone_home | string <= 32 characters [-+0-9() .]* Home phone |
phone_mobile | string <= 32 characters [-+0-9() .]* Mobile phone |
phone_fax | string <= 32 characters [-+0-9() .]* Fax number |
string <= 128 characters | |
website | string <= 128 characters Website |
business_id | string <= 32 characters Business ID - FEIN |
accounting_id | string <= 128 characters ID used in external accounting system for customer |
notes | string <= 1024 characters General free-form information |
flags | string Enum: "TAXEXEMPT" "EMAIL_RECEIPT_RECURRING" flags controlling behavior Values:
|
property name* additional property | string |
{- "profile_id": "78965743785967",
- "display_name": "James Dean",
- "name_company": "Dean Industries",
- "name_prefix": "Mr.",
- "name_first": "James",
- "name_middle": "Byron",
- "name_last": "Dean",
- "name_suffix": "string",
- "phone_work": "555-555-5555",
- "phone_home": "555-555-5555",
- "phone_mobile": "555-555-5555",
- "phone_fax": "555-555-5555",
- "email": "email@email",
- "business_id": "XX-XXXXXXX",
- "accounting_id": "1474",
- "notes": "This is a note",
- "flags": "EMAIL_RECEIPT_RECURRING",
- "property1": "string",
- "property2": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "id": "56789687564"
}
Lists customers
The billing and shipping address information provided by the report are the customer's default addresses. They may not be present if no addresses were set as defaults.
The resulting report will contain these headers:
id, tokengroup_id, create_profile_id, ts_created, ts_modified, flags,
display_name, name_company, name_prefix, name_first, name_middle, name_last,
name_suffix, phone_work, phone_home, phone_mobile, phone_fax, email, website,
business_id, accounting_id, notes, default_billing_id, default_shipping_id,
default_token, billing_display_name, billing_address1, billing_address2,
billing_city, billing_state, billing_country, billing_postal_code,
billing_delivery_notes, shipping_display_name, shipping_address1,
shipping_address2, shipping_city, shipping_state, shipping_country,
shipping_postal_code, shipping_delivery_notes
Additional columns may be present if profile custom fields are in use.
libmonetra KVS equivalent for endpoint
action_admin
= customer_list
customer_list
= customer
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
curl -X GET 'https://testbox.monetra.com/api/v2/customer' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Deletes a customer
WARNING: This will purge tokens associated with the customer! If tokens need to be retained, remove them from the customer before deleting.
libmonetra KVS equivalent for endpoint
action_admin
= customer_del
customer_del
= customer
id required | string Example: 56789687564 Customer identifier |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
curl -X DELETE 'https://testbox.monetra.com/api/v2/customer/19266575665036873' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Edits an existing customer
libmonetra KVS equivalent for endpoint
action_admin
= customer_edit
customer_edit
= customer
id required | string Example: 56789687564 Customer identifier |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
display_name | string <= 128 characters Display name |
name_company | string <= 128 characters Company name |
name_prefix | string <= 32 characters Name prefix, Mr. Mrs. Ms. Dr... Free-form field |
name_first | string <= 32 characters First name |
name_middle | string <= 32 characters Middle name |
name_last | string <= 32 characters Last name |
name_suffix | string <= 32 characters Name suffix, Jr. Sr. III... Free-form field |
phone_work | string <= 32 characters [-+0-9() .]* Work phone |
phone_home | string <= 32 characters [-+0-9() .]* Home phone |
phone_mobile | string <= 32 characters [-+0-9() .]* Mobile phone |
phone_fax | string <= 32 characters [-+0-9() .]* Fax number |
string <= 128 characters | |
website | string <= 128 characters Website |
business_id | string <= 32 characters Business ID - FEIN |
accounting_id | string <= 128 characters ID used in external accounting system for customer |
notes | string <= 1024 characters General free-form information |
flags | string Enum: "TAXEXEMPT" "EMAIL_RECEIPT_RECURRING" flags controlling behavior Values:
|
default_token | string[0-9]* Default token/payment to use |
default_billing_id | string[0-9]+ Default ID of billing address in use from customer_addresses 0 means no default |
default_shipping_id | string[0-9]+ Default ID of shipping address in use from customer_addresses 0 means no default |
property name* additional property | string |
{- "profile_id": "78965743785967",
- "display_name": "James Dean",
- "name_company": "Dean Industries",
- "name_prefix": "Mr.",
- "name_first": "James",
- "name_middle": "Byron",
- "name_last": "Dean",
- "name_suffix": "string",
- "phone_work": "555-555-5555",
- "phone_home": "555-555-5555",
- "phone_mobile": "555-555-5555",
- "phone_fax": "555-555-5555",
- "email": "email@email",
- "business_id": "XX-XXXXXXX",
- "accounting_id": "1474",
- "notes": "This is a note",
- "flags": "EMAIL_RECEIPT_RECURRING",
- "default_token": "44975464745966",
- "default_billing_id": "648563845659663",
- "default_shipping_id": "84569365",
- "property1": "string",
- "property2": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Details for a specific customer
libmonetra KVS equivalent for endpoint
action_admin
= customer_list
customer_list
= customer
id required | string Example: 56789687564 Customer identifier |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
curl -X GET 'https://testbox.monetra.com/api/v2/customer/19266575665036873' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "id": "56789687564",
- "tokengroup_id": "654356543",
- "create_profile_id": "654765436",
- "ts_created": "2022-05-24 15:06:13 -0400",
- "ts_modified": "2022-05-24 15:06:13 -0400",
- "flags": "EMAIL_RECEIPT_RECURRING",
- "display_name": "James Dean",
- "name_company": "Dean Industries",
- "name_prefix": "Mr.",
- "name_first": "James",
- "name_middle": "Byron",
- "name_last": "Dean",
- "name_suffix": "string",
- "phone_work": "555-555-5555",
- "phone_home": "555-555-5555",
- "phone_mobile": "555-555-5555",
- "phone_fax": "555-555-5555",
- "email": "email@email",
- "business_id": "XX-XXXXXXX",
- "accounting_id": "1474",
- "notes": "This is a note",
- "default_billing_id": "648563845659663",
- "default_shipping_id": "84569365",
- "default_token": "44975464745966",
- "billing_display_name": "string",
- "billing_address1": "string",
- "billing_address2": "string",
- "billing_city": "string",
- "billing_state": "string",
- "billing_country": "string",
- "billing_postal_code": "string",
- "billing_delivery_notes": "string",
- "shipping_display_name": "string",
- "shipping_address1": "string",
- "shipping_address2": "string",
- "shipping_city": "string",
- "shipping_state": "string",
- "shipping_country": "string",
- "shipping_postal_code": "string",
- "shipping_delivery_notes": "string",
- "property1": "string",
- "property2": "string"
}
Lists all stored accounts associated with this customer
The resulting report will contain these headers:
token, tokengroup_id, create_profile_id, create_ts, update_ts, type, flags,
cardtype, abaroute, account, expdate, cardholdername, descr, clientref,
customer_id, street, zip, descmerch, descloc
libmonetra KVS equivalent for endpoint
action_admin
= token_list
id required | string Example: 56789687564 Customer identifier |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
curl -X GET 'https://testbox.monetra.com/api/v2/customer/19266575665036873/tokens' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Adds an address to a customer
libmonetra KVS equivalent for endpoint
action_admin
= customer_add
customer_add
= customer_address
customer_id required | string Example: 56789687564 Customer identifier, numeric only |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
display_name | string <= 128 characters Display name |
address1 required | string <= 128 characters Address line 1 |
address2 | string <= 128 characters Address line 2 |
city | string <= 128 characters City |
state | string <= 128 characters State |
country | string <= 3 characters [a-zA-Z]{0,3} Country ISO 3166-1 alpha-3 country code |
postal_code | string Postal code |
delivery_notes | string <= 1024 characters Delivery notes |
default_billing | string Default: "no" Enum: "yes" "no" Specifies whether or not this is the default billing address Values:
|
default_shipping | string Default: "no" Enum: "yes" "no" Specifies whether or not this is the default shipping address Values:
|
property name* additional property | string |
{- "profile_id": "78965743785967",
- "display_name": "James Dean",
- "address1": "673 2nd St",
- "address2": "STE 4",
- "city": "Winter Haven",
- "state": "FL",
- "country": "USA",
- "postal_code": "33839",
- "delivery_notes": "Don't ring bell",
- "default_billing": "yes",
- "default_shipping": "yes",
- "property1": "string",
- "property2": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "id": "67899767789"
}
Lists a customer's addresses
The resulting report will contain these headers:
id, customer_id, display_name, address1, address2, city, state, country,
postal_code, delivery_notes
Additional fields may be present if profile custom fields are in use.
libmonetra KVS equivalent for endpoint
action_admin
= customer_list
customer_list
= customer_address
customer_id required | string Example: 56789687564 Customer identifier, numeric only |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
curl -X GET 'https://testbox.monetra.com/api/v2/customer/19266575665036873/address' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Deletes a customer's address
libmonetra KVS equivalent for endpoint
action_admin
= customer_del
customer_del
= customer_address
customer_id required | string Example: 56789687564 Customer identifier, numeric only |
id required | string Example: 67899767789 Customer address identifier |
curl -X DELETE 'https://testbox.monetra.com/api/v2/customer/19266575665036873/address/19266578682904270' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Edits an existing customer's address
libmonetra KVS equivalent for endpoint
action_admin
= customer_edit
customer_edit
= customer_address
customer_id required | string Example: 56789687564 Customer identifier, numeric only |
id required | string Example: 67899767789 Customer address identifier |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
display_name | string <= 128 characters Display name |
address1 | string <= 128 characters Address line 1 |
address2 | string <= 128 characters Address line 2 |
city | string <= 128 characters City |
state | string <= 128 characters State |
country | string <= 3 characters [a-zA-Z]{0,3} Country ISO 3166-1 alpha-3 country code |
postal_code | string Postal code |
delivery_notes | string <= 1024 characters Delivery notes |
default_billing | string Default: "no" Enum: "yes" "no" Specifies whether or not this is the default billing address Values:
|
default_shipping | string Default: "no" Enum: "yes" "no" Specifies whether or not this is the default shipping address Values:
|
property name* additional property | string |
{- "profile_id": "78965743785967",
- "display_name": "James Dean",
- "address1": "673 2nd St",
- "address2": "STE 4",
- "city": "Winter Haven",
- "state": "FL",
- "country": "USA",
- "postal_code": "33839",
- "delivery_notes": "Don't ring bell",
- "default_billing": "yes",
- "default_shipping": "yes",
- "property1": "string",
- "property2": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Details for a specific customer address
Additional fields may be present if profile custom fields are in use.
libmonetra KVS equivalent for endpoint
action_admin
= customer_list
customer_list
= customer_address
customer_id required | string Example: 56789687564 Customer identifier, numeric only |
id required | string Example: 67899767789 Customer address identifier |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
curl -X GET 'https://testbox.monetra.com/api/v2/customer/19266575665036873/address/19266578682904270' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "id": "67899767789",
- "customer_id": "56789687564",
- "display_name": "James Dean",
- "address1": "673 2nd St",
- "address2": "STE 4",
- "city": "Winter Haven",
- "state": "FL",
- "country": "USA",
- "postal_code": "33839",
- "delivery_notes": "Don't ring bell",
- "property1": "string",
- "property2": "string"
}
Allows for grouping multiple inventory operations into a single operation
The bulk operation is "atomic" and if any steps fail everything will fail.
Bulk operations take any of the actions for the category as KVS pairs.
Actions to be performed are structured as a JSON-array of objects, with the
key/value pairs matching the field definitions, plus a prodmanage
key with
value set to the appropriate action being taken. Reference the libMonetra KVS
for the appropriate values. This JSON object is passed in to the bulk
key
on the request.
Back references can be used for ids and timestamps in the format of: :id[{idx}]
or :timestamp_ms[{idx}]
Where the {idx}
is the array index of the response for
a member being referenced.
The result of a bulk operation will also return a bulk
key in the response with
JSON output containing: result, id, timestamp_ms, error
if appropriate.
libmonetra KVS equivalent for endpoint
action_admin
= prodmanage
prodmanage
= bulk
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
bulk required | string Bulk data encoded as JSON If the bulk JSON data is being sent in a protocol which itself is JSON data (ReST submitting JSON) the data within this key must be escaped as a string. This also applies to JSON response data. If the protocol is JSON the data will be escaped as a string and will need to be decoded. E.g. when using a JSON protocol for transport
|
{- "profile_id": "78965743785967",
- "bulk": "{ ... }"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "bulk": "{ ... }"
}
All inventory discounts and products are grouped into categories. Before anything can be added to the system categories must be created to hold them.
Categories allow for logical grouping of similar types of items and make it easier to find items. Specifically in a POS setting where the items will be displayed for a clerk to select.
Example categories for a restaurant
Add an inventory category
Products, and discounts are added to categories. The category allows for grouping similar products and discounts that apply specifically to those products.
libmonetra KVS equivalent for endpoint
action_admin
= prodmanage
prodmanage
= category_add
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
name required | string <= 32 characters Name of the category |
description | string <= 128 characters Description of the category |
sortorder | string\d+ UI sort order (display purposes only) |
{- "profile_id": "78965743785967",
- "name": "Fruit",
- "description": "Fruits",
- "sortorder": "7"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS",
- "id": "567896543",
- "timestamp_ms": "1653340525"
}
List inventory categories
The resulting report will contain these headers:
id, name, timestamp_ms, description, sortorder, is_deleted
libmonetra KVS equivalent for endpoint
action_admin
= prodlist
json
= false
prodlist
= category
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
name | string Example: name=Fruit Name of the category |
timestamp_ms | string Example: timestamp_ms=1653408007 The maximum recorded timestamp_ms of the last fetch. Will only return records newer than this. |
curl -X GET 'https://testbox.monetra.com/api/v2/inventory/category' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Delete an inventory category
The category must be empty.
libmonetra KVS equivalent for endpoint
action_admin
= prodmanage
prodmanage
= category_del
id required | string Example: 567896543 Unique ID of the category |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
timestamp_ms required | string Example: timestamp_ms=1653340525 Last updated Unix timestamp in milliseconds |
curl -X DELETE 'https://testbox.monetra.com/api/v2/inventory/category/20120539065950458?timestamp_ms=1588258706031' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS"
}
Edit an inventory category
libmonetra KVS equivalent for endpoint
action_admin
= prodmanage
prodmanage
= category_edit
id required | string Example: 567896543 Unique ID of the category |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
timestamp_ms required | string\d+ Last updated Unix timestamp in milliseconds |
name | string <= 32 characters Name of the category |
description | string <= 128 characters Description of the category |
sortorder | string\d+ UI sort order (display purposes only) |
{- "profile_id": "78965743785967",
- "timestamp_ms": "1653340525",
- "name": "Fruit",
- "description": "Fruits",
- "sortorder": "7"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS",
- "timestamp_ms": "1653340525"
}
Gets details for the specified category
libmonetra KVS equivalent for endpoint
action_admin
= prodlist
json
= false
prodlist
= category
id required | string Example: 567896543 Unique ID of the category |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
timestamp_ms | string Example: timestamp_ms=1653408007 The maximum recorded timestamp_ms of the last fetch. Will only return records newer than this. |
curl -X GET 'https://testbox.monetra.com/api/v2/inventory/category/1588258706031' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "id": "567896543",
- "name": "Fruit",
- "timestamp_ms": "1653340525",
- "description": "Fruits",
- "sortorder": "7",
- "is_deleted": "no"
}
Multiple types of discounts are supported and can be applied in different ways.
Specifically discounts can be:
They can apply to:
Cash discounts
A cash discount can be added to an order to reduce the total to account for the discount offered when paying with cash. This should be a percentage discount.
Except in special cases, per brand processing rules the amount shown to customer must be the total when paying with a credit card. There are special cases for certain MCC designations that can show the credit card processing as a separate additional fee.
However, the vast majority of merchants do not qualify these special cases and instead need to show the credit card price and that paying with cash will result in a discount.
This is purely how the price is presented to the customer. Whether notifying there is an additional credit card fee or a discount when paying with cash the customer is paying the difference for the convince of using a credit card.
The discount is offered when paying with cash due to the merchant not incurring some credit card processing fees when accepting cash. However, the merchant is not required to offer a cash discount. They can charge the same price for credit card and cash. Or they can offer a discount less than the credit card processing fee would cost them.
This discount does not have to be specifically for credit card processing fees either. The merchant is free to cash discount for any reason. The requirement that the total is the credit card total. A second cash total can still be presented to the customer.
If a merchant is not accepting cash the total needs to be inclusive all credit card fees. Except in special cases. If a merchant is unsure if they qualify for any special cases, they most likely don't.
Add a discount to an inventory category
Discounts can be applied to products, orders or both. They can be percentage based or a fixed amount.
libmonetra KVS equivalent for endpoint
action_admin
= prodmanage
prodmanage
= discount_add
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
category_id required | string\d+ Unique ID of the product category |
name required | string <= 32 characters Name of the discount |
description | string <= 128 characters Description of the discount |
type required | string Default: "percentage" Enum: "percentage" "fixed" How the discount amount is applied Values:
|
usecase required | string Enum: "item" "order" "both" "cashdiscount" What the discount applies to in the order Values:
|
amount required | string\d*(\.\d{0,5})? Amount (up to 5 decimal places) |
sortorder | string\d+ UI sort order (display purposes only) |
{- "profile_id": "78965743785967",
- "category_id": "567896543",
- "name": "$5 Off",
- "description": "$5 off promotion",
- "type": "fixed",
- "usecase": "order",
- "amount": "5.00",
- "sortorder": "7"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS",
- "id": "834678965675",
- "timestamp_ms": "1653340525"
}
List inventory category discounts
The resulting report will contain these headers:
id, name, timestamp_ms, category_id, amount, type, usecase, description,
sortorder, is_deleted
libmonetra KVS equivalent for endpoint
action_admin
= prodlist
json
= false
prodlist
= discount
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
name | string Example: name=$5 Off Name of the discount |
category_id | string Example: category_id=567896543 Unique ID of the product category |
timestamp_ms | string Example: timestamp_ms=1653408007 The maximum recorded timestamp_ms of the last fetch. Will only return records newer than this. |
curl -X GET 'https://testbox.monetra.com/api/v2/inventory/discount' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Delete an inventory category discount
libmonetra KVS equivalent for endpoint
action_admin
= prodmanage
prodmanage
= discount_del
id required | string Example: 834678965675 Unique ID of the discount |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
timestamp_ms required | string Example: timestamp_ms=1653340525 Last updated Unix timestamp in milliseconds |
curl -X DELETE 'https://testbox.monetra.com/api/v1/inventory/discount/26863859502458458?timestamp_ms=1588258706031' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS"
}
Edit an inventory category discount
libmonetra KVS equivalent for endpoint
action_admin
= prodmanage
prodmanage
= discount_edit
id required | string Example: 834678965675 Unique ID of the discount |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
timestamp_ms required | string\d+ Last updated Unix timestamp in milliseconds |
name | string <= 32 characters Name of the discount |
description | string <= 128 characters Description of the discount |
type | string Default: "percentage" Enum: "percentage" "fixed" How the discount amount is applied Values:
|
usecase | string Enum: "item" "order" "both" "cashdiscount" What the discount applies to in the order Values:
|
amount | string\d*(\.\d{0,5})? Amount (up to 5 decimal places) |
sortorder | string\d+ UI sort order (display purposes only) |
{- "profile_id": "78965743785967",
- "timestamp_ms": "1653340525",
- "name": "$5 Off",
- "description": "$5 off promotion",
- "type": "fixed",
- "usecase": "order",
- "amount": "5.00",
- "sortorder": "7"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS",
- "timestamp_ms": "1653340525"
}
Gets details for the specified discount
libmonetra KVS equivalent for endpoint
action_admin
= prodlist
json
= false
prodlist
= discount
id required | string Example: 834678965675 Unique ID of the discount |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
timestamp_ms | string Example: timestamp_ms=1653408007 The maximum recorded timestamp_ms of the last fetch. Will only return records newer than this. |
curl -X GET 'https://testbox.monetra.com/api/v2/inventory/discount/1588258706031' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "id": "834678965675",
- "name": "$5 Off",
- "timestamp_ms": "1653340525",
- "category_id": "567896543",
- "amount": "5.00",
- "type": "fixed",
- "usecase": "order",
- "description": "$5 off promotion",
- "sortorder": "7",
- "is_deleted": "no"
}
Products are high level metadata about items being sold by the merchant.
Products must have at least one SKU added to them in order to be sold. Due to the potential for product variations having different barcodes but still being considered the same product, SKUs are necessary.
Price is not set on the products but instead on SKUs.
Multiple tax rates can be set on a product in order to account for products that are untaxed vs taxed. Multiple tax rates can be applied.
Add an inventory product
Products represent base items. All products will have SKUs which are the actual item's. All products are part of a category.
For example
libmonetra KVS equivalent for endpoint
action_admin
= prodmanage
prodmanage
= product_add
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
name required | string <= 32 characters Name of the product |
category_id required | string\d+ Unique ID of the product category |
description | string <= 128 characters Description of the product |
taxrates | string comma separated list of taxrate ids (up to 4) |
modifiersets | string comma separated list of modifierset ids (up to 8) |
req_modifiersets | string comma separated list of required |
commoditycode | string[0-9a-zA-Z]{8,12} Contains an international description code of the individual good or service being supplied The acquiring bank or processor should provide the merchant an updated listing of currently defined codes. Please note that this is different from the 4-character summary commodity code. Codes can be found online at http://www.unspsc.org The code itself will not be validated; only the format is validated. |
unit | string Free-form unit of measure Merchant's description for a unit of measurement. If no good description, use 'Unit' |
sortorder | string\d+ UI sort order (display purposes only) |
image_data | string[a-zA-Z0-9+/\n]+={0,2}[\n]* Base64-encoded image data. Supports JPG and PNG formats. 300x300, 256KB max size. |
{- "profile_id": "78965743785967",
- "name": "Large pizza",
- "category_id": "567896543",
- "description": "A really big pizza",
- "taxrates": "5654367654",
- "modifiersets": "65789837657843,1456543456,14567876543",
- "req_modifiersets": "6578943,456543",
- "commoditycode": "50301700",
- "unit": "1",
- "sortorder": "7",
- "image_data": "ABC="
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS",
- "id": "6789646596763",
- "timestamp_ms": "1653340525"
}
List inventory products
The resulting report will contain these headers:
id, name, timestamp_ms, category_id, taxrates, modifiersets,
fractional_qty, description, commoditycode, unit, req_modifiersets, sortorder,
image_type, image_data, is_deleted
libmonetra KVS equivalent for endpoint
action_admin
= prodlist
json
= false
prodlist
= product
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
name | string Example: name=Large pizza Name of the product |
category_id | string Example: category_id=567896543 Unique ID of the product category |
timestamp_ms | string Example: timestamp_ms=1653408007 The maximum recorded timestamp_ms of the last fetch. Will only return records newer than this. |
fetch_images | object Enum: "yes" "no" Example: fetch_images=no Include base64-encoded image data Values:
|
curl -X GET 'https://testbox.monetra.com/api/v2/inventory/product' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Delete an inventory product
libmonetra KVS equivalent for endpoint
action_admin
= prodmanage
prodmanage
= product_del
id required | string Example: 6789646596763 Unique ID of the product |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
timestamp_ms required | string Example: timestamp_ms=1653340525 Last updated Unix timestamp in milliseconds |
curl -X DELETE 'https://testbox.monetra.com/api/v2/inventory/product/27589475894035458?timestamp_ms=1588258706031' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS"
}
Edit an inventory product
libmonetra KVS equivalent for endpoint
action_admin
= prodmanage
prodmanage
= product_edit
id required | string Example: 6789646596763 Unique ID of the product |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
timestamp_ms required | string\d+ Last updated Unix timestamp in milliseconds |
name | string <= 32 characters Name of the product |
category_id | string\d+ Unique ID of the product category |
description | string <= 128 characters Description of the product |
taxrates | string comma separated list of taxrate ids (up to 4) |
modifiersets | string comma separated list of modifierset ids (up to 8) |
req_modifiersets | string comma separated list of required |
commoditycode | string[0-9a-zA-Z]{8,12} Contains an international description code of the individual good or service being supplied The acquiring bank or processor should provide the merchant an updated listing of currently defined codes. Please note that this is different from the 4-character summary commodity code. Codes can be found online at http://www.unspsc.org The code itself will not be validated; only the format is validated. |
unit | string Free-form unit of measure Merchant's description for a unit of measurement. If no good description, use 'Unit' |
sortorder | string\d+ UI sort order (display purposes only) |
image_data | string[a-zA-Z0-9+/\n]+={0,2}[\n]* Base64-encoded image data. Supports JPG and PNG formats. 300x300, 256KB max size. |
{- "profile_id": "78965743785967",
- "timestamp_ms": "1653340525",
- "name": "Large pizza",
- "category_id": "567896543",
- "description": "A really big pizza",
- "taxrates": "5654367654",
- "modifiersets": "65789837657843,1456543456,14567876543",
- "req_modifiersets": "6578943,456543",
- "commoditycode": "50301700",
- "unit": "1",
- "sortorder": "7",
- "image_data": "ABC="
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS",
- "timestamp_ms": "1653340525"
}
Gets details for the specified product
libmonetra KVS equivalent for endpoint
action_admin
= prodlist
json
= false
prodlist
= product
id required | string Example: 6789646596763 Unique ID of the product |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
timestamp_ms | string Example: timestamp_ms=1653408007 The maximum recorded timestamp_ms of the last fetch. Will only return records newer than this. |
fetch_images | object Enum: "yes" "no" Example: fetch_images=no Include base64-encoded image data Values:
|
curl -X GET 'https://testbox.monetra.com/api/v2/inventory/product/1758939453334' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "id": "6789646596763",
- "name": "Large pizza",
- "timestamp_ms": "1653340525",
- "category_id": "567896543",
- "taxrates": "5654367654",
- "modifiersets": "65789837657843,1456543456,14567876543",
- "fractional_qty": "no",
- "description": "A really big pizza",
- "commoditycode": "50301700",
- "unit": "1",
- "req_modifiersets": "6578943,456543",
- "sortorder": "7",
- "image_type": "PNG",
- "image_data": "ABC=",
- "is_deleted": "no"
}
SKUs are the actual item being sold and are contained within a product.
Product variations can be manufacturing variations of the same product. For example a refreshed version of a product with the same name and functionality.
Another possibility is a product with multiple variations. For example, a vacuum cleaner. Model is XYZ but there are three SKUs that different based on accessory bundles offered as part of the SKU. While it is one product it has multiple SKUs. This is typically manufacturer bundles where each SKU has a different accompanying UPC code.
In both examples the price may differ between the SKUs. This is why price is set on the SKU and not on the product.
Add an inventory product SKU
A SKU is a specific version of a product. For example, if the product is a book, there could be hardcover and paperback SKUs.
libmonetra KVS equivalent for endpoint
action_admin
= prodmanage
prodmanage
= sku_add
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
product_id required | string\d+ Unique ID of the product |
name required | string <= 32 characters Name of the SKU |
price required | string\d*(\.\d{0,5})? Price (up to 5 decimal places) |
inventory | string Default: "unlimited" Enum: "unlimited" "tracked" "outofstock" Type of item stocking Values:
|
barcode | string <= 32 characters Decoded Barcode. E.g. 2d barcode decoded to the UPC number |
description | string <= 128 characters Description of the SKU |
sortorder | string\d+ UI sort order (display purposes only) |
{- "profile_id": "78965743785967",
- "product_id": "6789646596763",
- "name": "Large hand tossed",
- "price": "25.00",
- "inventory": "unlimited",
- "barcode": "015000071356",
- "description": "Large hand tossed pizza",
- "sortorder": "7"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS",
- "id": "5784936543",
- "timestamp_ms": "1653340525"
}
List inventory product SKUs
The resulting report will contain these headers:
id, name, timestamp_ms, product_id, inventory, price, in_stock,
inventory_timestamp_ms, barcode, description, sortorder, is_deleted
libmonetra KVS equivalent for endpoint
action_admin
= prodlist
json
= false
prodlist
= sku
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
name | string Example: name=Large hand tossed Name of the SKU |
product_id | string Example: product_id=6789646596763 Unique ID of the product |
in_stock | object Enum: "yes" "no" Example: in_stock=yes Whether the in stock status should be evaulated as a condition Values:
|
timestamp_ms | string Example: timestamp_ms=1653408007 The maximum recorded timestamp_ms of the last fetch. Will only return records newer than this. |
curl -X GET 'https://testbox.monetra.com/api/v2/inventory/sku' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Delete an inventory product SKU
libmonetra KVS equivalent for endpoint
action_admin
= prodmanage
prodmanage
= sku_del
id required | string Example: 5784936543 Unique ID of the SKU |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
timestamp_ms required | string Example: timestamp_ms=1653340525 Last updated Unix timestamp in milliseconds |
curl -X DELETE 'https://testbox.monetra.com/api/v2/inventory/sku/13748493859345458?timestamp_ms=57849320845' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS"
}
Edit an inventory product SKU
libmonetra KVS equivalent for endpoint
action_admin
= prodmanage
prodmanage
= sku_edit
id required | string Example: 5784936543 Unique ID of the SKU |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
timestamp_ms required | string\d+ Last updated Unix timestamp in milliseconds |
name | string <= 32 characters Name of the SKU |
price | string\d*(\.\d{0,5})? Price (up to 5 decimal places) |
inventory | string Default: "unlimited" Enum: "unlimited" "tracked" "outofstock" Type of item stocking Values:
|
barcode | string <= 32 characters Decoded Barcode. E.g. 2d barcode decoded to the UPC number |
description | string <= 128 characters Description of the SKU |
sortorder | string\d+ UI sort order (display purposes only) |
{- "profile_id": "78965743785967",
- "timestamp_ms": "1653340525",
- "name": "Large hand tossed",
- "price": "25.00",
- "inventory": "unlimited",
- "barcode": "015000071356",
- "description": "Large hand tossed pizza",
- "sortorder": "7"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS",
- "timestamp_ms": "1653340525"
}
Gets details for the specified SKU
libmonetra KVS equivalent for endpoint
action_admin
= prodlist
json
= false
prodlist
= sku
id required | string Example: 5784936543 Unique ID of the SKU |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
timestamp_ms | string Example: timestamp_ms=1653408007 The maximum recorded timestamp_ms of the last fetch. Will only return records newer than this. |
curl -X GET 'https://testbox.monetra.com/api/v2/inventory/sku/1588258706031' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "id": "5784936543",
- "name": "Large hand tossed",
- "timestamp_ms": "1653340525",
- "product_id": "6789646596763",
- "inventory": "unlimited",
- "price": "25.00",
- "in_stock": "yes",
- "inventory_timestamp_ms": "1653421798000",
- "barcode": "015000071356",
- "description": "Large hand tossed pizza",
- "sortorder": "7",
- "is_deleted": "no"
}
Set the quantity for SKU
Tracking for the number of items in stock
libmonetra KVS equivalent for endpoint
action_admin
= prodmanage
prodmanage
= inventory_set
id required | string Example: 5784936543 Unique ID of the SKU |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
timestamp_ms required | string\d+ Last updated Unix timestamp in milliseconds |
cnt required | string\d+ Exact count of inventory in stock |
{- "profile_id": "78965743785967",
- "timestamp_ms": "1653340525",
- "cnt": "17"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS",
- "timestamp_ms": "1653340525"
}
Modifier sets are similar to categories. In that they are a logical grouping of modifiers.
Modifier sets are attached to products in order to allow modifying products.
In the SKU section an example of a vacuum cleaner with multiple accessory bundle variations was used. In that case the SKUs were due to manufacturer bundles with different UPC codes.
Building on that example, a product might have a single SKU for the item because the manufacturer only produces one item. Instead the merchant has their on add on bundles they sell with the item. A modifier set can be used with a modifier for each add on.
Add an inventory modifier set
A grouping of like modifiers. For example, pizza toppings. Where each topping is a modifier within the set.
Modifier sets are applied to products. It can be applied to multiple products. For example, a pizza topping modifier set could apply to product pizza and product calzone (which is like a pizza but harder to eat and they're dumb). Both can and often use the same topping modifiers.
libmonetra KVS equivalent for endpoint
action_admin
= prodmanage
prodmanage
= modifierset_add
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
name required | string <= 32 characters Name of the modifier set |
description | string <= 128 characters Description of the modifier set |
multiselect | string Default: "no" Enum: "yes" "no" Whether or not multiple selection is allowed Values:
|
maxselect | string\d+ How many items may be selected at once (only if multiselect, default=unlimited) |
{- "profile_id": "78965743785967",
- "name": "Toppings",
- "description": "Pizza toppings",
- "multiselect": "no",
- "maxselect": "5"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS",
- "id": "6756394857674839",
- "timestamp_ms": "1653340525"
}
List inventory modifier sets
The resulting report will contain these headers:
id, name, timestamp_ms, description, multiselect, maxselect, is_deleted
libmonetra KVS equivalent for endpoint
action_admin
= prodlist
json
= false
prodlist
= modifierset
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
name | string Example: name=Toppings Name of the modifier set |
timestamp_ms | string Example: timestamp_ms=1653408007 The maximum recorded timestamp_ms of the last fetch. Will only return records newer than this. |
curl -X GET 'https://testbox.monetra.com/api/v2/inventory/modifierset' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Delete an inventory modifier set
The modifier set must be empty.
libmonetra KVS equivalent for endpoint
action_admin
= prodmanage
prodmanage
= modifierset_del
id required | string Example: 6756394857674839 Unique ID of the modifier set |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
timestamp_ms required | string Example: timestamp_ms=1653340525 Last updated Unix timestamp in milliseconds |
curl -X DELETE 'https://testbox.monetra.com/api/v2/inventory/modifierset/84578903855643344?timestamp_ms=1895849024551' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS"
}
Edit an inventory modifier set
libmonetra KVS equivalent for endpoint
action_admin
= prodmanage
prodmanage
= modifierset_edit
id required | string Example: 6756394857674839 Unique ID of the modifier set |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
timestamp_ms required | string\d+ Last updated Unix timestamp in milliseconds |
name | string <= 32 characters Name of the modifier set |
description | string <= 128 characters Description of the modifier set |
multiselect | string Default: "no" Enum: "yes" "no" Whether or not multiple selection is allowed Values:
|
maxselect | string\d+ How many items may be selected at once (only if multiselect, default=unlimited) |
{- "profile_id": "78965743785967",
- "timestamp_ms": "1653340525",
- "name": "Toppings",
- "description": "Pizza toppings",
- "multiselect": "no",
- "maxselect": "5"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS",
- "timestamp_ms": "1653340525"
}
Gets details for the specified modifier set
libmonetra KVS equivalent for endpoint
action_admin
= prodlist
json
= false
prodlist
= modifierset
id required | string Example: 6756394857674839 Unique ID of the modifier set |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
timestamp_ms | string Example: timestamp_ms=1653408007 The maximum recorded timestamp_ms of the last fetch. Will only return records newer than this. |
curl -X GET 'https://testbox.monetra.com/api/v2/inventory/modifierset/1588258706031' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "id": "6756394857674839",
- "name": "Toppings",
- "timestamp_ms": "1653340525",
- "description": "Pizza toppings",
- "multiselect": "no",
- "maxselect": "5",
- "is_deleted": "no"
}
Modifiers are ways a product can be altered. They belong to modifier sets to better group the modifiers. A common term for a modifier is an add on.
Modifiers can have their own price that can increase the total price of a product. They are not required to have a price and will not increase the product price if added.
An example is a pizza where a topping modifier set is created and within the set is a modifier representing each topping and it's additional price per topping.
Add an inventory modifier to a modifier set
Modifiers augment a product and are typically add ons. This is different than a SKU.
For example, a pizza topping would be a modifier. Pepperoni, mushroom, or bacon. Multiple modifiers can be applied to an order.
All modifiers are part of a modifier set in order to provide logical groupings for modifiers.
libmonetra KVS equivalent for endpoint
action_admin
= prodmanage
prodmanage
= modifier_add
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
modifierset_id required | string\d+ Unique ID of the modifier set |
name required | string <= 32 characters Name of the modifier |
description | string <= 128 characters Description of the modifier |
price | string\d*(\.\d{0,5})? Price (up to 5 decimal places) |
unit | string Free-form unit of measure Merchant's description for a unit of measurement. If no good description, use 'Unit' |
sortorder | string\d+ UI sort order (display purposes only) |
{- "profile_id": "78965743785967",
- "modifierset_id": "6756394857674839",
- "name": "Pepperoni",
- "description": "Pepperoni pizza topping",
- "price": "25.00",
- "unit": "1",
- "sortorder": "7"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS",
- "id": "6789646596763",
- "timestamp_ms": "1653340525"
}
List inventory modifiers
The resulting report will contain these headers:
id, name, timestamp_ms, modifierset_id, price, description, unit, sortorder,
is_deleted
libmonetra KVS equivalent for endpoint
action_admin
= prodlist
json
= false
prodlist
= modifier
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
name | string Example: name=Pepperoni Name of the modifier |
modifierset_id | string Example: modifierset_id=6756394857674839 Unique ID of the modifier set |
timestamp_ms | string Example: timestamp_ms=1653408007 The maximum recorded timestamp_ms of the last fetch. Will only return records newer than this. |
curl -X GET 'https://testbox.monetra.com/api/v2/inventory/modifier' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Delete an inventory modifier
libmonetra KVS equivalent for endpoint
action_admin
= prodmanage
prodmanage
= modifier_del
id required | string Example: 39836566395734 Unique ID of the modifier |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
timestamp_ms required | string Example: timestamp_ms=1653340525 Last updated Unix timestamp in milliseconds |
curl -X DELETE 'https://testbox.monetra.com/api/v2/inventory/modifier/82859028592849248?timestamp_ms=1895849024551' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS"
}
Edit an inventory modifier
libmonetra KVS equivalent for endpoint
action_admin
= prodmanage
prodmanage
= modifier_edit
id required | string Example: 39836566395734 Unique ID of the modifier |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
timestamp_ms required | string\d+ Last updated Unix timestamp in milliseconds |
name | string <= 32 characters Name of the modifier |
description | string <= 128 characters Description of the modifier |
price | string\d*(\.\d{0,5})? Price (up to 5 decimal places) |
unit | string Free-form unit of measure Merchant's description for a unit of measurement. If no good description, use 'Unit' |
sortorder | string\d+ UI sort order (display purposes only) |
{- "profile_id": "78965743785967",
- "timestamp_ms": "1653340525",
- "name": "Pepperoni",
- "description": "Pepperoni pizza topping",
- "price": "25.00",
- "unit": "1",
- "sortorder": "7"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS",
- "timestamp_ms": "1653340525"
}
Gets details for the specified modifier
libmonetra KVS equivalent for endpoint
action_admin
= prodlist
json
= false
prodlist
= modifier
id required | string Example: 39836566395734 Unique ID of the modifier |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
timestamp_ms | string Example: timestamp_ms=1653408007 The maximum recorded timestamp_ms of the last fetch. Will only return records newer than this. |
curl -X GET 'https://testbox.monetra.com/api/v2/inventory/modifier/1588258706031' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "id": "39836566395734",
- "name": "Pepperoni",
- "timestamp_ms": "1653340525",
- "modifierset_id": "6756394857674839",
- "price": "25.00",
- "description": "Pepperoni pizza topping",
- "unit": "1",
- "sortorder": "7",
- "is_deleted": "no"
}
Tax rates are the amount of tax that is charged to an item. This is used for automatic calculation of tax when the inventory system is used in conjunction with the order system.
Multiple tax rates may be necessary and multiple can be applied to products. There may be a state and county tax that are tracked and remitted separately. Two tax rates would be created and both added to a product. When the inventory is used with the order system, this allows generating tax rate reports to aid with remittance to the relevant governments.
Add an inventory tax rate
Allows creating a tax rate that can be applied to products. Multiple tax rates could be necessary for reporting purposes.
For example, separate rates for state, county, and city. Multiple tax rates can be applied to products.
Having several tax rates my be necessary if products are taxed differently based on their type. For example, some places have digital and physical goods rates.
libmonetra KVS equivalent for endpoint
action_admin
= prodmanage
prodmanage
= taxrate_add
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
name required | string <= 32 characters Name of the tax rate |
percentage required | string\d*(\.\d{0,5})? Percentage of tax rate (up to 5 decimal places) |
default | string Default: "no" Enum: "yes" "no" Whether this should be applied by default to new products (UI) Values:
|
roundmethod | string Enum: "normal" "bankers" Method used for rounding Values:
|
sortorder | string\d+ UI sort order (display purposes only) |
{- "profile_id": "78965743785967",
- "name": "County tax",
- "percentage": "1.254",
- "default": "yes",
- "roundmethod": "normal",
- "sortorder": "7"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS",
- "id": "65748376543",
- "timestamp_ms": "1653340525"
}
List inventory tax rates
The resulting report will contain these headers:
id, name, timestamp_ms, percentage, default, roundmethod, sortorder, is_deleted
libmonetra KVS equivalent for endpoint
action_admin
= prodlist
json
= false
prodlist
= taxrate
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
name | string Example: name=County tax Name of the tax rate |
timestamp_ms | string Example: timestamp_ms=1653408007 The maximum recorded timestamp_ms of the last fetch. Will only return records newer than this. |
curl -X GET 'https://testbox.monetra.com/api/v2/inventory/taxrate' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Delete an inventory tax rate
libmonetra KVS equivalent for endpoint
action_admin
= prodmanage
prodmanage
= taxrate_del
id required | string Example: 65748376543 Unique ID of the tax rate |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
timestamp_ms required | string Example: timestamp_ms=1653340525 Last updated Unix timestamp in milliseconds |
curl -X DELETE 'https://testbox.monetra.com/api/v2/inventory/taxrate/14859438593544438?timestamp_ms=1859386643324' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS"
}
Edit an inventory tax rate
libmonetra KVS equivalent for endpoint
action_admin
= prodmanage
prodmanage
= taxrate_edit
id required | string Example: 65748376543 Unique ID of the tax rate |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
timestamp_ms required | string\d+ Last updated Unix timestamp in milliseconds |
name | string <= 32 characters Name of the tax rate |
percentage | string\d*(\.\d{0,5})? Percentage of tax rate (up to 5 decimal places) |
default | string Default: "no" Enum: "yes" "no" Whether this should be applied by default to new products (UI) Values:
|
roundmethod | string Enum: "normal" "bankers" Method used for rounding Values:
|
sortorder | string\d+ UI sort order (display purposes only) |
{- "profile_id": "78965743785967",
- "timestamp_ms": "1653340525",
- "name": "County tax",
- "percentage": "1.254",
- "default": "yes",
- "roundmethod": "normal",
- "sortorder": "7"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS",
- "timestamp_ms": "1653340525"
}
Gets details for the specified tax rate
libmonetra KVS equivalent for endpoint
action_admin
= prodlist
json
= false
prodlist
= taxrate
id required | string Example: 65748376543 Unique ID of the tax rate |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
timestamp_ms | string Example: timestamp_ms=1653408007 The maximum recorded timestamp_ms of the last fetch. Will only return records newer than this. |
curl -X GET 'https://testbox.monetra.com/api/v2/inventory/taxrate/1588258706031' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "id": "65748376543",
- "name": "County tax",
- "timestamp_ms": "1653340525",
- "percentage": "1.254",
- "default": "yes",
- "roundmethod": "normal",
- "sortorder": "7",
- "is_deleted": "no"
}
The order system allows creating orders
The profile flag ALLOW_INVOICING
must be set.
Order types
There are three types of 'orders':
The line items can be based on inventory items from the inventory system or a custom (one off) line item. Customers who have an external product system and only need the invoice for billing will often use a single custom line item for the order amount. You can attach the external system generated PDF so the customer will be able to view it from the link they get sent to pay. This is useful in the external invoice generation scenario where Monetra is only being used to send and collect the payment.
Order flow
Quick flow
Invoice flow
Typically the last two steps will be handled by the customer using the invoice link emailed or SMS messaged to the customer. The customer can make payment online using that link.
Payments
Payments are a way to link transactions to orders so the order can be closed. Accepting transactions does not require the use of the order system.
There are two ways a payment can be linked to an order.
order_id
can be specified with a transaction, such as purchase
at
the time the transaction is processed. This will automatically update the order
and create a payment linking the transaction to the order.ttid
of the
transaction being linked.Emailing or SMS sending orders
It is possible to email or SMS send an order to a customer. This applies to all order types. The customer will receive a link that will take them to the payment server to view and pay the order. If the order is closed they will be able to view receipts. Additionally, if an external invoice PDF was added to the order they will be able to download the PDF here.
Sending orders to customers is handled by the "Receipt" system. They can be sent by email or SMS message. Orders are sent as a links to Monetra for viewing. Since it's the same link for open orders to allow payment and closed orders for viewing receipts, sending is contained in one place ("Receipts").
Invoices will be automatically email to the customer when closed. This requires
a customer from the customer system to be associated with the order and that customer
must have an email on file. Further, if the profile has the RECEIVE_RECEIPTS_INVOICE
flag set, an email will be sent to the notify_email
.
timestamp_ms
The timestamp_ms
parameter is used to ensure changes do not create conflicts.
The value for timestamp_ms
is either returned by an operation and is then used
in the next. Or it can be retrieved by getting an order details or when listing
orders.
Cancel an order in the OPEN or PENDING states
The order is not removed from the system. Must be used instead of order delete if there have been payments attempted against it.
It is recommended to delete orders if possible as it doesn't leave stale records.
NOTE: must cancel all applied payments before canceling an order or invoice.
libmonetra KVS equivalent for endpoint
action_admin
= ordermanage
ordermanage
= order_cancel
id required | string Example: 58445676543 Order identifier, numeric only |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
cancel_reason required | string Enum: "CANCEL" "RETURN" "SATISFACTION" Reason for order cancellation Values:
|
timestamp_ms required | string\d+ Last updated Unix timestamp in milliseconds |
{- "profile_id": "78965743785967",
- "cancel_reason": "RETURN",
- "timestamp_ms": "1653340525"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS"
}
Create an order or invoice
libmonetra KVS equivalent for endpoint
action_admin
= ordermanage
ordermanage
= order_add
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
type required | string Enum: "ORDER" "QUICK" "INVOICE" Type of order Values:
|
status required | string Enum: "PENDING" "OPEN" Status of the order Values:
|
flags | string Value: "NOTIP" Type of order Flag values (pipe separated):
|
merch_status | string Enum: "PENDING" "COMPLETE" "PREPARING" "BACKORDERED" Merchant status of the order Values:
|
customer_id | string[0-9]+ Customer identifier, numeric only Required when |
ordernum | string <= 128 characters [0-9a-zA-Z]+ Order number An order number is required for all Card Not Present (e.g. Mail Order / Telephone Order and E-commerce) transactions, all transactions for the Restaurant industry, and all Level 2 cards such as Purchase or Corporate cards. Since it is not possible to know the card type prior to a request to Monetra, an order number should be sent on all transactions. An order number is alphanumeric. However, for the restaurant industry, it should be numeric only. Processors are limited in the number of characters that can be sent as part of a transaction. Non restaurant industry will only have 25 characters sent and restaurant will only have 6. |
ponumber | string <= 32 characters Unique identifier of the order Typically used with Invoices |
allowed_cardtypes | string Enum: "VISA" "MC" "AMEX" "DISC" "DINERS" "JCB" "CUP" "GIFT" "ACH" Card types allowed to be used for payment Pipe-separated (|) list of cardtypes accepted for payment. Merchant must be configured to accept the provided cardtypes. Defaults to allow all if not provided. This is typically used in conjunction with accepting payment online using the Monetra Invoice Payment Web Page for online order or invoice payment. Flag values (pipe separated):
|
invoice_date | string Date the order was created Current date if not provided |
invoice_due | string Date the order is due Current date if not provided |
notes | string <= 1024 characters General free-form information Will be shown to customers! |
total_tax_override | string0?\.\d{2} Tax override amount, only used if all line items have no tax rates |
ship_name | string <= 32 characters Shipping name of recipient "To" field on shipping label. |
ship_address1 | string <= 32 characters Shipping street address of recipient Line 1 |
ship_address2 | string <= 32 characters Shipping street address of recipient Line 2 |
ship_city | string <= 32 characters Shipping city of recipient |
ship_state | string <= 32 characters Shipping state / provence of recipient |
ship_zip | string <= 32 characters Shipping zip / postal Code of recipient Used for tax zones |
ship_country | string <= 32 characters Shipping country of recipient |
ship_notes | string <= 128 characters Shipping delivery instructions |
invoice_filename | string <= 32 characters Filename of externally attached invoice PDF Requires:
|
invoice_data | string[a-zA-Z0-9+/\n]+={0,2}[\n]* PDF base64 encoded invoice PDF Used for externally generated invoice billing. Max file size is 512 KB. |
{- "profile_id": "78965743785967",
- "type": "INVOICE",
- "status": "OPEN",
- "flags": "NOTIP",
- "merch_status": "PREPARING",
- "customer_id": "56789687564",
- "ordernum": "A13DDES345",
- "ponumber": "P4567",
- "allowed_cardtypes": "VISA|MC|DISC",
- "invoice_date": "+2 days",
- "invoice_due": "+45 days",
- "notes": "Gift wrap all items in order",
- "total_tax_override": "0.07",
- "ship_name": "Robert Redford",
- "ship_address1": "244 90th Pl",
- "ship_address2": "Unit 42",
- "ship_city": "Orlando",
- "ship_state": "FL",
- "ship_zip": "32789",
- "ship_country": "USA",
- "ship_notes": "Leave with security",
- "invoice_filename": "Invoice_Dean_4875.pdf",
- "invoice_data": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS",
- "id": "58445676543",
- "timestamp_ms": "1653340525"
}
List orders
The resulting report will contain these headers:
id, timestamp_ms, user, id_base62, type, flags, status, cancel_reason,
merch_status, customer_id, customer_display_name, ordernum, ponumber,
allowed_cardtypes, securitytoken, timestamp_create, timestamp_close,
timestamp_sent, timestamp_viewed, invoice_date, invoice_due, taxrates,
taxamounts, total_amount, total_tax, total_discount, total_paid, total_tip,
total_amount_cash, total_amount_noncash, notes, total_tax_override, ship_name,
ship_address1, ship_address2, ship_city, ship_state, ship_zip, ship_country,
ship_notes, invoice_filename, invoice_data, is_deleted
libmonetra KVS equivalent for endpoint
action_admin
= orderlist
json
= no
orderlist
= orders
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
customer_id | string Example: customer_id=54345,567043,31567 Comma separated list of customer identifiers |
ordernum | string Example: ordernum=A13DDES345 Order number An order number is required for all Card Not Present (e.g. Mail Order / Telephone Order and E-commerce) transactions, all transactions for the Restaurant industry, and all Level 2 cards such as Purchase or Corporate cards. Since it is not possible to know the card type prior to a request to Monetra, an order number should be sent on all transactions. An order number is alphanumeric. However, for the restaurant industry, it should be numeric only. Processors are limited in the number of characters that can be sent as part of a transaction. Non restaurant industry will only have 25 characters sent and restaurant will only have 6. |
type | object Enum: "ORDER" "QUICK" "INVOICE" Example: type=ORDER,QUICK Comma separated list of order types Flag values (comma separated):
|
status | object Enum: "PENDING" "OPEN" "PARTIALPAID" "COMPLETE" "CANCEL" "FORCECLOSED" Example: status=OPEN,PARTIALPAID Comma separated list of order status Flag values (comma separated):
|
timestamp_create_bdate | string Example: timestamp_create_bdate=1653406830 Start of order created date range as a timestamp |
timestamp_create_edate | string Example: timestamp_create_edate=1653406830 End of order created date range as a timestamp |
timestamp_close_bdate | string Example: timestamp_close_bdate=1653406830 Start of order closed date range as a timestamp |
timestamp_close_edate | string Example: timestamp_close_edate=1653406830 End of order closed date range as a timestamp |
fetch_invoices | object Enum: "yes" "no" Example: fetch_invoices=no Include base64-encoded invoice data Applies to invoices with external (PDF) invoice documents. Values:
|
timestamp_ms | string Example: timestamp_ms=1653408007 The maximum recorded timestamp_ms of the last fetch. Will only return records newer than this. |
curl -X GET 'https://testbox.monetra.com/api/v2/order' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Completely remove an order or invoice from the system
Cannot be used if an order has had payments applied. If payments have been applied the order must be canceled.
libmonetra KVS equivalent for endpoint
action_admin
= ordermanage
ordermanage
= order_del
id required | string Example: 58445676543 Order identifier, numeric only |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
timestamp_ms required | string Example: timestamp_ms=1653340525 Last updated Unix timestamp in milliseconds |
curl -X DELETE 'https://testbox.monetra.com/api/v2/order/1456543256' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS"
}
Edit and order or invoice
libmonetra KVS equivalent for endpoint
action_admin
= ordermanage
ordermanage
= order_edit
id required | string Example: 58445676543 Order identifier, numeric only |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
type | string Enum: "ORDER" "QUICK" "INVOICE" Type of order Values:
|
status | string Enum: "PENDING" "OPEN" Status of the order Values:
|
flags | string Value: "NOTIP" Type of order Flag values (pipe separated):
|
merch_status | string Enum: "PENDING" "COMPLETE" "PREPARING" "BACKORDERED" Merchant status of the order Values:
|
customer_id | string[0-9]+ Customer identifier, numeric only |
ordernum | string <= 128 characters [0-9a-zA-Z]+ Order number An order number is required for all Card Not Present (e.g. Mail Order / Telephone Order and E-commerce) transactions, all transactions for the Restaurant industry, and all Level 2 cards such as Purchase or Corporate cards. Since it is not possible to know the card type prior to a request to Monetra, an order number should be sent on all transactions. An order number is alphanumeric. However, for the restaurant industry, it should be numeric only. Processors are limited in the number of characters that can be sent as part of a transaction. Non restaurant industry will only have 25 characters sent and restaurant will only have 6. |
ponumber | string <= 32 characters Unique identifier of the order Typically used with Invoices |
allowed_cardtypes | string Enum: "VISA" "MC" "AMEX" "DISC" "DINERS" "JCB" "CUP" "GIFT" "ACH" Card types allowed to be used for payment Pipe-separated (|) list of cardtypes accepted for payment. Merchant must be configured to accept the provided cardtypes. Defaults to allow all if not provided. This is typically used in conjunction with accepting payment online using the Monetra Invoice Payment Web Page for online order or invoice payment. Flag values (pipe separated):
|
invoice_date | string Date the order was created Current date if not provided |
invoice_due | string Date the order is due Current date if not provided |
notes | string <= 1024 characters General free-form information Will be shown to customers! |
total_tax_override | string0?\.\d{2} Tax override amount, only used if all line items have no tax rates |
ship_name | string <= 32 characters Shipping name of recipient "To" field on shipping label. |
ship_address1 | string <= 32 characters Shipping street address of recipient Line 1 |
ship_address2 | string <= 32 characters Shipping street address of recipient Line 2 |
ship_city | string <= 32 characters Shipping city of recipient |
ship_state | string <= 32 characters Shipping state / provence of recipient |
ship_zip | string <= 32 characters Shipping zip / postal Code of recipient Used for tax zones |
ship_country | string <= 32 characters Shipping country of recipient |
ship_notes | string <= 128 characters Shipping delivery instructions |
invoice_filename | string <= 32 characters Filename of externally attached invoice PDF Requires:
|
invoice_data | string[a-zA-Z0-9+/\n]+={0,2}[\n]* PDF base64 encoded invoice PDF Used for externally generated invoice billing. Max file size is 512 KB. |
timestamp_ms required | string\d+ Last updated Unix timestamp in milliseconds |
{- "profile_id": "78965743785967",
- "type": "INVOICE",
- "status": "OPEN",
- "flags": "NOTIP",
- "merch_status": "PREPARING",
- "customer_id": "56789687564",
- "ordernum": "A13DDES345",
- "ponumber": "P4567",
- "allowed_cardtypes": "VISA|MC|DISC",
- "invoice_date": "+2 days",
- "invoice_due": "+45 days",
- "notes": "Gift wrap all items in order",
- "total_tax_override": "0.07",
- "ship_name": "Robert Redford",
- "ship_address1": "244 90th Pl",
- "ship_address2": "Unit 42",
- "ship_city": "Orlando",
- "ship_state": "FL",
- "ship_zip": "32789",
- "ship_country": "USA",
- "ship_notes": "Leave with security",
- "invoice_filename": "Invoice_Dean_4875.pdf",
- "invoice_data": "string",
- "timestamp_ms": "1653340525"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS",
- "timestamp_ms": "1653340525"
}
Gets details for the specified order
libmonetra KVS equivalent for endpoint
action_admin
= orderlist
json
= no
orderlist
= orders
id required | string Example: 58445676543 Order identifier, numeric only |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
fetch_invoices | object Enum: "yes" "no" Example: fetch_invoices=no Include base64-encoded invoice data Applies to invoices with external (PDF) invoice documents. Values:
|
timestamp_ms | string Example: timestamp_ms=1653408007 The maximum recorded timestamp_ms of the last fetch. Will only return records newer than this. |
curl -X GET 'https://testbox.monetra.com/api/v2/order/789567654256' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "id": "58445676543",
- "timestamp_ms": "1653340525",
- "user": "benny",
- "id_base62": "1dPwZv08nt",
- "type": "INVOICE",
- "flags": "NOTIP",
- "status": "OPEN",
- "cancel_reason": "RETURN",
- "merch_status": "PREPARING",
- "customer_id": "56789687564",
- "customer_display_name": "James Dean",
- "ordernum": "A13DDES345",
- "ponumber": "P4567",
- "allowed_cardtypes": "VISA|MC|DISC",
- "securitytoken": "x4TIeLxv",
- "timestamp_create": "2022-05-24 15:06:13 -0400",
- "timestamp_close": "2022-05-24 15:06:13 -0400",
- "timestamp_sent": "2022-05-24 15:06:13 -0400",
- "timestamp_viewed": "2022-05-24 15:06:13 -0400",
- "invoice_date": "+2 days",
- "invoice_due": "+45 days",
- "taxrates": "5654367654",
- "taxamounts": "1.02,0.49,0.22",
- "total_amount": "155.34",
- "total_tax": "5.04",
- "total_discount": "15.00",
- "total_paid": "155.34",
- "total_tip": "0.50",
- "total_amount_cash": "142.97",
- "total_amount_noncash": "155.34",
- "notes": "Gift wrap all items in order",
- "total_tax_override": "0.07",
- "ship_name": "Robert Redford",
- "ship_address1": "244 90th Pl",
- "ship_address2": "Unit 42",
- "ship_city": "Orlando",
- "ship_state": "FL",
- "ship_zip": "32789",
- "ship_country": "USA",
- "ship_notes": "Leave with security",
- "invoice_filename": "Invoice_Dean_4875.pdf",
- "invoice_data": "string",
- "is_deleted": "no"
}
Allows for grouping multiple order operations into a single operation
The bulk operation is "atomic" and if any steps fail everything will fail.
Bulk operations take any of the actions for the category as KVS pairs.
Actions to be performed are structured as a JSON-array of objects, with the
key/value pairs matching the field definitions, plus a ordermanage
key with
value set to the appropriate action being taken. Reference the libMonetra KVS
for the appropriate values. This JSON object is passed in to the bulk
key
on the request.
Back references can be used for ids and timestamps in the format of: :id[{idx}]
or :timestamp_ms[{idx}]
Where the {idx}
is the array index of the response for
a member being referenced.
The result of a bulk operation will also return a bulk
key in the response with
JSON output containing: result, id, timestamp_ms, error
if appropriate.
libmonetra KVS equivalent for endpoint
action_admin
= ordermanage
ordermanage
= bulk
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
bulk required | string Bulk data encoded as JSON If the bulk JSON data is being sent in a protocol which itself is JSON data (ReST submitting JSON) the data within this key must be escaped as a string. This also applies to JSON response data. If the protocol is JSON the data will be escaped as a string and will need to be decoded. E.g. when using a JSON protocol for transport
|
{- "profile_id": "78965743785967",
- "bulk": "{ ... }"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "bulk": "{ ... }"
}
Order discount management. This is for managing discounts applied to the entire order. Discounts can be added to an order using a custom discount or by referencing a discount from the inventory system. An inventory system discount must be of a type that can be applied to orders.
When operating on a discount, such as edit or delete, the id of the discount within the order is referenced. Not the discount id within the inventory system if the inventory system was used.
Add a custom fixed discount to the order
For adding discounts that are not in the inventory system.
libmonetra KVS equivalent for endpoint
action_admin
= ordermanage
ordermanage
= item_add
ref_id
= 0
type
= DISCOUNT_FIXED
order_id required | string Example: 58445676543 Unique ID of an order |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
ringorder required | string Order in which item needs to be displayed. Does not need to be sequential. But must be unique for the line item |
qty | string Quantity of the item being purchased This field allows up to 5 decimal places of precision. If the card brand does not allow that level of precision, the number will be rounded. Minimum quantity is 0.00005. Maximum quantity is 99999.00. |
amount required | string\d*(\.\d{0,5})? Amount of money, including up to 5 decimal places. E.g This is the amount of 1 unit. |
taxrates | string comma separated list of taxrate ids (up to 4) |
name required | string <= 32 characters Name of the discount |
productcode | string[0-9a-zA-Z ]{1,12} Merchant-defined code for the item being purchased, such as a UPC #, SKU #, or Item # |
commoditycode | string[0-9a-zA-Z]{8,12} Contains an international description code of the individual good or service being supplied The acquiring bank or processor should provide the merchant an updated listing of currently defined codes. Please note that this is different from the 4-character summary commodity code. Codes can be found online at http://www.unspsc.org The code itself will not be validated; only the format is validated. |
unit | string Free-form unit of measure Merchant's description for a unit of measurement. If no good description, use 'Unit' |
notes | string <= 1024 characters General free-form information |
group_name | string <= 32 characters |
{- "profile_id": "78965743785967",
- "ringorder": "2",
- "qty": "1",
- "amount": "199.95",
- "taxrates": "5654367654",
- "name": "Employee discount",
- "productcode": "7456",
- "commoditycode": "50301700",
- "unit": "1",
- "notes": "This is a note",
- "group_name": "Art Products"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS",
- "id": "67876547364567"
}
Add a custom percent discount to the order
For adding discounts that are not in the inventory system.
libmonetra KVS equivalent for endpoint
action_admin
= ordermanage
ordermanage
= item_add
ref_id
= 0
type
= DISCOUNT_PERCENT
order_id required | string Example: 58445676543 Unique ID of an order |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
ringorder required | string Order in which item needs to be displayed. Does not need to be sequential. But must be unique for the line item |
qty | string Quantity of the item being purchased This field allows up to 5 decimal places of precision. If the card brand does not allow that level of precision, the number will be rounded. Minimum quantity is 0.00005. Maximum quantity is 99999.00. |
amount required | string\d*(\.\d{0,5})? Amount of money, including up to 5 decimal places. E.g This is the amount of 1 unit. |
taxrates | string comma separated list of taxrate ids (up to 4) |
name required | string <= 32 characters Name of the discount |
productcode | string[0-9a-zA-Z ]{1,12} Merchant-defined code for the item being purchased, such as a UPC #, SKU #, or Item # |
commoditycode | string[0-9a-zA-Z]{8,12} Contains an international description code of the individual good or service being supplied The acquiring bank or processor should provide the merchant an updated listing of currently defined codes. Please note that this is different from the 4-character summary commodity code. Codes can be found online at http://www.unspsc.org The code itself will not be validated; only the format is validated. |
unit | string Free-form unit of measure Merchant's description for a unit of measurement. If no good description, use 'Unit' |
notes | string <= 1024 characters General free-form information |
group_name | string <= 32 characters |
{- "profile_id": "78965743785967",
- "ringorder": "2",
- "qty": "1",
- "amount": "199.95",
- "taxrates": "5654367654",
- "name": "Employee discount",
- "productcode": "7456",
- "commoditycode": "50301700",
- "unit": "1",
- "notes": "This is a note",
- "group_name": "Art Products"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS",
- "id": "67876547364567"
}
Add a fixed amount discount to the order
The discount references a discount from the inventory system.
libmonetra KVS equivalent for endpoint
action_admin
= ordermanage
ordermanage
= item_add
type
= DISCOUNT_FIXED
order_id required | string Example: 58445676543 Unique ID of an order |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
ref_id required | string[0-9]+ Unique ID of the discount |
ringorder required | string Order in which item needs to be displayed. Does not need to be sequential. But must be unique for the line item |
qty | string Quantity of the item being purchased This field allows up to 5 decimal places of precision. If the card brand does not allow that level of precision, the number will be rounded. Minimum quantity is 0.00005. Maximum quantity is 99999.00. |
notes | string <= 1024 characters General free-form information |
group_name | string <= 32 characters |
{- "profile_id": "78965743785967",
- "ref_id": "765432",
- "ringorder": "2",
- "qty": "1",
- "notes": "This is a note",
- "group_name": "Art Products"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS",
- "id": "67876547364567"
}
Add a percentage discount to the order
The discount references a discount from the inventory system.
libmonetra KVS equivalent for endpoint
action_admin
= ordermanage
ordermanage
= item_add
type
= DISCOUNT_PERCENT
order_id required | string Example: 58445676543 Unique ID of an order |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
ref_id required | string[0-9]+ Unique ID of the discount |
ringorder required | string Order in which item needs to be displayed. Does not need to be sequential. But must be unique for the line item |
qty | string Quantity of the item being purchased This field allows up to 5 decimal places of precision. If the card brand does not allow that level of precision, the number will be rounded. Minimum quantity is 0.00005. Maximum quantity is 99999.00. |
notes | string <= 1024 characters General free-form information |
group_name | string <= 32 characters |
{- "profile_id": "78965743785967",
- "ref_id": "765432",
- "ringorder": "2",
- "qty": "1",
- "notes": "This is a note",
- "group_name": "Art Products"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS",
- "id": "67876547364567"
}
Edit a discount for an order
libmonetra KVS equivalent for endpoint
action_admin
= ordermanage
ordermanage
= item_edit
id required | string Example: 67876547364567 Order discount identifier |
order_id required | string Example: 58445676543 Unique ID of an order |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
timestamp_ms required | string\d+ Last updated Unix timestamp in milliseconds |
ringorder | string Order in which item needs to be displayed. Does not need to be sequential. But must be unique for the line item |
qty | string Quantity of the item being purchased This field allows up to 5 decimal places of precision. If the card brand does not allow that level of precision, the number will be rounded. Minimum quantity is 0.00005. Maximum quantity is 99999.00. |
notes | string <= 1024 characters General free-form information |
group_name | string <= 32 characters |
{- "profile_id": "78965743785967",
- "timestamp_ms": "1653340525",
- "ringorder": "2",
- "qty": "1",
- "notes": "This is a note",
- "group_name": "Art Products"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS"
}
Remove a discount form an order
libmonetra KVS equivalent for endpoint
action_admin
= ordermanage
ordermanage
= item_del
id required | string Example: 67876547364567 Order discount identifier |
order_id required | string Example: 58445676543 Unique ID of an order |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
timestamp_ms required | string Example: timestamp_ms=1653340525 Last updated Unix timestamp in milliseconds |
curl -X DELETE 'https://testbox.monetra.com/api/v2/order/20245528771333405/discount/5894387586' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS"
}
Order item management. This is for managing items added to an order. Items can be added to an order using a custom item or by referencing a SKU from the inventory system.
When operating on a item, such as edit or delete, the id of the item within the order is referenced. Not the SKU id within the inventory system if the inventory system was used.
Add a custom line item to the order
For adding line items that are not SKUs in the inventory system.
libmonetra KVS equivalent for endpoint
action_admin
= ordermanage
ordermanage
= item_add
ref_id
= 0
type
= ADDON
order_id required | string Example: 58445676543 Unique ID of an order |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
ringorder required | string Order in which item needs to be displayed. Does not need to be sequential. But must be unique for the line item |
qty | string Quantity of the item being purchased This field allows up to 5 decimal places of precision. If the card brand does not allow that level of precision, the number will be rounded. Minimum quantity is 0.00005. Maximum quantity is 99999.00. |
amount required | string\d*(\.\d{0,5})? Amount of money, including up to 5 decimal places. E.g This is the amount of 1 unit. |
taxrates | string comma separated list of taxrate ids (up to 4) |
name required | string <= 32 characters Name of the line item |
productcode | string[0-9a-zA-Z ]{1,12} Merchant-defined code for the item being purchased, such as a UPC #, SKU #, or Item # |
commoditycode | string[0-9a-zA-Z]{8,12} Contains an international description code of the individual good or service being supplied The acquiring bank or processor should provide the merchant an updated listing of currently defined codes. Please note that this is different from the 4-character summary commodity code. Codes can be found online at http://www.unspsc.org The code itself will not be validated; only the format is validated. |
unit | string Free-form unit of measure Merchant's description for a unit of measurement. If no good description, use 'Unit' |
notes | string <= 1024 characters General free-form information |
group_name | string <= 32 characters |
{- "profile_id": "78965743785967",
- "ringorder": "2",
- "qty": "1",
- "amount": "199.95",
- "taxrates": "5654367654",
- "name": "Colored Pencils",
- "productcode": "7456",
- "commoditycode": "50301700",
- "unit": "1",
- "notes": "This is a note",
- "group_name": "Art Products"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS",
- "id": "785676543"
}
Add a line item to the order
The line item references a SKU from the inventory system.
libmonetra KVS equivalent for endpoint
action_admin
= ordermanage
ordermanage
= item_add
type
= ADDON
order_id required | string Example: 58445676543 Unique ID of an order |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
ref_id required | string[0-9]+ Unique ID of the inventory SKU |
ringorder required | string Order in which item needs to be displayed. Does not need to be sequential. But must be unique for the line item |
qty | string Quantity of the item being purchased This field allows up to 5 decimal places of precision. If the card brand does not allow that level of precision, the number will be rounded. Minimum quantity is 0.00005. Maximum quantity is 99999.00. |
notes | string <= 1024 characters General free-form information |
group_name | string <= 32 characters |
{- "profile_id": "78965743785967",
- "ref_id": "86956395206",
- "ringorder": "2",
- "qty": "1",
- "notes": "This is a note",
- "group_name": "Art Products"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS",
- "id": "785676543"
}
List order items
Gets Items for the specified Order.
The resulting report will contain these headers:
id, timestamp_ms, order_id, type, ringorder, ref_id, qty, amount,
total_modifiers, total_mod_disc, total_ord_disc, taxrates, name,
productcode, commoditycode, unit, notes, group_name, is_deleted
libmonetra KVS equivalent for endpoint
action_admin
= orderlist
json
= no
orderlist
= items
order_id required | string Example: 58445676543 Unique ID of an order |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
customer_id | string Example: customer_id=54345,567043,31567 Comma separated list of customer identifiers |
ordernum | string Example: ordernum=A13DDES345 Order number An order number is required for all Card Not Present (e.g. Mail Order / Telephone Order and E-commerce) transactions, all transactions for the Restaurant industry, and all Level 2 cards such as Purchase or Corporate cards. Since it is not possible to know the card type prior to a request to Monetra, an order number should be sent on all transactions. An order number is alphanumeric. However, for the restaurant industry, it should be numeric only. Processors are limited in the number of characters that can be sent as part of a transaction. Non restaurant industry will only have 25 characters sent and restaurant will only have 6. |
type | object Enum: "ORDER" "QUICK" "INVOICE" Example: type=ORDER,QUICK Comma separated list of order types Flag values (comma separated):
|
status | object Enum: "PENDING" "OPEN" "PARTIALPAID" "COMPLETE" "CANCEL" "FORCECLOSED" Example: status=OPEN,PARTIALPAID Comma separated list of order status Flag values (comma separated):
|
timestamp_create_bdate | string Example: timestamp_create_bdate=1653406830 Start of order created date range as a timestamp |
timestamp_create_edate | string Example: timestamp_create_edate=1653406830 End of order created date range as a timestamp |
timestamp_close_bdate | string Example: timestamp_close_bdate=1653406830 Start of order closed date range as a timestamp |
timestamp_close_edate | string Example: timestamp_close_edate=1653406830 End of order closed date range as a timestamp |
timestamp_ms | string Example: timestamp_ms=1653408007 The maximum recorded timestamp_ms of the last fetch. Will only return records newer than this. |
curl -X GET 'https://testbox.monetra.com/api/v2/order/7589432567654/item' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Edit a line item for an order
libmonetra KVS equivalent for endpoint
action_admin
= ordermanage
ordermanage
= item_edit
id required | string Example: 785676543 Order item identifier |
order_id required | string Example: 58445676543 Unique ID of an order |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
timestamp_ms required | string\d+ Last updated Unix timestamp in milliseconds |
ringorder | string Order in which item needs to be displayed. Does not need to be sequential. But must be unique for the line item |
qty | string Quantity of the item being purchased This field allows up to 5 decimal places of precision. If the card brand does not allow that level of precision, the number will be rounded. Minimum quantity is 0.00005. Maximum quantity is 99999.00. |
notes | string <= 1024 characters General free-form information |
group_name | string <= 32 characters |
{- "profile_id": "78965743785967",
- "timestamp_ms": "1653340525",
- "ringorder": "2",
- "qty": "1",
- "notes": "This is a note",
- "group_name": "Art Products"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS"
}
Gets details for the specified Item in an order
libmonetra KVS equivalent for endpoint
action_admin
= orderlist
json
= no
orderlist
= items
id required | string Example: 785676543 Order item identifier |
order_id required | string Example: 58445676543 Unique ID of an order |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
ordernum | string Example: ordernum=A13DDES345 Order number An order number is required for all Card Not Present (e.g. Mail Order / Telephone Order and E-commerce) transactions, all transactions for the Restaurant industry, and all Level 2 cards such as Purchase or Corporate cards. Since it is not possible to know the card type prior to a request to Monetra, an order number should be sent on all transactions. An order number is alphanumeric. However, for the restaurant industry, it should be numeric only. Processors are limited in the number of characters that can be sent as part of a transaction. Non restaurant industry will only have 25 characters sent and restaurant will only have 6. |
timestamp_ms | string Example: timestamp_ms=1653408007 The maximum recorded timestamp_ms of the last fetch. Will only return records newer than this. |
curl -X GET 'https://testbox.monetra.com/api/v2/order/item/8594387568950432' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "id": "58445676543",
- "timestamp_ms": "1653340525",
- "type": "ADDON",
- "ringorder": "2",
- "ref_id": "476543",
- "qty": "1",
- "amount": "19.92",
- "total_modifiers": "string",
- "total_mod_disc": "string",
- "total_ord_disc": "string",
- "taxrates": "5654367654",
- "name": "Colored Pencils",
- "productcode": "7456",
- "commoditycode": "50301700",
- "unit": "1",
- "notes": "This is a note",
- "group_name": "Art Products",
- "is_deleted": "no"
}
Remove a line item form an order
libmonetra KVS equivalent for endpoint
action_admin
= ordermanage
ordermanage
= item_del
id required | string Example: 785676543 Order item identifier |
order_id required | string Example: 58445676543 Unique ID of an order |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
timestamp_ms required | string Example: timestamp_ms=1653340525 Last updated Unix timestamp in milliseconds |
curl -X DELETE 'https://testbox.monetra.com/api/v2/order/item/675894315' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS"
}
Order item discount management. This is for managing item discounts added to an item in an order. Item discounts can be added to an order using a custom item discount or by referencing discount from the inventory system. An inventory system discount must be of a type that can be applied to items.
When referencing an item to apply a discount, the item must be added to the order first. The item id within the order, not the inventory SKU id, is referenced when adding the discount.
When operating on a item discount, such as edit or delete, the id of the item discount within the order is referenced. Not the discount id within the inventory system if the inventory system was used.
Add a custom fixed discount to a line item
For adding discounts that are not in the inventory system.
libmonetra KVS equivalent for endpoint
action_admin
= ordermanage
ordermanage
= modifier_add
ref_id
= 0
type
= DISCOUNT_FIXED
item_id required | string Example: 785676543 Order item identifier |
order_id required | string Example: 58445676543 Unique ID of an order |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
ringorder required | string Order in which item needs to be displayed. Does not need to be sequential. But must be unique for the line item |
qty | string Quantity of the item being purchased This field allows up to 5 decimal places of precision. If the card brand does not allow that level of precision, the number will be rounded. Minimum quantity is 0.00005. Maximum quantity is 99999.00. |
amount required | string\d*(\.\d{0,5})? Amount of money, including up to 5 decimal places. E.g This is the amount of 1 unit. |
name required | string <= 32 characters Name of line item discount |
{- "profile_id": "78965743785967",
- "ringorder": "2",
- "qty": "1",
- "amount": "199.95",
- "name": "10% off"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS",
- "id": "24566437"
}
Add a custom percent discount to a line item
For adding discounts that are not in the inventory system.
libmonetra KVS equivalent for endpoint
action_admin
= ordermanage
ordermanage
= modifier_add
ref_id
= 0
type
= DISCOUNT_PERCENT
item_id required | string Example: 785676543 Order item identifier |
order_id required | string Example: 58445676543 Unique ID of an order |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
ringorder required | string Order in which item needs to be displayed. Does not need to be sequential. But must be unique for the line item |
qty | string Quantity of the item being purchased This field allows up to 5 decimal places of precision. If the card brand does not allow that level of precision, the number will be rounded. Minimum quantity is 0.00005. Maximum quantity is 99999.00. |
amount required | string\d*(\.\d{0,5})? Amount of money, including up to 5 decimal places. E.g This is the amount of 1 unit. |
name required | string <= 32 characters Name of line item discount |
{- "profile_id": "78965743785967",
- "ringorder": "2",
- "qty": "1",
- "amount": "199.95",
- "name": "10% off"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS",
- "id": "24566437"
}
Add a fixed discount to a line item
libmonetra KVS equivalent for endpoint
action_admin
= ordermanage
ordermanage
= modifier_add
type
= DISCOUNT_FIXED
item_id required | string Example: 785676543 Order item identifier |
order_id required | string Example: 58445676543 Unique ID of an order |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
ref_id required | string\d+ Unique ID of the inventory discount |
ringorder required | string Order in which item needs to be displayed. Does not need to be sequential. But must be unique for the line item |
qty | string Quantity of the item being purchased This field allows up to 5 decimal places of precision. If the card brand does not allow that level of precision, the number will be rounded. Minimum quantity is 0.00005. Maximum quantity is 99999.00. |
{- "profile_id": "78965743785967",
- "ref_id": "15676543",
- "ringorder": "2",
- "qty": "1"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS",
- "id": "24566437"
}
Add a percent discount to a line item
libmonetra KVS equivalent for endpoint
action_admin
= ordermanage
ordermanage
= modifier_add
type
= DISCOUNT_PERCENT
item_id required | string Example: 785676543 Order item identifier |
order_id required | string Example: 58445676543 Unique ID of an order |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
ref_id required | string\d+ Unique ID of the inventory discount |
ringorder required | string Order in which item needs to be displayed. Does not need to be sequential. But must be unique for the line item |
qty | string Quantity of the item being purchased This field allows up to 5 decimal places of precision. If the card brand does not allow that level of precision, the number will be rounded. Minimum quantity is 0.00005. Maximum quantity is 99999.00. |
{- "profile_id": "78965743785967",
- "ref_id": "15676543",
- "ringorder": "2",
- "qty": "1"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS",
- "id": "24566437"
}
Edit a line item discount
libmonetra KVS equivalent for endpoint
action_admin
= ordermanage
ordermanage
= modifier_edit
id required | string Example: 24566437 Order item discount identifier |
order_id required | string Example: 58445676543 Unique ID of an order |
item_id required | string Example: 785676543 Order item identifier |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
timestamp_ms required | string\d+ Last updated Unix timestamp in milliseconds |
ringorder | string Order in which item needs to be displayed. Does not need to be sequential. But must be unique for the line item |
qty | string Quantity of the item being purchased This field allows up to 5 decimal places of precision. If the card brand does not allow that level of precision, the number will be rounded. Minimum quantity is 0.00005. Maximum quantity is 99999.00. |
{- "profile_id": "78965743785967",
- "timestamp_ms": "1653340525",
- "ringorder": "2",
- "qty": "1"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS"
}
Remove a discount from a line item in the order
libmonetra KVS equivalent for endpoint
action_admin
= ordermanage
ordermanage
= modifier_del
id required | string Example: 24566437 Order item discount identifier |
order_id required | string Example: 58445676543 Unique ID of an order |
item_id required | string Example: 785676543 Order item identifier |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
timestamp_ms required | string Example: timestamp_ms=1653340525 Last updated Unix timestamp in milliseconds |
curl -X DELETE 'https://testbox.monetra.com/api/v2/order/item/discount/76789625' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS"
}
Order item modifier management. This is for managing item modifiers added to an item in an order. Item modifier can be added to an order using a custom item modifier or by referencing modifiers from the inventory system.
When referencing an item to apply a modifier, the item must be added to the order first. The item id within the order, not the inventory SKU id, is referenced when adding the modifier.
When operating on a item modifier, such as edit or delete, the id of the item modifier within the order is referenced. Not the modifier id within the inventory system if the inventory system was used.
Add a custom modifier to a line item
For adding modifiers that are not in the inventory system.
libmonetra KVS equivalent for endpoint
action_admin
= ordermanage
ordermanage
= modifier_add
ref_id
= 0
type
= ADDON
item_id required | string Example: 785676543 Order item identifier |
order_id required | string Example: 58445676543 Unique ID of an order |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
ringorder required | string Order in which item needs to be displayed. Does not need to be sequential. But must be unique for the line item |
qty | string Quantity of the item being purchased This field allows up to 5 decimal places of precision. If the card brand does not allow that level of precision, the number will be rounded. Minimum quantity is 0.00005. Maximum quantity is 99999.00. |
amount required | string\d*(\.\d{0,5})? Amount of money, including up to 5 decimal places. E.g This is the amount of 1 unit. |
name required | string <= 32 characters Name of line item modifier |
{- "profile_id": "78965743785967",
- "ringorder": "2",
- "qty": "1",
- "amount": "199.95",
- "name": "Extra veggies"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS",
- "id": "63676598"
}
Add an item modifier to a line item
libmonetra KVS equivalent for endpoint
action_admin
= ordermanage
ordermanage
= modifier_add
type
= ADDON
item_id required | string Example: 785676543 Order item identifier |
order_id required | string Example: 58445676543 Unique ID of an order |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
ref_id required | string\d+ Unique ID of the inventory modifier |
ringorder required | string Order in which item needs to be displayed. Does not need to be sequential. But must be unique for the line item |
qty | string Quantity of the item being purchased This field allows up to 5 decimal places of precision. If the card brand does not allow that level of precision, the number will be rounded. Minimum quantity is 0.00005. Maximum quantity is 99999.00. |
{- "profile_id": "78965743785967",
- "ref_id": "46789525",
- "ringorder": "2",
- "qty": "1"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS",
- "id": "63676598"
}
List order item modifiers
The resulting report will contain these headers:
id, timestamp_ms, item_id, order_id, type, ringorder, ref_id, qty, amount, name, is_deleted
libmonetra KVS equivalent for endpoint
action_admin
= orderlist
json
= no
orderlist
= modifiers
item_id required | string Example: 785676543 Order item identifier |
order_id required | string Example: 58445676543 Unique ID of an order |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
customer_id | string Example: customer_id=54345,567043,31567 Comma separated list of customer identifiers |
ordernum | string Example: ordernum=A13DDES345 Order number An order number is required for all Card Not Present (e.g. Mail Order / Telephone Order and E-commerce) transactions, all transactions for the Restaurant industry, and all Level 2 cards such as Purchase or Corporate cards. Since it is not possible to know the card type prior to a request to Monetra, an order number should be sent on all transactions. An order number is alphanumeric. However, for the restaurant industry, it should be numeric only. Processors are limited in the number of characters that can be sent as part of a transaction. Non restaurant industry will only have 25 characters sent and restaurant will only have 6. |
type | object Enum: "ORDER" "QUICK" "INVOICE" Example: type=ORDER,QUICK Comma separated list of order types Flag values (comma separated):
|
status | object Enum: "PENDING" "OPEN" "PARTIALPAID" "COMPLETE" "CANCEL" "FORCECLOSED" Example: status=OPEN,PARTIALPAID Comma separated list of order status Flag values (comma separated):
|
timestamp_create_bdate | string Example: timestamp_create_bdate=1653406830 Start of order created date range as a timestamp |
timestamp_create_edate | string Example: timestamp_create_edate=1653406830 End of order created date range as a timestamp |
timestamp_close_bdate | string Example: timestamp_close_bdate=1653406830 Start of order closed date range as a timestamp |
timestamp_close_edate | string Example: timestamp_close_edate=1653406830 End of order closed date range as a timestamp |
timestamp_ms | string Example: timestamp_ms=1653408007 The maximum recorded timestamp_ms of the last fetch. Will only return records newer than this. |
curl -X GET 'https://testbox.monetra.com/api/v2/order/item/7584933567654/modifier' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Edit a line item modifier
libmonetra KVS equivalent for endpoint
action_admin
= ordermanage
ordermanage
= modifier_edit
id required | string Example: 63676598 Order item modifier identifier |
order_id required | string Example: 58445676543 Unique ID of an order |
item_id required | string Example: 785676543 Order item identifier |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
timestamp_ms required | string\d+ Last updated Unix timestamp in milliseconds |
ringorder | string Order in which item needs to be displayed. Does not need to be sequential. But must be unique for the line item |
qty | string Quantity of the item being purchased This field allows up to 5 decimal places of precision. If the card brand does not allow that level of precision, the number will be rounded. Minimum quantity is 0.00005. Maximum quantity is 99999.00. |
{- "profile_id": "78965743785967",
- "timestamp_ms": "1653340525",
- "ringorder": "2",
- "qty": "1"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS"
}
Gets details for the specified modifier
libmonetra KVS equivalent for endpoint
action_admin
= orderlist
json
= no
orderlist
= modifiers
id required | string Example: 63676598 Order item modifier identifier |
item_id required | string Example: 785676543 Order item identifier |
order_id required | string Example: 58445676543 Unique ID of an order |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
timestamp_ms | string Example: timestamp_ms=1653408007 The maximum recorded timestamp_ms of the last fetch. Will only return records newer than this. |
curl -X GET 'https://testbox.monetra.com/api/v2/order/modifier/75849356543' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "id": "63676598",
- "timestamp_ms": "1653340525",
- "item_id": "785676543",
- "order_id": "58445676543",
- "type": "ADDON",
- "ringorder": "2",
- "ref_id": "6786567",
- "qty": "1",
- "amount": "19.92",
- "name": "Pepperoni",
- "is_deleted": "no"
}
Remove a modifier from a line item in the order
libmonetra KVS equivalent for endpoint
action_admin
= ordermanage
ordermanage
= modifier_del
id required | string Example: 63676598 Order item modifier identifier |
order_id required | string Example: 58445676543 Unique ID of an order |
item_id required | string Example: 785676543 Order item identifier |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
timestamp_ms required | string Example: timestamp_ms=1653340525 Last updated Unix timestamp in milliseconds |
curl -X DELETE 'https://testbox.monetra.com/api/v2/order/item/modifier/785903676' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS"
}
Allows associating payments to an order. As well as manging the payments applied to orders. Payments can be previous transactions made through Monetra or external payments (cash and check) that are being recorded for reporting purposes.
Add a cash payment to the order
libmonetra KVS equivalent for endpoint
action_admin
= ordermanage
ordermanage
= payment_add
tendertype
= CASH
order_id required | string Example: 58445676543 Unique ID of an order |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
amount required | string\d*(\.\d{0,2})? Amount of money, including decimal. E.g This is the total amount and is an aggregate of all supplementary amounts. |
tip required | string\d+(\.\d{0,2})? Tip amount |
{- "profile_id": "78965743785967",
- "amount": "19.92",
- "tip": "0.33"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS",
- "id": "987653645678"
}
Add a check payment to the order
libmonetra KVS equivalent for endpoint
action_admin
= ordermanage
ordermanage
= payment_add
tendertype
= CHECK
order_id required | string Example: 58445676543 Unique ID of an order |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
amount required | string\d*(\.\d{0,2})? Amount of money, including decimal. E.g This is the total amount and is an aggregate of all supplementary amounts. |
tip required | string\d+(\.\d{0,2})? Tip amount |
checknum required | string\d+ Check number |
{- "profile_id": "78965743785967",
- "amount": "19.92",
- "tip": "0.33",
- "checknum": "45678"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS",
- "id": "987653645678"
}
Add a payment to the order
References an existing transaction.
libmonetra KVS equivalent for endpoint
action_admin
= ordermanage
ordermanage
= payment_add
tendertype
= TXN
order_id required | string Example: 58445676543 Unique ID of an order |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
ttid required | string Transaction identifier |
{- "profile_id": "78965743785967",
- "ttid": "96748596765467"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS",
- "id": "987653645678"
}
List order payments
Gets the Payments for the specified order.
The resulting report will contain these headers:
id, timestamp_ms, user, order_id, tendertype, amount, tip, status, ttid,
timestamp, cardtype, last4, cardholdername, checknum, is_deleted
libmonetra KVS equivalent for endpoint
action_admin
= orderlist
json
= no
orderlist
= payments
order_id required | string Example: 58445676543 Unique ID of an order |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
customer_id | string Example: customer_id=54345,567043,31567 Comma separated list of customer identifiers |
ordernum | string Example: ordernum=A13DDES345 Order number An order number is required for all Card Not Present (e.g. Mail Order / Telephone Order and E-commerce) transactions, all transactions for the Restaurant industry, and all Level 2 cards such as Purchase or Corporate cards. Since it is not possible to know the card type prior to a request to Monetra, an order number should be sent on all transactions. An order number is alphanumeric. However, for the restaurant industry, it should be numeric only. Processors are limited in the number of characters that can be sent as part of a transaction. Non restaurant industry will only have 25 characters sent and restaurant will only have 6. |
type | object Enum: "ORDER" "QUICK" "INVOICE" Example: type=ORDER,QUICK Comma separated list of order types Flag values (comma separated):
|
status | object Enum: "PENDING" "OPEN" "PARTIALPAID" "COMPLETE" "CANCEL" "FORCECLOSED" Example: status=OPEN,PARTIALPAID Comma separated list of order status Flag values (comma separated):
|
timestamp_create_bdate | string Example: timestamp_create_bdate=1653406830 Start of order created date range as a timestamp |
timestamp_create_edate | string Example: timestamp_create_edate=1653406830 End of order created date range as a timestamp |
timestamp_close_bdate | string Example: timestamp_close_bdate=1653406830 Start of order closed date range as a timestamp |
timestamp_close_edate | string Example: timestamp_close_edate=1653406830 End of order closed date range as a timestamp |
timestamp_ms | string Example: timestamp_ms=1653408007 The maximum recorded timestamp_ms of the last fetch. Will only return records newer than this. |
curl -X GET 'https://testbox.monetra.com/api/v2/order/5784392456/payment' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Cancels a cash or check payment associated with the order
A transaction that was applied to the order using a ttid
cannot be canceled directly.
It must be reversed which will automatically mark it as canceled in the order.
External payments, such as cash and check, that were made outside of Monetra are removed from the order using this operation. It is the responsibility of the merchant to take any further action that is necessary when canceling a payment. For example, providing cash to the customer if a cash payment was accepted.
libmonetra KVS equivalent for endpoint
action_admin
= ordermanage
ordermanage
= payment_cancel
id required | string Example: 987653645678 Unique ID of a payment for an order |
order_id required | string Example: 58445676543 Unique ID of an order |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
curl -X DELETE 'https://testbox.monetra.com/api/v2/order/20245528771333405/payment/758493245430' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "result": "SUCCESS"
}
Gets details for the specified payment
libmonetra KVS equivalent for endpoint
action_admin
= orderlist
json
= no
orderlist
= payments
id required | string Example: 987653645678 Unique ID of a payment for an order |
order_id required | string Example: 58445676543 Unique ID of an order |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
curl -X GET 'https://testbox.monetra.com/api/v2/order/payment/758493245430' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "id": "987653645678",
- "timestamp_ms": "1653340525",
- "user": "benny",
- "order_id": "58445676543",
- "tendertype": "TXN",
- "amount": "19.92",
- "tip": "0.33",
- "status": "OPEN",
- "ttid": "96748596765467",
- "timestamp": "2022-05-24 15:06:13 -0400",
- "cardtype": "VISA",
- "last4": "5454",
- "cardholdername": "John Doe",
- "checknum": "45678",
- "is_deleted": "no"
}
Order reports allow reporting of not only orders but other systems that are utilized by orders. These reports offer insight into the use of orders to allow merchant to tailor their offerings, or meet other obligations (tip, and tax remittance).
Reports are about usage within orders. For example, the customer report allows determining how many, how often, and how much specific customers are spending.
Or the SKU activity report allows determining which SKUs are most or least popular.
Aging report for unpaid invoices grouped by customer
The resulting report will contain these headers:
customer_id, customer_display_name, current, 1-30, 31-60, 61-90,
91-120, 120+
libmonetra KVS equivalent for endpoint
action_admin
= orderreport
orderreport
= aging
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
id | string Example: id=56789687564 Customer identifier |
type | object Enum: "ORDER" "QUICK" "INVOICE" Example: type=ORDER,QUICK Comma separated list of order types Flag values (comma separated):
|
curl -X GET 'https://testbox.monetra.com/api/v2/order/report/aging' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Customer summary
The resulting report will contain these headers:
customer_id, customer_display_name, count, total_amount
libmonetra KVS equivalent for endpoint
action_admin
= orderreport
orderreport
= customersummary
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
id | string Example: id=56789687564 Customer identifier |
order_id | string Example: order_id=58445676543 Unique ID of an order |
bdate | string Example: bdate=-6 months Start of date range |
edate | string Example: edate=now End of date range |
limit | string Example: limit=4 Maximum number of rows to return |
has_count | object Enum: "yes" "no" Example: has_count=yes Whether or not the report should include items with or without orders If not present, show both with and without are included Values:
|
curl -X GET 'https://testbox.monetra.com/api/v2/order/report/modifier?customer=-30%20days' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Item discount summary
The resulting report will contain these headers:
discount_id, discount_name, usecase, category_id, category_name, count
libmonetra KVS equivalent for endpoint
action_admin
= orderreport
orderreport
= itemdiscountsummary
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
id | string Example: id=67876547364567 Order discount identifier |
order_id | string Example: order_id=58445676543 Unique ID of an order |
bdate | string Example: bdate=-6 months Start of date range |
edate | string Example: edate=now End of date range |
limit | string Example: limit=4 Maximum number of rows to return |
has_count | object Enum: "yes" "no" Example: has_count=yes Whether or not the report should include items with or without orders If not present, show both with and without are included Values:
|
curl -X GET 'https://testbox.monetra.com/api/v2/order/report/discount/item?bdate=-30%20days' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Item Modifier activity
The resulting report will contain these headers:
modifier_id, modifier_name, modifierset_id, modifierset_name,
count
libmonetra KVS equivalent for endpoint
action_admin
= orderreport
orderreport
= modifiersummary
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
id | string Example: id=63676598 Order item modifier identifier |
order_id | string Example: order_id=58445676543 Unique ID of an order |
bdate | string Example: bdate=-6 months Start of date range |
edate | string Example: edate=now End of date range |
limit | string Example: limit=4 Maximum number of rows to return |
has_count | object Enum: "yes" "no" Example: has_count=yes Whether or not the report should include items with or without orders If not present, show both with and without are included Values:
|
curl -X GET 'https://testbox.monetra.com/api/v2/order/report/modifier?bdate=-30%20days' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Order discount summary
The resulting report will contain these headers:
discount_id, discount_name, usecase, category_id, category_name, count
libmonetra KVS equivalent for endpoint
action_admin
= orderreport
orderreport
= orderdiscountsummary
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
id | string Example: id=67876547364567 Order discount identifier |
order_id | string Example: order_id=58445676543 Unique ID of an order |
bdate | string Example: bdate=-6 months Start of date range |
edate | string Example: edate=now End of date range |
limit | string Example: limit=4 Maximum number of rows to return |
has_count | object Enum: "yes" "no" Example: has_count=yes Whether or not the report should include items with or without orders If not present, show both with and without are included Values:
|
curl -X GET 'https://testbox.monetra.com/api/v2/order/report/discount/order?bdate=-30%20days' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Payment report grouped by user
The resulting report will contain these headers:
user, sale_amount, refund_amount
libmonetra KVS equivalent for endpoint
action_admin
= orderreport
orderreport
= payments
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
order_in | string |
tendertype | object Enum: "TXN" "CASH" "CHECK" Example: tendertype=TXN Type of payment tender Values:
|
bdate | string Example: bdate=-6 months Start of date range |
edate | string Example: edate=now End of date range |
curl -X GET 'https://testbox.monetra.com/api/v2/order/report/payment?bdate=-30%20days' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Product activity
The resulting report will contain these headers:
product_id, product_name, category_id, category_name, count
libmonetra KVS equivalent for endpoint
action_admin
= orderreport
orderreport
= productsummary
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
id | string Example: id=6789646596763 Unique ID of the product |
order_id | string Example: order_id=58445676543 Unique ID of an order |
bdate | string Example: bdate=-6 months Start of date range |
edate | string Example: edate=now End of date range |
limit | string Example: limit=4 Maximum number of rows to return |
has_count | object Enum: "yes" "no" Example: has_count=yes Whether or not the report should include items with or without orders If not present, show both with and without are included Values:
|
curl -X GET 'https://testbox.monetra.com/api/v2/order/report/product?bdate=-30%20days' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
SKU activity
The resulting report will contain these headers:
sku_id, sku_name, product_id, product_name, category_id,
category_name, count
libmonetra KVS equivalent for endpoint
action_admin
= orderreport
orderreport
= skusummary
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
id | string Example: id=5784936543 Unique ID of the SKU |
order_id | string Example: order_id=58445676543 Unique ID of an order |
bdate | string Example: bdate=-6 months Start of date range |
edate | string Example: edate=now End of date range |
limit | string Example: limit=4 Maximum number of rows to return |
has_count | object Enum: "yes" "no" Example: has_count=yes Whether or not the report should include items with or without orders If not present, show both with and without are included Values:
|
curl -X GET 'https://testbox.monetra.com/api/v2/order/report/sku?bdate=-30%20days' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Tax history report
The resulting report will contain these headers:
taxrate_id, taxrate_name, order_id, timestamp, amount
libmonetra KVS equivalent for endpoint
action_admin
= orderreport
orderreport
= taxhistory
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
id | string Example: id=65748376543 Unique ID of the tax rate |
order_id | string Example: order_id=58445676543 Unique ID of an order |
bdate | string Example: bdate=-6 months Start of date range |
edate | string Example: edate=now End of date range |
curl -X GET 'https://testbox.monetra.com/api/v2/order/report/tax/history?bdate=-30%20days' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Tax summary report
The resulting report will contain these headers:
taxrate_id, taxrate_name, amount
libmonetra KVS equivalent for endpoint
action_admin
= orderreport
orderreport
= taxsummary
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
id | string Example: id=65748376543 Unique ID of the tax rate |
order_id | string Example: order_id=58445676543 Unique ID of an order |
bdate | string Example: bdate=-6 months Start of date range |
edate | string Example: edate=now End of date range |
curl -X GET 'https://testbox.monetra.com/api/v2/order/report/tax?bdate=-30%20days' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Tip report grouped by user
The resulting report will contain these headers:
user, sale_tip, refund_tip
libmonetra KVS equivalent for endpoint
action_admin
= orderreport
orderreport
= tip
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
order_in | string |
tendertype | object Enum: "TXN" "CASH" "CHECK" Example: tendertype=TXN Type of payment tender Values:
|
bdate | string Example: bdate=-6 months Start of date range |
edate | string Example: edate=now End of date range |
curl -X GET 'https://testbox.monetra.com/api/v2/order/report/tip?bdate=-30%20days' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
The hosted payment page is a page provided by Monetra associated with a profile which can take blind payments. Anyone with the link (which is not in any way specific to the customer) can make a payment.
Typically, when using the hosted payment page, customers will be asked to enter a customer identifier for the payment. Such as an invoice number, customer number, patient number, etc. Since this is free form and provided by the customer, with no validation, there is a high likelihood of incorrect information being entered. Regular reconciliation with manual matching of payments to customers is necessary.
This is not a recommended method to request payments from customers. While this method of payment is popular with many merchants due to its ease of deployment, it should be avoided if possible. This payment method is ideally suited for one off semi-anonymous donations.
It's highly recommended one of the alternatives below are used instead of the hosted payment page. The hosted payment page should only be used in limited circumstances.
Using Monetra's secure iFrame is a good choice and allows the merchant to integrate payment information collection directly into their web site. The payment information is sent directly to Monetra and is never handled by the merchant's web server.
This prevents credit card data from ever touching the merchant's systems, while allowing customers to complete seamless ecommerce transactions on the merchant's website.
This is ideal for merchants using a shopping cart style checkout. Or who have their own invoice billing system.
Monetra supports an integrated invoice system. This allows the creation of invoices which can then be sent to the customer. The customer can be sent a link to pay the invoice. The customer will interact solely with Monetra for paying the invoice. Thereby ensuring the merchant never has to collect payment information directly.
Due to each customer having a unique payment link there is no confusion about which customer is making a payment. Also, the merchant can be automatically notified about successfully paid invoices. Further, it is very easy to see which invoices are outstanding or have been paid.
This is a secure payment method and allows detailed information about the order. It can be used in conduction with external invoicing systems for the payment portion. The merchant's invoice system will generate the invoice which can then be attached as a PDF to the Monetra's invoice. Monetra's invoice will be sent to the customer who will then make their payment and receive their invoice PDF that was generated by the merchant's system. Reconciliation is still necessary to mark invoices as paid in the merchant's system.
Merchants who use an invoice instead of checkout payment flow are ideal candidates for this method. Especially those who either do not have their own invoice system or who do not want payments going through their invoice system.
Another major issue with using the hosted payment page is the potential for fraud. The page is not unique to a customer or order, nor are payments authenticated. This can lead to abuse of the page to facilitate fraud.
To prevent this several fraud methods prevention rules must be in place for each page:
The totals for each of these is tracked on a per attempt basis. Regardless if the payment is authorized or declined.
In all cases the merchant will be charged standard transaction fees and can incur a large number of chargebacks.
If fraud is a concern, the iFrame or invoice or another secure system should be used.
This is a non-exhaustive list of the types of fraud that can take place when a hosted payment page is abused.
In this case, a fraudster will use the page to test stolen credit cards. The fraudster will use the outcome of approved or declined to determine if the card information they have is valid. Approved cards are valid and declined cards are not.
Attackers know that merchants pay processing fees for each payment. They also know that merchant's are charged when a customer wins a chargeback dispute. Which is nearly 100% of the time in stolen card situations. Further, the merchant will most likely need to issue refunds for the fraudulent transactions which also have a fee to process.
The goal is to cause harm to the merchant through a monetary loss. This loss can be signification, especially for smaller merchants.
If a merchant accepts fraudulent payments the merchant's reputation may be damaged. The merchant is often blamed for not taking adequate steps in order to protect the public and prevent fraud form occurring. Anger toward the merchant can be compounded if there are a large number of fraudulent charges. Trust in the merchant may be reduced which can result in potential customers deciding to use the merchant's competitors.
There are multiple entities that can be involved in payment processing. For example, gateway, processor, card brand. Each of these entities have fraud tolerance levels associated with their merchants. If the amount of fraud associated with a merchant exceeds these limits one or more of these entities may discontinue service to the merchant.
This will cause disruption to the merchant because they will be unable to accept payments for a period of time. They will need to establish a new processing account with another provider. This could entail integration work if the merchant needs to use a different gateway which uses a different processing protocol. Leading to more time the merchant will be unable to accept payments.
Further, merchants who have their processing accounts closed due to excessive fraud may be viewed as higher risk by other processing companies. They may find it difficult to open a new account or potentially need to pay higher fees.
The page can have the amount specified either as a fixed amount associated with the page configuration, an amount passed into the page as a parameter by the merchant, or editable by the customer. When editable, the amount is either passed into the page by the merchant or left empty for the customer to fill in.
In cases where the amount is not configured for the page as a fixed amount, and the amount is not set as editable. The merchant must provide the amount was a parameter. In this situation the amount used to run the payment is the amount submitted by the page. While the amount is not editable, this is visually only. The customer an use a developer tool, that is built into nearly all web browsers, and still edit the amount. There is no way to prevent this.
It is imperative when payments are reconciled, not only the customer identifier but also the amount is verified. If the amount is not verified during reconciliation, the customer may be able to pay less than requested and still have their "invoice" considered fully paid.
Fields on the page can be pre-filled when the page is requested. This is useful if some information is already known. Such as an order number. This prevents the customer from having to type this information into the form.
Payment information cannot be pre-filled because the merchant should not have that information. Otherwise use of the hosted payment page would be unnecessary.
Merchant custom fields as well as the following can be passed into the page as either query arguments with a GET request or as body parameters with a POST request.
amount
cardholdername
street
zip
email
comments
ordernum
custref
If a field is not listed as shown on the page, and is passed into the page as a parameter, the field and it's value will be present when the form is submitted. A field does not have to be listed as shown to be pre-filled and received as part of the payment.
Note, providing any field that is not a merchant customer field or in the above list will result in an error.
Customers are required to provide an email address which will automatically generate an email for approved transactions.
The page does not provide descriptive error text and instead provides error codes. The customer not the merchant is the one using the page making a number of possible errors not something the customer would care to know the details. The possible error codes are as follows
F902
- Failed to load failure page templateF903
- Failed to run failure page templateF904
- Failed to load result page templateF905
- Failed to run result page templateP401
- Redirect URL missingL600
- Failed to load page templateL601
- Failed to run page templateP444
- Request parse failedE300
- Generic failureC100
- Network error getting captcha responseC101
- HTTP response error getting captcha responseC200
- Failed to parse captcha response JSONC201
- Captcha response was not successfulC202
- Captcha indicates incorrect actionC203
- Captcha challenge time outside allowed windowC204
- Captcha score lower than minimum allowedP600
- Page id does not existD599
- Could not load page configurationD460
- Restriction failedD462
- Required field data missing or not shown and editableD463
- Required field data missingD464
- Input parameter not allowedD465
- Amount should not be specifiedD466
- Input parameter not allowedD467
- Missing amount and not customer editableC205
- System not configured for captchaC206
- Captcha response not present in dataC207
- Customer's IP not present in dataC208
- Captcha verification request could not be createdC209
- Captcha verification request failed to sendCreate a hosted paypage page
This defines the page configuration and how it will act when presented to the customer.
libmonetra KVS equivalent for endpoint
action_admin
= hosted_paypage
hosted_paypage
= add
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
descr | string Description of the page to know what it is used for |
trantype required | string Enum: "sale" "preauth" Transaction type the paypage should use for authorization Values:
|
allowed_cardtypes | string Enum: "VISA" "MC" "AMEX" "DISC" "DINERS" "JCB" "GIFT" "CUP" "ACH" Allowed Cardtypes Pipe (|) separated. Cardtypes that can be accepted on the hosted paypage page. If not specified, all cardtypes supported by the profile will be allowed. Flag values (pipe separated):
|
amount | string\d*(\.\d{0,2})? Any passed in, amount parameters, will be displayed to the customer as a fixed and non-editable amount field. However, if amount is passed a parameter of 0, or left blank, the paypage will display a customer editable amount field. |
fields_shown | string Fields that should be shown on the hosted paypage Payment information fields do not need to be defined here because they are always shown. Comma delimited list of field names. Fields allowed:
Additionally merchant custom fields can be included in this list. Shown fields can be used to allow customers to enter additional information. Such as an order number. It can also be used to display information to the customer. If a field is not marked as editable. |
fields_editable | string Fields that should be editable on the hosted paypage Payment information fields do not need to be defined here because they are always shown. Comma delimited list of field names. Only applied to fields that are shown. |
fields_required | string Fields that should be requried on the hosted paypage Payment information fields do not need to be defined here because they are always required. Comma delimited list of field names. If a field is not listed as shown or editable, the field and value must be passed to the page when it is requested. Either as query arguments or POST arguments. |
fields_returned | string Fields that should be returned as part of the redirect back to the merchant after page processing Comma delimited list of field names. This is response fields that Monetra will return from purchase or pre-authorization requests. Only some response fields can be returned. Response fields that can be returned:
Some input parameters can be returned. Request fields that can be returend:
Additionally merchant custom fields as defined on the profile can be returned as part of the response if they were provided as part of the request. These fields and their value will be returned as query arguments with the GET request to the merchant's web site. Note that these fields will be visible to the customer in the redirect URL. Also, note the customer could refresh the page causing multiple GET requests to be submitted. This should be used for informational purposes and not as a way to determine if a payment was made. |
fee_type | string Enum: "none" "percent" "amount" Fee type (if any) that should be assessed as part of the payment Values:
|
fee_title | string Description of the fee to show the customer The text should be short can clear that a fee is being accessed. If a title is not provided a default title of "Processing fee" will be used. This field is only used if a fee is being accessed. |
fee_value | string\d*(\.\d{0,2})? Fee to be assessed if use of the hosted payment page charges a fee. The fee can be up to 2 decimal digits. The type of
fee, percent or fixed amount, is determined by the
Percentages are percentage values and should not be normalized to a decimal. E.g values:
Fixed amounts are fixed amounts of dollars and cents. E.g values:
|
max_count required | string Maximum number of transactions that can be processed within a day. This is to prevent abuse of the hosted paypage page and prevent fraudulent actives, such as carding. If this number of transactions (attempted, authorized, or declined) is exceeded, the page will not process any further requests that day. If set to 0, then no transactions can process for the page and effectively disables its use. The maximum should be based on the estimated number of transactions that will be processed per day. |
max_amount required | string\d*(\.\d{0,2})? Maximum amount of a single transaction that can be processed by the page This is to prevent abuse of the hosted paypage page and prevent fraudulent actives, such as attempting to have large fees accessed by initiating fraudulent charges that will be disputed later. If set to 0, then no transactions can process for the page and effectively disables its use. The maximum should be based on the estimated largest transaction amount that will be processed by the page. If a fixed page amount is configured, this should be set to the same value. |
max_total_amount required | string\d*(\.\d{0,2})? Maximum amount of all attempted transactions that can be processed within a day This is the total of all the amounts of attempted transactions once added together. For example, txn a for $4, txn b for $9, txn c for $12 = a total of $25. If the maximum is set to $15 then txn c would not be accepted because it would exceed the maximum total amount. This is to prevent abuse of the hosted paypage page and prevent fraudulent actives, such as attempting to have large fees accessed by initiating fraudulent charges that will be disputed later. If set to 0, then no transactions can process for the page and effectively disables its use. The maximum should be based on the estimated total amount of attempted payments. The total is based on attempted, authorized, and declined transactions. |
redirect_url | string URL to redirect the customer to after processing This should be a URL to the merchant's web site. Any returned fields will be added to the URL as query parameters when redirecting the customer. |
terms_url required | string URL to the merchant's terms and conditions |
privacy_url required | string URL to the merchant's privacy policy |
{- "profile_id": "78965743785967",
- "descr": "$50 donation button",
- "trantype": "sale",
- "allowed_cardtypes": "VISA|MC",
- "amount": "19.92",
- "fields_shown": "string",
- "fields_editable": "string",
- "fields_required": "string",
- "fields_returned": "string",
- "fee_type": "none",
- "fee_title": "Processing Fee",
- "fee_value": "19.92",
- "max_count": "1000",
- "max_amount": "51.48",
- "max_total_amount": "19500.77",
- "redirect_url": "string",
- "terms_url": "string",
- "privacy_url": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "id": "987653645678"
}
List hosted paypage pages
The resulting report will contain these headers:
id, profile_id, group_id, descr, trantype, fee_type, amount, fields_shown,
fields_editable, fields_returned, max_count, max_amount,
max_total_amount, total_count, total_amount, last_payment_ts,
redirect_url, terms_url, privacy_url, fee_value, fee_title
libmonetra KVS equivalent for endpoint
action_admin
= hosted_paypage
hosted_paypage
= list
curl -X GET 'https://testbox.monetra.com/api/v2/paypage/hosted' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Delete a payment page configuration
Once deleted the page will no longer be usable.
libmonetra KVS equivalent for endpoint
action_admin
= hosted_paypage
hosted_paypage
= del
id required | string Example: 987653645678 Unique ID of a hosted paypage page |
curl -X DELETE 'https://testbox.monetra.com/api/v2/paypage/hosted/767562957658' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Edit a hosted paypage page
libmonetra KVS equivalent for endpoint
action_admin
= hosted_paypage
hosted_paypage
= edit
id required | string Example: 987653645678 Unique ID of a hosted paypage page |
descr | string Description of the page to know what it is used for |
trantype | string Enum: "sale" "preauth" Transaction type the paypage should use for authorization Values:
|
allowed_cardtypes | string Enum: "VISA" "MC" "AMEX" "DISC" "DINERS" "JCB" "GIFT" "CUP" "ACH" Allowed Cardtypes Pipe (|) separated. Cardtypes that can be accepted on the hosted paypage page. If not specified, all cardtypes supported by the profile will be allowed. Flag values (pipe separated):
|
amount | string\d*(\.\d{0,2})? Any passed in, amount parameters, will be displayed to the customer as a fixed and non-editable amount field. However, if amount is passed a parameter of 0, or left blank, the paypage will display a customer editable amount field. |
fields_shown | string Fields that should be shown on the hosted paypage Payment information fields do not need to be defined here because they are always shown. Comma delimited list of field names. Fields allowed:
Additionally merchant custom fields can be included in this list. Shown fields can be used to allow customers to enter additional information. Such as an order number. It can also be used to display information to the customer. If a field is not marked as editable. |
fields_editable | string Fields that should be editable on the hosted paypage Payment information fields do not need to be defined here because they are always shown. Comma delimited list of field names. Only applied to fields that are shown. |
fields_required | string Fields that should be requried on the hosted paypage Payment information fields do not need to be defined here because they are always required. Comma delimited list of field names. If a field is not listed as shown or editable, the field and value must be passed to the page when it is requested. Either as query arguments or POST arguments. |
fields_returned | string Fields that should be returned as part of the redirect back to the merchant after page processing Comma delimited list of field names. This is response fields that Monetra will return from purchase or pre-authorization requests. Only some response fields can be returned. Response fields that can be returned:
Some input parameters can be returned. Request fields that can be returend:
Additionally merchant custom fields as defined on the profile can be returned as part of the response if they were provided as part of the request. These fields and their value will be returned as query arguments with the GET request to the merchant's web site. Note that these fields will be visible to the customer in the redirect URL. Also, note the customer could refresh the page causing multiple GET requests to be submitted. This should be used for informational purposes and not as a way to determine if a payment was made. |
fee_type | string Enum: "none" "percent" "amount" Fee type (if any) that should be assessed as part of the payment Values:
|
fee_title | string Description of the fee to show the customer The text should be short can clear that a fee is being accessed. If a title is not provided a default title of "Processing fee" will be used. This field is only used if a fee is being accessed. |
fee_value | string\d*(\.\d{0,2})? Fee to be assessed if use of the hosted payment page charges a fee. The fee can be up to 2 decimal digits. The type of
fee, percent or fixed amount, is determined by the
Percentages are percentage values and should not be normalized to a decimal. E.g values:
Fixed amounts are fixed amounts of dollars and cents. E.g values:
|
max_count | string Maximum number of transactions that can be processed within a day. This is to prevent abuse of the hosted paypage page and prevent fraudulent actives, such as carding. If this number of transactions (attempted, authorized, or declined) is exceeded, the page will not process any further requests that day. If set to 0, then no transactions can process for the page and effectively disables its use. The maximum should be based on the estimated number of transactions that will be processed per day. |
max_amount | string\d*(\.\d{0,2})? Maximum amount of a single transaction that can be processed by the page This is to prevent abuse of the hosted paypage page and prevent fraudulent actives, such as attempting to have large fees accessed by initiating fraudulent charges that will be disputed later. If set to 0, then no transactions can process for the page and effectively disables its use. The maximum should be based on the estimated largest transaction amount that will be processed by the page. If a fixed page amount is configured, this should be set to the same value. |
max_total_amount | string\d*(\.\d{0,2})? Maximum amount of all attempted transactions that can be processed within a day This is the total of all the amounts of attempted transactions once added together. For example, txn a for $4, txn b for $9, txn c for $12 = a total of $25. If the maximum is set to $15 then txn c would not be accepted because it would exceed the maximum total amount. This is to prevent abuse of the hosted paypage page and prevent fraudulent actives, such as attempting to have large fees accessed by initiating fraudulent charges that will be disputed later. If set to 0, then no transactions can process for the page and effectively disables its use. The maximum should be based on the estimated total amount of attempted payments. The total is based on attempted, authorized, and declined transactions. |
redirect_url | string URL to redirect the customer to after processing This should be a URL to the merchant's web site. Any returned fields will be added to the URL as query parameters when redirecting the customer. |
terms_url | string URL to the merchant's terms and conditions |
privacy_url | string URL to the merchant's privacy policy |
{- "descr": "$50 donation button",
- "trantype": "sale",
- "allowed_cardtypes": "VISA|MC",
- "amount": "19.92",
- "fields_shown": "string",
- "fields_editable": "string",
- "fields_required": "string",
- "fields_returned": "string",
- "fee_type": "none",
- "fee_title": "Processing Fee",
- "fee_value": "19.92",
- "max_count": "1000",
- "max_amount": "51.48",
- "max_total_amount": "19500.77",
- "redirect_url": "string",
- "terms_url": "string",
- "privacy_url": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Get details for the specified hosted paypage page
libmonetra KVS equivalent for endpoint
action_admin
= hosted_paypage
hosted_paypage
= list
id required | string Example: 987653645678 Unique ID of a hosted paypage page |
curl -X GET 'https://testbox.monetra.com/api/v2/paypage/hosted/767562957658' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "id": "987653645678",
- "profile_id": "78965743785967",
- "group_id": "36789654543",
- "descr": "$50 donation button",
- "trantype": "sale",
- "allowed_cardtypes": "VISA|MC",
- "amount": "19.92",
- "fields_shown": "string",
- "fields_editable": "string",
- "fields_required": "string",
- "fields_returned": "string",
- "fee_type": "none",
- "fee_title": "Processing Fee",
- "fee_value": "19.92",
- "max_count": "1000",
- "max_amount": "51.48",
- "max_total_amount": "19500.77",
- "total_count": "string",
- "total_amount": "string",
- "redirect_url": "string",
- "terms_url": "string",
- "privacy_url": "string"
}
User management
Accessing profiles
Users within the group will be able to access and process the profiles within the group they are in. Users can have a default profile set so they do not need to specify a profile with every transaction.
Additionally users can be locked to only allow processing with a specific profile. This allows a clerk to only process transactions for their work location while allowing someone like a floating manager to process at whichever store they happen to be at.
Change User Password
User's are able to change their own password provided they have the necessary permissions.
If changing another user's password, this can fail under the following conditions:
RESET_PEER_PASSWD
flag is not setlibmonetra KVS equivalent for endpoint
action_sys
= user_passwd
id | string\d+ Conditional. User id of user to operate on, if not provided, Cannot be combined with:
|
user | string <= 128 characters Conditional. Username of user to operate on, if not provided, Cannot be combined with:
|
pwd | string <= 256 characters New password to set for user being edited |
temporary | string Default: "no" Enum: "yes" "no" Whether the user's password is a temporary password By default if changing another user's password, the password is temporary,
meaning the user must change it immediately upon initial login. This may be
set to Values:
|
{- "id": "5678967654",
- "user": "user2",
- "pwd": "sTnn56Wve79&#%q#K4GF9Z",
- "temporary": "yes"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Creates a user
Fail if there are explicitly specified perms and perms are greater than allowed.
libmonetra KVS equivalent for endpoint
action_sys
= user_add
user required | string <= 128 characters User name of user to add |
pwd required | string <= 256 characters Password to set for user being added |
group_id | string\d+ Group user should be added to. If not specified, defaults to the same group as the current user |
default_profile_id | string\d+ Profile id of the default profile the user is assigned to use So they can run transactions without specifying a profile. If not specified, will auto-link to the profile at the same group level, if there is only one. If there are none or more than 1, will remain unlinked. When searching allows filtering by users that share a given default profile id. |
string <= 128 characters | |
flags | string Enum: "UNATTENDED" "SELFVIEWONLY" "MFA" "ALLOW_UNLINKED_REFUND" "ALLOW_GROUP_APIKEYS" "RESET_PEER_PASSWD" Flag values (pipe separated):
|
su_perms | string Enum: "ALL" "IMPORTEXPORT" "MAINTENANCE" "P2PE_BDK_GENERATE" "P2PE_BDK_DEACTIVATE" "P2PE_BDK_LIST" "P2PE_BDK_EDIT" "P2PE_BDK_EXPORT" "P2PE_BDK_PRINT" "P2PE_BDK_KCV" "P2PE_DEVICE_PROVISION" "P2PE_DEVICE_DEACTIVATE" "P2PE_DEVICE_LIST" "P2PE_DEVICE_EDIT" "E2EE_KEY_GENERATE" "E2EE_KEY_EDIT" "E2EE_KEY_LIST" "E2EE_KEY_DEACTIVATE" "BIGBATCH_MANAGE" "BIGBATCH" "BIGBATCH_SETTLE" "PRODUCT_LICENSE" "PUSHNOTIFICATION" "TOKEN_EXPORT" System restricted access permissions Pipe ('|') separate list of permissions. 'ALL' keyword indicates all available permissions. When adding or editing a user or group, if not specified, defaults to same perms as the parent group. Cannot exceed the perms of the parent group. May exceed permissions of user performing request. When creating an API Key, must set explicitly requested permissions, no inheritance. In any add or edit operation, specify as an empty string if no permissions of this classification are desired. Flag values (pipe separated):
|
sys_perms | string Enum: "ALL" "V8_COMPLEX_EMULATION" "GETPERMS" "GROUP_ADD" "GROUP_EDIT" "GROUP_MOVE" "GROUP_DEL" "GROUP_LIST" "USER_ADD" "USER_EDIT" "USER_MOVE" "USER_DEL" "USER_LIST" "USER_ENABLE" "USER_DISABLE" "USER_PASSWD" "USER_UNLOCK" "PROFILE_ADD" "PROFILE_EDIT" "PROFILE_MOVE" "PROFILE_DEL" "PROFILE_LIST" "PROFILE_STATS" "PROFILE_ENABLE" "PROFILE_DISABLE" "ROUTE_ADD" "ROUTE_EDIT" "ROUTE_DEL" "ROUTE_LIST" "ROUTE_FIELDS" "CRON" "INFO" "SETLOGGING" "REGISTER_CLIENT" "SKYLINK_MANAGE" "APIKEYS" "MFA_GENERATE" "MFA_RESET" "SECURITY_QUESTIONS" System access permissions Pipe ('|') separate list of permissions. 'ALL' keyword indicates all available permissions. When adding or editing a user or group, if not specified, defaults to same perms as the parent group. Cannot exceed the perms of the parent group. May exceed permissions of user performing request. When creating an API Key, must set explicitly requested permissions, no inheritance. In any add or edit operation, specify as an empty string if no permissions of this classification are desired. Flag values (pipe separated):
|
admin_perms | string Enum: "ALL" "REPORT_TRAN" "REPORT_TOTALS" "REPORT_CHARTDATA" "REPORT_QUEUE" "BATCH_CLEAR" "BATCH_SET" "BATCH_RESCIND" "BATCH_CLOSE" "TRAN_EDIT" "TRAN_NULLIFY" "TRAN_DETAIL" "TRAN_RECEIPT" "TRAN_IMPORT" "TRAN_EXPORT" "MERCH_INFO" "IMAGE_ADD" "IMAGE_DEL" "IMAGE_GET" "TOKEN_ADD" "TOKEN_EDIT" "TOKEN_DEL" "TOKEN_SCHEDULE" "TOKEN_LIST" "CUSTOMER_ADD" "CUSTOMER_EDIT" "CUSTOMER_DEL" "CUSTOMER_LIST" "TICKETREQUEST" "LEVEL3" "TRAN_EXPORT" "TRAN_IMPORT" "PRODMANAGE" "PRODLIST" "ORDERMANAGE" "ORDERLIST" "ORDERREPORT" "CARDDENYLIST" "P2PE" "STANDINKEY_GENERATE" Administrative access permissions Pipe ('|') separate list of permissions. 'ALL' keyword indicates all available permissions. When adding or editing a user or group, if not specified, defaults to same perms as the parent group. Cannot exceed the perms of the parent group. May exceed permissions of user performing request. When creating an API Key, must set explicitly requested permissions, no inheritance. In any add or edit operation, specify as an empty string if no permissions of this classification are desired. Flag values (pipe separated):
|
trans_perms | string Enum: "ALL" "VERIFYONLY" "SALE" "PREAUTH" "REVERSAL" "INCREMENTAL" "PREAUTHCOMPLETE" "FORCE" "CAPTURE" "VOID" "ADJUST" "REFUND" "ACTIVATE" "BALANCEINQ" "CASHOUT" "TOREVERSAL" "MERCHRETURN" "ISSUE" "TIP" "EBTFSSALE" "EBTFSRETURN" "EBTFSVOUCHER" "EBTFSBALANCE" "EBTCBSALE" "EBTCBCASH" "EBTCBBALANCE" "CHECKVERIFY" "CHECKCONVONLY" "CHECKCONVVRFY" "CHECKCONVGUAR" "CHECKCONVOVER" "CHECKIMAGEUPLOAD" "SETTLE" "SETTLERFR" "TERMLOAD" "INTERACMAC" "EMVCOMPLETE" "ALTPAYMENTINIT" "CARDTYPE" Transaction access permissions Pipe ('|') separate list of permissions. 'ALL' keyword indicates all available permissions. When adding or editing a user or group, if not specified, defaults to same perms as the parent group. Cannot exceed the perms of the parent group. May exceed permissions of user performing request. When creating an API Key, must set explicitly requested permissions, no inheritance. In any add or edit operation, specify as an empty string if no permissions of this classification are desired. Flag values (pipe separated):
|
name | string <= 128 characters User's real name |
phone_mobile | string <= 32 characters [-+0-9() .]* Mobile phone |
{- "user": "user2",
- "pwd": "sTnn56Wve79&#%q#K4GF9Z",
- "group_id": "36789654543",
- "default_profile_id": "7584476584356",
- "email": "email@email",
- "flags": "MFA|ALLOW_UNLINKED_REFUND|RESET_PEER_PASSWD",
- "su_perms": "ALL",
- "sys_perms": "ALL",
- "admin_perms": "ALL",
- "trans_perms": "ALL",
- "name": "Alan Alda",
- "phone_mobile": "555-555-5555"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "id": "5678967654"
}
Delete a user
Deleting a user can fail for the following conditions:
libmonetra KVS equivalent for endpoint
action_sys
= user_del
id | string Example: id=5678967654 Conditional. User id of user to operate on, if not provided, Cannot be combined with:
|
user | string Example: user=user2 Conditional. Username of user to operate on, if not provided, Cannot be combined with:
|
curl -X DELETE 'https://testbox.monetra.com/api/v2/user' \ --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=' \ -d ' { "user": "james" }' \ -H 'Content-Type: application/json; charset=utf-8'
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Edits a user
If id
is specified user
can also be specified
in order to change the username.
If editing self, cannot edit perms, or flags. Can edit other fields though.
libmonetra KVS equivalent for endpoint
action_sys
= user_edit
id | string\d+ Conditional. User id of user to operate on, if not provided, Cannot be combined with:
|
user | string <= 128 characters Conditional. Username of user to operate on, if not provided, Cannot be combined with:
|
default_profile_id | string\d+ Profile id of the default profile the user is assigned to use So they can run transactions without specifying a profile. If not specified, will auto-link to the profile at the same group level, if there is only one. If there are none or more than 1, will remain unlinked. When searching allows filtering by users that share a given default profile id. |
string <= 128 characters | |
flags | string Enum: "UNATTENDED" "SELFVIEWONLY" "MFA" "ALLOW_UNLINKED_REFUND" "ALLOW_GROUP_APIKEYS" "RESET_PEER_PASSWD" Flag values (pipe separated):
|
su_perms | string Enum: "ALL" "IMPORTEXPORT" "MAINTENANCE" "P2PE_BDK_GENERATE" "P2PE_BDK_DEACTIVATE" "P2PE_BDK_LIST" "P2PE_BDK_EDIT" "P2PE_BDK_EXPORT" "P2PE_BDK_PRINT" "P2PE_BDK_KCV" "P2PE_DEVICE_PROVISION" "P2PE_DEVICE_DEACTIVATE" "P2PE_DEVICE_LIST" "P2PE_DEVICE_EDIT" "E2EE_KEY_GENERATE" "E2EE_KEY_EDIT" "E2EE_KEY_LIST" "E2EE_KEY_DEACTIVATE" "BIGBATCH_MANAGE" "BIGBATCH" "BIGBATCH_SETTLE" "PRODUCT_LICENSE" "PUSHNOTIFICATION" "TOKEN_EXPORT" System restricted access permissions Pipe ('|') separate list of permissions. 'ALL' keyword indicates all available permissions. When adding or editing a user or group, if not specified, defaults to same perms as the parent group. Cannot exceed the perms of the parent group. May exceed permissions of user performing request. When creating an API Key, must set explicitly requested permissions, no inheritance. In any add or edit operation, specify as an empty string if no permissions of this classification are desired. Flag values (pipe separated):
|
sys_perms | string Enum: "ALL" "V8_COMPLEX_EMULATION" "GETPERMS" "GROUP_ADD" "GROUP_EDIT" "GROUP_MOVE" "GROUP_DEL" "GROUP_LIST" "USER_ADD" "USER_EDIT" "USER_MOVE" "USER_DEL" "USER_LIST" "USER_ENABLE" "USER_DISABLE" "USER_PASSWD" "USER_UNLOCK" "PROFILE_ADD" "PROFILE_EDIT" "PROFILE_MOVE" "PROFILE_DEL" "PROFILE_LIST" "PROFILE_STATS" "PROFILE_ENABLE" "PROFILE_DISABLE" "ROUTE_ADD" "ROUTE_EDIT" "ROUTE_DEL" "ROUTE_LIST" "ROUTE_FIELDS" "CRON" "INFO" "SETLOGGING" "REGISTER_CLIENT" "SKYLINK_MANAGE" "APIKEYS" "MFA_GENERATE" "MFA_RESET" "SECURITY_QUESTIONS" System access permissions Pipe ('|') separate list of permissions. 'ALL' keyword indicates all available permissions. When adding or editing a user or group, if not specified, defaults to same perms as the parent group. Cannot exceed the perms of the parent group. May exceed permissions of user performing request. When creating an API Key, must set explicitly requested permissions, no inheritance. In any add or edit operation, specify as an empty string if no permissions of this classification are desired. Flag values (pipe separated):
|
admin_perms | string Enum: "ALL" "REPORT_TRAN" "REPORT_TOTALS" "REPORT_CHARTDATA" "REPORT_QUEUE" "BATCH_CLEAR" "BATCH_SET" "BATCH_RESCIND" "BATCH_CLOSE" "TRAN_EDIT" "TRAN_NULLIFY" "TRAN_DETAIL" "TRAN_RECEIPT" "TRAN_IMPORT" "TRAN_EXPORT" "MERCH_INFO" "IMAGE_ADD" "IMAGE_DEL" "IMAGE_GET" "TOKEN_ADD" "TOKEN_EDIT" "TOKEN_DEL" "TOKEN_SCHEDULE" "TOKEN_LIST" "CUSTOMER_ADD" "CUSTOMER_EDIT" "CUSTOMER_DEL" "CUSTOMER_LIST" "TICKETREQUEST" "LEVEL3" "TRAN_EXPORT" "TRAN_IMPORT" "PRODMANAGE" "PRODLIST" "ORDERMANAGE" "ORDERLIST" "ORDERREPORT" "CARDDENYLIST" "P2PE" "STANDINKEY_GENERATE" Administrative access permissions Pipe ('|') separate list of permissions. 'ALL' keyword indicates all available permissions. When adding or editing a user or group, if not specified, defaults to same perms as the parent group. Cannot exceed the perms of the parent group. May exceed permissions of user performing request. When creating an API Key, must set explicitly requested permissions, no inheritance. In any add or edit operation, specify as an empty string if no permissions of this classification are desired. Flag values (pipe separated):
|
trans_perms | string Enum: "ALL" "VERIFYONLY" "SALE" "PREAUTH" "REVERSAL" "INCREMENTAL" "PREAUTHCOMPLETE" "FORCE" "CAPTURE" "VOID" "ADJUST" "REFUND" "ACTIVATE" "BALANCEINQ" "CASHOUT" "TOREVERSAL" "MERCHRETURN" "ISSUE" "TIP" "EBTFSSALE" "EBTFSRETURN" "EBTFSVOUCHER" "EBTFSBALANCE" "EBTCBSALE" "EBTCBCASH" "EBTCBBALANCE" "CHECKVERIFY" "CHECKCONVONLY" "CHECKCONVVRFY" "CHECKCONVGUAR" "CHECKCONVOVER" "CHECKIMAGEUPLOAD" "SETTLE" "SETTLERFR" "TERMLOAD" "INTERACMAC" "EMVCOMPLETE" "ALTPAYMENTINIT" "CARDTYPE" Transaction access permissions Pipe ('|') separate list of permissions. 'ALL' keyword indicates all available permissions. When adding or editing a user or group, if not specified, defaults to same perms as the parent group. Cannot exceed the perms of the parent group. May exceed permissions of user performing request. When creating an API Key, must set explicitly requested permissions, no inheritance. In any add or edit operation, specify as an empty string if no permissions of this classification are desired. Flag values (pipe separated):
|
name | string <= 128 characters User's real name |
phone_mobile | string <= 32 characters [-+0-9() .]* Mobile phone |
{- "id": "5678967654",
- "user": "user2",
- "default_profile_id": "7584476584356",
- "email": "email@email",
- "flags": "MFA|ALLOW_UNLINKED_REFUND|RESET_PEER_PASSWD",
- "su_perms": "ALL",
- "sys_perms": "ALL",
- "admin_perms": "ALL",
- "trans_perms": "ALL",
- "name": "Alan Alda",
- "phone_mobile": "555-555-5555"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
List users
The resulting report will contain these headers:
id, username, group_id, group_depth, status, flags, create_ts, upd_ts,
lastlogin_ts, pwchange_ts, login_fail_cnt, lock_ts, su_perms, sys_perms,
admin_perms, trans_perms, default_profile_id, name, mobilephone
status
can be one of:
ACTIVE
- good standingDISABLED
- administratively disabledLOCKED
- locked due to login failureslibmonetra KVS equivalent for endpoint
action_sys
= user_list
id | string Example: id=5678967654 Query a specific user id Cannot be combined with:
|
user | string Example: user=user2 Query a specific user by name Cannot be combined with:
|
default_profile_id | string Example: default_profile_id=7584476584356 Profile id of the default profile the user is assigned to use So they can run transactions without specifying a profile. If not specified, will auto-link to the profile at the same group level, if there is only one. If there are none or more than 1, will remain unlinked. When searching allows filtering by users that share a given default profile id. |
flags | object Enum: "UNATTENDED" "SELFVIEWONLY" "MFA" "ALLOW_UNLINKED_REFUND" "ALLOW_GROUP_APIKEYS" "RESET_PEER_PASSWD" Example: flags=MFA|ALLOW_UNLINKED_REFUND|RESET_PEER_PASSWD Flag values (pipe separated):
|
status | object Enum: "ACTIVE" "DISABLED" "LOCKED" Example: status=ACTIVE Status of the user Values:
|
group_id | string Example: group_id=36789654543 Query starting at a specific group id, if not specified, defaults to user's group id. |
maxdepth | string Example: maxdepth=4 Maximum depth to display Default is unlimited. Specify 1 to see only self and children. |
search | string Will perform a substring search across multiple fields |
phone_mobile | string Example: phone_mobile=555-555-5555 Mobile phone |
curl -X GET 'https://testbox.monetra.com/api/v2/user?user=james' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=''
{- "report": "..."
}
Disable User that is enabled
Will return failure if user is disabled or locked.
Admistratively disables a user. The user cannot be used until enabled. This will not expire and the user must be manually enabled.
libmonetra KVS equivalent for endpoint
action_sys
= user_disable
id | string\d+ Conditional. User id of user to operate on, if not provided, Cannot be combined with:
|
user | string <= 128 characters Conditional. Username of user to operate on, if not provided, Cannot be combined with:
|
{- "id": "5678967654",
- "user": "user2"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Enable User that was disabled
Will return failure if user is not currently disabled.
Admistratively enable a user. The user must have been previously
disabled. Locked user's are not considered disabled and should be
unlocked using the unlock
action.
libmonetra KVS equivalent for endpoint
action_sys
= user_enable
id | string\d+ Conditional. User id of user to operate on, if not provided, Cannot be combined with:
|
user | string <= 128 characters Conditional. Username of user to operate on, if not provided, Cannot be combined with:
|
{- "id": "5678967654",
- "user": "user2"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Gets the user's permissions
This is the permissions for the authenticating user. In order to get permissions for a specific user, use the "List Users" report filtering on the user in question.
This action should be used for password / API key verification if needing to verify before further processing take place.
libmonetra KVS equivalent for endpoint
action_sys
= getperms
curl -X GET 'https://testbox.monetra.com/api/v2/user/permissions' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "pass_expire_secs": "4676",
- "su_perms": "ALL",
- "sys_perms": "ALL",
- "admin_perms": "ALL",
- "trans_perms": "ALL"
}
Move a user to a different group
Moving to a different group can fail for the following conditions:
libmonetra KVS equivalent for endpoint
action_sys
= user_move
id required | string\d+ User id |
group_id required | string\d+ Group identifier |
{- "id": "5678967654",
- "group_id": "36789654543"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Unlock a locked user
Will return failure if user not locked.
Users are automatically locked after too many login
failures. Locking is temporary and will expire automatically
after a set amount of time. The unlock
action unlocks
the user without having to wait for the lock time period
to elapse.
libmonetra KVS equivalent for endpoint
action_sys
= user_unlock
id | string\d+ Conditional. User id of user to operate on, if not provided, Cannot be combined with:
|
user | string <= 128 characters Conditional. Username of user to operate on, if not provided, Cannot be combined with:
|
{- "id": "5678967654",
- "user": "user2"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
User multi factor authentication management
Multi Factor Authentication (MFA) is supported using a variety of methods. See "Generating" for more information about each method. Also see the "MFA Code" section under the main "Authentication" information.
MFA can be enabled for any user at any time. Groups can mandate that all users within the group and in any subgroup must enable MFA.
This section is for managing MFA not generating an MFA code. MFA code generation is an out of band process.
Generate (or replace) the existing Multi Factor Authentication mechanism
This requires the full username and password, an APIKey cannot be used to call this function. If MFA is already set up on the account, the existing MFA code must also be provided.
phone_mobile
or email
can be provided if the corresponding type
is chosen
to explictly set where the code should be sent. It is not required if the user
account already has these configured.
When an action is attempted that requires MFA but an MFA code is not provided
an msoft_code=ACCT_MFA_REQUIRED
will be returned. If sms or email codes methods
were chosen, an sms or email will automatically be trigered to send the MFA code
to the user.
If the user does not already have the MFA
user flag, it will be automatically
added to the account.
libmonetra KVS equivalent for endpoint
action_sys
= mfa_generate
mfa_generate
= totp
type required | string Enum: "TOTP_APP" "TOTP_SMS" "TOTP_EMAIL" Values:
|
phone_mobile | string <= 32 characters [-+0-9() .]* Mobile phone |
string <= 128 characters |
{- "type": "TOTP_APP",
- "phone_mobile": "555-555-5555",
- "email": "email@email"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "key": "otpauth://totp/Super%20ISO:doug?secret=WZA5UAPCTESR3IR6&algorithm=SHA1&digits=6&period=30&issuer=Payment%20Server"
}
Reset Multi Factor Authentication so it needs to be generated
MFA will remain enabled requiring the user to generate an MFA key.
user
or id
must be provided to reset the MFA for the specified user.
MFA self reset is not allowed. Self reset requres the user to utilize the
3-step self reset process.
Subsequent operations will return the msoft_code=MFA_GENERATE
indicating MFA needs to be generated.
libmonetra KVS equivalent for endpoint
action_sys
= mfa_reset
id | string\d+ Conditional. User id of user to operate on, if not provided, Cannot be combined with:
|
user | string <= 128 characters Conditional. Username of user to operate on, if not provided, Cannot be combined with:
|
{- "id": "5678967654",
- "user": "user2"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
User self password and MFA reset management. Users are able to initiate a reset request for their password and MFA tokens when they've forgotten one or the other.
In order to do this, they must have security questions on file and know the answers. They also must have a phone number for SMS or an email on file because part of the process involves sending them a verification code.
The reset processes are multi-step with, as indicated, out of band verification of the user.
Create user's security questions
libmonetra KVS equivalent for endpoint
action_sys
= security_questions
security_questions
= add
question1 required | string [ 3 .. 128 ] characters .{3,128} Security question |
question2 required | string [ 3 .. 128 ] characters .{3,128} Security question |
question3 required | string [ 3 .. 128 ] characters .{3,128} Security question |
answer1 required | string Security answer |
answer2 required | string Security answer |
answer3 required | string Security answer |
{- "question1": "Question 1?",
- "question2": "Question 2?",
- "question3": "Question 3?",
- "answer1": "Answer 1",
- "answer2": "Answer 2",
- "answer3": "Answer 3"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Edit security questions
libmonetra KVS equivalent for endpoint
action_sys
= security_questions
security_questions
= edit
question1 | string [ 3 .. 128 ] characters .{3,128} Security question |
question2 | string [ 3 .. 128 ] characters .{3,128} Security question |
question3 | string [ 3 .. 128 ] characters .{3,128} Security question |
answer1 | string Security answer |
answer2 | string Security answer |
answer3 | string Security answer |
{- "question1": "Question 1?",
- "question2": "Question 2?",
- "question3": "Question 3?",
- "answer1": "Answer 1",
- "answer2": "Answer 2",
- "answer3": "Answer 3"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
List security questions
libmonetra KVS equivalent for endpoint
action_sys
= security_questions
security_questions
= list
curl -X GET 'https://testbox.monetra.com/api/v2/user/security_questions' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=''
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "question1": "Question 1?",
- "question2": "Question 2?",
- "question3": "Question 3?",
- "created_ts": "2022-05-24 15:06:13 -0400",
- "upd_ts": "2022-05-24 15:06:13 -0400"
}
User self-reset of multi factor authentication
This is a multi-step process consisting of several steps.
code
security_questions
reset
This relies on a one-time use verification code to initiate the reset attempt which will be emailed or sent via SMS to the user. This code is then entered into a follow-up request to retrieve the user's security questions. The final follow-up will pass the same verification code and all 3 security question answers.
The reset operation may be initiated at most 3 times in a 24hr period. The emailed or sms code may only be used once for each step of the reset operation.
The user is required to authenticate using their username
and password
.
If the user does not have security questions configured this action will fail with an error. Also, the user must have an email or phone number capable of receiving sms messages on file (based on the method chosen for receiving the security code).
libmonetra KVS equivalent for endpoint
action_sys
= auth_reset
auth_reset
= mfa
phase
= code
method required | object Enum: "EMAIL" "SMS" Example: method=SMS Values:
|
curl -X GET 'https://testbox.monetra.com/api/v2/user/self/reset/mfa/code?reset_method=email' --basic -u 'test_retail:publ1ct3st'
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Retrieve security questions for a user for self password reset
libmonetra KVS equivalent for endpoint
action_sys
= auth_reset
auth_reset
= mfa
phase
= security_questions
reset_code required | string Self reset authentication code sent to the user via email or sms |
{- "reset_code": "46602473"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "question1": "Question 1?",
- "question2": "Question 2?",
- "question3": "Question 3?"
}
Request the finalization of the self MFA reset operation
libmonetra KVS equivalent for endpoint
action_sys
= auth_reset
auth_reset
= mfa
phase
= reset
reset_code required | string Self reset authentication code sent to the user via email or sms |
answer1 required | string Security answer |
answer2 required | string Security answer |
answer3 required | string Security answer |
{- "reset_code": "46602473",
- "answer1": "Answer 1",
- "answer2": "Answer 2",
- "answer3": "Answer 3"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
User self-reset of password
This is a multi-step process consisting of several steps.
code
security_questions
reset
This relies on a one-time use verification code to initiate the reset attempt which will be emailed or sent via SMS to the user. This code is then entered into a follow-up request to retrieve the user's security questions and an indicator stating if the user has MFA enabled and configured. The final follow-up will pass the same verification code, all 3 security question answers, and possibly the mfa_code if the account has MFA enabled.
The reset operation may be initiated at most 3 times in a 24hr period. The emailed or sms code may only be used once for each step of the reset operation.
Password resets require the username
of the user requesting the reset. The
user's password is not used for authentication in any of the three steps.
For ReST neither API Key or Basic authentication is used. Instead the authentication
parameters are passed in the request itself per the requirements of each step.
If the user does not have security questions configured this action will fail silently without error. Also, the user must have an email or phone number capable of receiving sms messages on file (based on the method chosen for receiving the security code).
libmonetra KVS equivalent for endpoint
action_sys
= auth_reset
auth_reset
= password
phase
= code
username required | string Example: username=user1 The username to perform a reset operation on |
method required | object Enum: "EMAIL" "SMS" Example: method=SMS Values:
|
curl -X GET 'https://testbox.monetra.com/api/v2/user/self/reset/password/code?username=user1&reset_method=email'
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Retrieve security questions for a user for self password reset
libmonetra KVS equivalent for endpoint
action_sys
= auth_reset
auth_reset
= password
phase
= security_questions
username required | string The username to perform a reset operation on |
reset_code required | string Self reset authentication code sent to the user via email or sms |
{- "username": "user1",
- "reset_code": "46602473"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "question1": "Question 1?",
- "question2": "Question 2?",
- "question3": "Question 3?",
- "mfa_enabled": "yes"
}
Request the finalization of the self password reset operation
libmonetra KVS equivalent for endpoint
action_sys
= auth_reset
auth_reset
= password
phase
= reset
username required | string The username to perform a reset operation on |
reset_code required | string Self reset authentication code sent to the user via email or sms |
answer1 required | string Security answer |
answer2 required | string Security answer |
answer3 required | string Security answer |
pwd required | string <= 256 characters Password |
mfa_code required | string If mfa_enabled was true, then the current mfa code (either from APP, EMAIL or SMS). Cannot be an MFA cookie |
{- "username": "user1",
- "reset_code": "46602473",
- "answer1": "Answer 1",
- "answer2": "Answer 2",
- "answer3": "Answer 3",
- "pwd": "sTnn56Wve79&#%q#K4GF9Z",
- "mfa_code": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
API keys are used to provide an alternative authentication method for users and Point of Sale (POS) systems. This will allow a user to disassociate their username and password from authentication.
API keys are composed of two parts. A public key id and a private key secret. The key secret must be protected.
API keys can also be created specifically for profiles and are intended for use by POS systems that use external user management. A profile API key has functionality only allowing payment transactions. Other operations are restricted.
Profile API keys allow a POS or other system to not be linked to a user for processing transactions. That way if the user is disabled or removed the system will continue to operate.
Whereas a user API key can be created with any permissions already afforded to the user. It is possible to create user API keys with further lower permissions than the user currently has.
A group API key is primarily intended for integrations that need wide ranging
automated reporting. For example, a group representing a company may want to
have sales reports generated at the end of each day across all sub-groups
and profiles. sub-groups could be franchise locations, for example. The group
API key will allow the integration to be able to access this data. It would
be inadvisable to use a user key in this situation because the key will be
invalidated if the user ever leaves the company. Group API keys must be
limited to the minimum permissions necessary to accomplish the integration
requirements. Often this involves only some action_sys
actions.
API keys can be configured for limited duration, after which the specific key
will no longer function. There is also an EXTEND_ON_USE
flag which can
extend the life of the key on use.
Some intended uses for API keys:
iFrame
The iFrame currently uses HMAC authentication to verify the request is being generated by a valid user. A profile API key can be generated and used instead of a username and password for authentication.
POS
A POS system with external user management can be configured to use a profile API key to unlink the system from a specific user. The POS will be able to process transactions without having an "unattended" user that needs a password stored somewhere.
Web Interface and Mobile Apps
One way a web interface or mobile app could operate is by having the user login
with their username and password, then request an API key representing the
user. The integration would not store the username and password. Instead it
would store the API key and further operations would be performed using the API
key. An expiration combined with the EXTEND_ON_USE
flag is recommended
for this scenario.
Get API Keys Details
libmonetra KVS equivalent for endpoint
action_sys
= apikeys
apikeys
= list
apikey_id required | string Example: 96785456789765 API key id Used in conjunction with |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
curl -X GET 'https://testbox.monetra.com/api/v2/apikey/U123' --basic -u 'test_retail:publ1ct3st'
{- "apikey_id": "96785456789765",
- "type": "user",
- "group_id": "36789654543",
- "name": "POS Key 54-5",
- "user_id": "977564336543",
- "profile_id": "65433565432",
- "flags": "EXTEND_ON_USE",
- "su_perms": "ALL",
- "sys_perms": "ALL",
- "admin_perms": "ALL",
- "trans_perms": "ALL",
- "created_uid": "78654356",
- "created_ts": "2022-05-24 15:06:13 -0400",
- "last_used_ts": "2022-05-24 15:06:13 -0400",
- "expire_ts": "2022-05-24 15:06:13 -0400",
- "extend_sec": "180",
- "descr": "Unattended POS key. Store 54 POS station 5"
}
Deletes an API Key
libmonetra KVS equivalent for endpoint
action_sys
= apikeys
apikeys
= del
apikey_id required | string Example: 96785456789765 API key id Used in conjunction with |
curl -X DELETE 'https://testbox.monetra.com/api/v2/apikey/U123' --basic -u 'test_retail:publ1ct3st'
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Creates an API Key
There are three key types that can be created, user
, profile
, and group
.
A user
key represents the user. A profile
key represents a profile.
A group
key represents a group.
Allowed:
user
keys for themselves.profile
keys for any profile they have access to.group
keys for any group they have access to if they havei the user flag ALLOW_GROUP_APIKEYS
.user
key can create profile
keys for any profiles they have access to.Disallowed:
user
keys for other users.user
key cannot create user
keys.profile
key cannot create either user
or profile
keys.group
key cannot create either user
keys.Up to 100 API keys can be created per user, per profile or per group.
libmonetra KVS equivalent for endpoint
action_sys
= apikeys
apikeys
= add
type required | string Enum: "user" "profile" "group" Type of API Key Values:
|
name required | string <= 256 characters API Key name |
descr | string <= 128 characters Description of the key and its intended use |
flags | string Enum: "EXTEND_ON_USE" "ALLOW_UNLINKED_REFUND" flags controlling behavior Values:
|
su_perms | string Enum: "ALL" "IMPORTEXPORT" "MAINTENANCE" "P2PE_BDK_GENERATE" "P2PE_BDK_DEACTIVATE" "P2PE_BDK_LIST" "P2PE_BDK_EDIT" "P2PE_BDK_EXPORT" "P2PE_BDK_PRINT" "P2PE_BDK_KCV" "P2PE_DEVICE_PROVISION" "P2PE_DEVICE_DEACTIVATE" "P2PE_DEVICE_LIST" "P2PE_DEVICE_EDIT" "E2EE_KEY_GENERATE" "E2EE_KEY_EDIT" "E2EE_KEY_LIST" "E2EE_KEY_DEACTIVATE" "BIGBATCH_MANAGE" "BIGBATCH" "BIGBATCH_SETTLE" "PRODUCT_LICENSE" "PUSHNOTIFICATION" "TOKEN_EXPORT" System restricted access permissions Pipe ('|') separate list of permissions. 'ALL' keyword indicates all available permissions. When adding or editing a user or group, if not specified, defaults to same perms as the parent group. Cannot exceed the perms of the parent group. May exceed permissions of user performing request. When creating an API Key, must set explicitly requested permissions, no inheritance. In any add or edit operation, specify as an empty string if no permissions of this classification are desired. Flag values (pipe separated):
|
sys_perms | string Enum: "ALL" "V8_COMPLEX_EMULATION" "GETPERMS" "GROUP_ADD" "GROUP_EDIT" "GROUP_MOVE" "GROUP_DEL" "GROUP_LIST" "USER_ADD" "USER_EDIT" "USER_MOVE" "USER_DEL" "USER_LIST" "USER_ENABLE" "USER_DISABLE" "USER_PASSWD" "USER_UNLOCK" "PROFILE_ADD" "PROFILE_EDIT" "PROFILE_MOVE" "PROFILE_DEL" "PROFILE_LIST" "PROFILE_STATS" "PROFILE_ENABLE" "PROFILE_DISABLE" "ROUTE_ADD" "ROUTE_EDIT" "ROUTE_DEL" "ROUTE_LIST" "ROUTE_FIELDS" "CRON" "INFO" "SETLOGGING" "REGISTER_CLIENT" "SKYLINK_MANAGE" "APIKEYS" "MFA_GENERATE" "MFA_RESET" "SECURITY_QUESTIONS" System access permissions Pipe ('|') separate list of permissions. 'ALL' keyword indicates all available permissions. When adding or editing a user or group, if not specified, defaults to same perms as the parent group. Cannot exceed the perms of the parent group. May exceed permissions of user performing request. When creating an API Key, must set explicitly requested permissions, no inheritance. In any add or edit operation, specify as an empty string if no permissions of this classification are desired. Flag values (pipe separated):
|
admin_perms | string Enum: "ALL" "REPORT_TRAN" "REPORT_TOTALS" "REPORT_CHARTDATA" "REPORT_QUEUE" "BATCH_CLEAR" "BATCH_SET" "BATCH_RESCIND" "BATCH_CLOSE" "TRAN_EDIT" "TRAN_NULLIFY" "TRAN_DETAIL" "TRAN_RECEIPT" "TRAN_IMPORT" "TRAN_EXPORT" "MERCH_INFO" "IMAGE_ADD" "IMAGE_DEL" "IMAGE_GET" "TOKEN_ADD" "TOKEN_EDIT" "TOKEN_DEL" "TOKEN_SCHEDULE" "TOKEN_LIST" "CUSTOMER_ADD" "CUSTOMER_EDIT" "CUSTOMER_DEL" "CUSTOMER_LIST" "TICKETREQUEST" "LEVEL3" "TRAN_EXPORT" "TRAN_IMPORT" "PRODMANAGE" "PRODLIST" "ORDERMANAGE" "ORDERLIST" "ORDERREPORT" "CARDDENYLIST" "P2PE" "STANDINKEY_GENERATE" Administrative access permissions Pipe ('|') separate list of permissions. 'ALL' keyword indicates all available permissions. When adding or editing a user or group, if not specified, defaults to same perms as the parent group. Cannot exceed the perms of the parent group. May exceed permissions of user performing request. When creating an API Key, must set explicitly requested permissions, no inheritance. In any add or edit operation, specify as an empty string if no permissions of this classification are desired. Flag values (pipe separated):
|
trans_perms | string Enum: "ALL" "VERIFYONLY" "SALE" "PREAUTH" "REVERSAL" "INCREMENTAL" "PREAUTHCOMPLETE" "FORCE" "CAPTURE" "VOID" "ADJUST" "REFUND" "ACTIVATE" "BALANCEINQ" "CASHOUT" "TOREVERSAL" "MERCHRETURN" "ISSUE" "TIP" "EBTFSSALE" "EBTFSRETURN" "EBTFSVOUCHER" "EBTFSBALANCE" "EBTCBSALE" "EBTCBCASH" "EBTCBBALANCE" "CHECKVERIFY" "CHECKCONVONLY" "CHECKCONVVRFY" "CHECKCONVGUAR" "CHECKCONVOVER" "CHECKIMAGEUPLOAD" "SETTLE" "SETTLERFR" "TERMLOAD" "INTERACMAC" "EMVCOMPLETE" "ALTPAYMENTINIT" "CARDTYPE" Transaction access permissions Pipe ('|') separate list of permissions. 'ALL' keyword indicates all available permissions. When adding or editing a user or group, if not specified, defaults to same perms as the parent group. Cannot exceed the perms of the parent group. May exceed permissions of user performing request. When creating an API Key, must set explicitly requested permissions, no inheritance. In any add or edit operation, specify as an empty string if no permissions of this classification are desired. Flag values (pipe separated):
|
expire_sec required | string\d+|infinite How long the API key should be valid. Can be a numeric whole number of seconds or they key word Minimum allowed value is Will be used as the extend time when combined with the |
profile_id | string\d+ Profile ID the key should represent instead of the user. Can only be present when |
{- "type": "user",
- "name": "POS Key 54-5",
- "descr": "Unattended POS key. Store 54 POS station 5",
- "flags": "EXTEND_ON_USE",
- "su_perms": "ALL",
- "sys_perms": "ALL",
- "admin_perms": "ALL",
- "trans_perms": "ALL",
- "expire_sec": "3600",
- "profile_id": "78965743785967"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "apikey_id": "96785456789765",
- "apikey_secret": "..."
}
List API Keys
The resulting report will contain these headers:
apikey_id, type, group_id, name, user_id, profile_id, flags, su_perms, sys_perms,
admin_perms, trans_perms, created_uid, created_ts, last_used_ts, expire_ts,
extend_sec, descr
libmonetra KVS equivalent for endpoint
action_sys
= apikeys
apikeys
= list
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
user_id | string Example: user_id=67869543676543 User identifier |
group_id | string Example: group_id=36789654543 Group identifier |
name | string Example: name=POS Key 54-5 API Key name |
maxdepth | string Example: maxdepth=4 Maximum depth to display Default is top level only. Specify 1 to see only self and children. |
curl -X GET 'https://testbox.monetra.com/api/v2/apikey' --basic -u 'test_retail:publ1ct3st'
{- "report": "..."
}
All user, and profiles are contained in a Hierarchical system comprised of Groups. Each group is a level in the hierarchy and groups can be contained within groups. The hierarchical system controls the 'view' that users have access to.
A user at a higher level group can view anything they have permissions for within their and any lower level group.
Profiles, users, and push notifications are all contained within a group.
Groups can have permissions set on the group itself. User's within the group will not be able to perform actions with higher permissions than the group.
Example flow for adding a merchant
Users within the group will be able to access and process the profiles within the group they are in. Users can have a default profile set so they do not need to specify a profile with every transaction.
Additionally users can be locked to only allow processing with a specific profile. This allows a clerk to only process transactions for their work location while allowing someone like a floating manager to process at whichever store they happen to be at.
Creates a Group
libmonetra KVS equivalent for endpoint
action_sys
= group_add
name required | string Group name |
flags | string Enum: "MODIFY_SELF" "SHARE_TOKENS" "PUSH_NOTIFICATION" "ACCOUNT_UPDATER" "WHITELABEL_BRANDING" "REQUIRE_MFA" Flag values (pipe separated):
|
parent_group_id | string\d+ ID of parent group If not specified, defaults to the immediate group the user is part of. |
su_perms | string Enum: "ALL" "IMPORTEXPORT" "MAINTENANCE" "P2PE_BDK_GENERATE" "P2PE_BDK_DEACTIVATE" "P2PE_BDK_LIST" "P2PE_BDK_EDIT" "P2PE_BDK_EXPORT" "P2PE_BDK_PRINT" "P2PE_BDK_KCV" "P2PE_DEVICE_PROVISION" "P2PE_DEVICE_DEACTIVATE" "P2PE_DEVICE_LIST" "P2PE_DEVICE_EDIT" "E2EE_KEY_GENERATE" "E2EE_KEY_EDIT" "E2EE_KEY_LIST" "E2EE_KEY_DEACTIVATE" "BIGBATCH_MANAGE" "BIGBATCH" "BIGBATCH_SETTLE" "PRODUCT_LICENSE" "PUSHNOTIFICATION" "TOKEN_EXPORT" System restricted access permissions Pipe ('|') separate list of permissions. 'ALL' keyword indicates all available permissions. When adding or editing a user or group, if not specified, defaults to same perms as the parent group. Cannot exceed the perms of the parent group. May exceed permissions of user performing request. When creating an API Key, must set explicitly requested permissions, no inheritance. In any add or edit operation, specify as an empty string if no permissions of this classification are desired. Flag values (pipe separated):
|
sys_perms | string Enum: "ALL" "V8_COMPLEX_EMULATION" "GETPERMS" "GROUP_ADD" "GROUP_EDIT" "GROUP_MOVE" "GROUP_DEL" "GROUP_LIST" "USER_ADD" "USER_EDIT" "USER_MOVE" "USER_DEL" "USER_LIST" "USER_ENABLE" "USER_DISABLE" "USER_PASSWD" "USER_UNLOCK" "PROFILE_ADD" "PROFILE_EDIT" "PROFILE_MOVE" "PROFILE_DEL" "PROFILE_LIST" "PROFILE_STATS" "PROFILE_ENABLE" "PROFILE_DISABLE" "ROUTE_ADD" "ROUTE_EDIT" "ROUTE_DEL" "ROUTE_LIST" "ROUTE_FIELDS" "CRON" "INFO" "SETLOGGING" "REGISTER_CLIENT" "SKYLINK_MANAGE" "APIKEYS" "MFA_GENERATE" "MFA_RESET" "SECURITY_QUESTIONS" System access permissions Pipe ('|') separate list of permissions. 'ALL' keyword indicates all available permissions. When adding or editing a user or group, if not specified, defaults to same perms as the parent group. Cannot exceed the perms of the parent group. May exceed permissions of user performing request. When creating an API Key, must set explicitly requested permissions, no inheritance. In any add or edit operation, specify as an empty string if no permissions of this classification are desired. Flag values (pipe separated):
|
admin_perms | string Enum: "ALL" "REPORT_TRAN" "REPORT_TOTALS" "REPORT_CHARTDATA" "REPORT_QUEUE" "BATCH_CLEAR" "BATCH_SET" "BATCH_RESCIND" "BATCH_CLOSE" "TRAN_EDIT" "TRAN_NULLIFY" "TRAN_DETAIL" "TRAN_RECEIPT" "TRAN_IMPORT" "TRAN_EXPORT" "MERCH_INFO" "IMAGE_ADD" "IMAGE_DEL" "IMAGE_GET" "TOKEN_ADD" "TOKEN_EDIT" "TOKEN_DEL" "TOKEN_SCHEDULE" "TOKEN_LIST" "CUSTOMER_ADD" "CUSTOMER_EDIT" "CUSTOMER_DEL" "CUSTOMER_LIST" "TICKETREQUEST" "LEVEL3" "TRAN_EXPORT" "TRAN_IMPORT" "PRODMANAGE" "PRODLIST" "ORDERMANAGE" "ORDERLIST" "ORDERREPORT" "CARDDENYLIST" "P2PE" "STANDINKEY_GENERATE" Administrative access permissions Pipe ('|') separate list of permissions. 'ALL' keyword indicates all available permissions. When adding or editing a user or group, if not specified, defaults to same perms as the parent group. Cannot exceed the perms of the parent group. May exceed permissions of user performing request. When creating an API Key, must set explicitly requested permissions, no inheritance. In any add or edit operation, specify as an empty string if no permissions of this classification are desired. Flag values (pipe separated):
|
trans_perms | string Enum: "ALL" "VERIFYONLY" "SALE" "PREAUTH" "REVERSAL" "INCREMENTAL" "PREAUTHCOMPLETE" "FORCE" "CAPTURE" "VOID" "ADJUST" "REFUND" "ACTIVATE" "BALANCEINQ" "CASHOUT" "TOREVERSAL" "MERCHRETURN" "ISSUE" "TIP" "EBTFSSALE" "EBTFSRETURN" "EBTFSVOUCHER" "EBTFSBALANCE" "EBTCBSALE" "EBTCBCASH" "EBTCBBALANCE" "CHECKVERIFY" "CHECKCONVONLY" "CHECKCONVVRFY" "CHECKCONVGUAR" "CHECKCONVOVER" "CHECKIMAGEUPLOAD" "SETTLE" "SETTLERFR" "TERMLOAD" "INTERACMAC" "EMVCOMPLETE" "ALTPAYMENTINIT" "CARDTYPE" Transaction access permissions Pipe ('|') separate list of permissions. 'ALL' keyword indicates all available permissions. When adding or editing a user or group, if not specified, defaults to same perms as the parent group. Cannot exceed the perms of the parent group. May exceed permissions of user performing request. When creating an API Key, must set explicitly requested permissions, no inheritance. In any add or edit operation, specify as an empty string if no permissions of this classification are desired. Flag values (pipe separated):
|
pushnotification_id | string\d+ Push Notification ID Transaction results under this group will be included in push notifications for the corresponding push notification id. ID returned from |
custom_customer_fields | string Comma separated list of custom fields to be stored with customers Not allowed to be set if parent group has |
company | string Company name of group owner |
gateway_name | string Name of the gateway product This is the name of the gateway product the merchant is using. This differs from the Company Name. For example, the company could be "Some Company Holdings, LLC." and they run the gateway "Super Gateway Payments". The merchant is using "Super Gateway Payments" and may not associate "Some Company Holdings, LLC." as their payment provider. |
contact_email | string Contact email for group owner |
contact_phone | string Contact phone number for group owner |
contact_street | string Contact street address for group owner |
contact_city | string Contact city component of address for group owner |
contact_state | string Contact state for group owner |
contact_zip | string Contact Zip or Postal code for group owner |
contact_country | string Contact country for group owner |
support_email | string Customer support email for group owner |
support_phone | string Customer support phone number for group owner |
support_url | string Customer support URL for group owner |
website_url | string Main company website for group |
portal_url | string URL for merchant portal access |
tos_url | string URL for group terms of service |
privacy_url | string URL for group privacy policy |
from_email | string From email to use when sending emails for the group |
notice_email | string Email address that are BCCd when merchant emails are sent. Does not include receipt or order invoice emails. Can be a comma separated list of multiple emails. |
order_domain | string Domain used for order invoices |
silent_whitelabel | string Default: "no" Enum: "yes" "no" Values:
|
{- "name": "ISO - Maverick Systems",
- "flags": "SHARE_TOKENS|REQUIRE_MFA",
- "parent_group_id": "67895432456",
- "su_perms": "ALL",
- "sys_perms": "ALL",
- "admin_perms": "ALL",
- "trans_perms": "ALL",
- "pushnotification_id": "56789098765",
- "custom_customer_fields": "height,weight",
- "company": "Company LLC.",
- "gateway_name": "Gateway Product",
- "contact_email": "email@email",
- "contact_phone": "555-555-5555",
- "contact_street": "124 6th Ln",
- "contact_city": "Jacksonville",
- "contact_state": "FL",
- "contact_zip": "32789",
- "contact_country": "USA",
- "support_email": "support@email",
- "support_phone": "555-555-5555",
- "from_email": "from@email",
- "notice_email": "notice@email",
- "silent_whitelabel": "yes"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "id": "36789654543"
}
List groups
The resulting report will contain these headers:
id, name, parent_group_id, group_depth, create_ts, upd_ts, flags, su_perms,
sys_perms, admin_perms, trans_perms, num_tokens, pushnotification_id,
custom_customer_fields, company, contact_name, contact_phone, contact_street,
contact_city, contact_state, contact_zip, contact_country, contact_email,
support_phone, support_url, website_url, support_email, portal_url, tos_url,
privacy_url, from_email, notice_email, order_domain, silent_whitelabel
When using JSON ouput the the groups under the specified group will be placed
in a groups
array. Each object in the arrary contains the above group
headers. If include_users
is specified then a users
list will be included
in the output. The user objects within the array will include the same fields
as "Get User Details". If include_profiles
is specified then a profiles
list will be included in the output. The user objects within the array will
include the same fields as "Get Profile Details".
libmonetra KVS equivalent for endpoint
action_sys
= group_list
name | string Query for specific group name Cannot be combined with:
|
id | string Example: id=36789654543 Group id Cannot be combined with:
|
json | object Enum: "yes" "no" Example: json=yes Output the data in a hierarchical json format instead of CSV Values:
|
flags | object Enum: "MODIFY_SELF" "SHARE_TOKENS" "PUSH_NOTIFICATION" "ACCOUNT_UPDATER" "WHITELABEL_BRANDING" "REQUIRE_MFA" Example: flags=SHARE_TOKENS|REQUIRE_MFA Flag values (pipe separated):
|
empty_groups | object Enum: "yes" "no" Example: empty_groups=no Used to locate 'dangling' groups with no subgroups and no profiles. It will, however, return groups that may contain users, but since these users couldn't access anything at all, this is expected as it is likely stale. Values:
|
ancestor_of | string Example: ancestor_of=56789654367 Group ID to list ancestors of (including specified group id) |
maxdepth | string Example: maxdepth=4 Maximum depth to display Default is unlimited. Specify 1 to see only self and children. |
include_users | object Enum: "yes" "no" Example: include_users=yes Include users in output. Can only be specified with JSON output. Values:
|
include_profiles | object Enum: "yes" "no" Example: include_profiles=yes Include profiles in output. Can only be specified with JSON output. Values:
|
include_token_stats | object Enum: "yes" "no" Example: include_token_stats=yes Include tokekn statistics in output Values:
|
merge_recommendations | object Enum: "yes" "no" Example: merge_recommendations=no List recommended groups for merging into other groups Find groups that have exactly 1 sub group, no propagatable flags (PUSH_NOTIFICATION, SHARE_TOKENS, WHITELABEL_BRANDING), no merchant profiles, and no users. Its parent must not be the top level as this is likely intentional organization. Any groups in this list may serve no purpose and should be merged into its parent. So taking a hierarchy like:
SUBGROUP1A would be the only group in the list recommended as it only contains 1 subgroup, no profiles, no users, and no propagatable flags. "PARTNER" would not be listed as its parent is "TOPLEVEL" even though it meets the other conditions. Values:
|
search | string Will perform a substring search across multiple fields |
curl -X GET 'https://testbox.monetra.com/api/v2/boarding/group' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=''
{- "report": "..."
}
Edit a Group
libmonetra KVS equivalent for endpoint
action_sys
= group_edit
id required | string Example: 36789654543 Group id |
addperm_propagate | string Default: "no" Enum: "yes" "no" Propagate permission changes If any of sys, admin, or trans permissions is being added to a group, whether it should be recursively propagated to all child groups and users. Defaults to Values:
|
addperm_su_perms_mask | string System restricted permissions that should not be propagated A mask of system restricted permissions on a group or user required to propagate a new permission. Will not apply if the user or group doesn't meet the criteria. Used in conjunction with |
addperm_sys_perms_mask | string System permissions that should not be propagated A mask of system permissions on a group or user required to propagate a new permission. Will not apply if the user or group doesn't meet the criteria. Used in conjunction with |
addperm_admin_perms_mask | string Administrative permissions that should not be propagated A mask of administrative permissions on a group or user required to propagate a new permission. Will not apply if the user or group doesn't meet the criteria. Used in conjunction with |
addperm_trans_perms_mask | string Transaction permissions that should not be propagated A mask of transaction permissions on a group or user required to propagate a new permission. Will not apply if the user or group doesn't meet the criteria. Used in conjunction with |
name | string Group name |
flags | string Enum: "MODIFY_SELF" "SHARE_TOKENS" "PUSH_NOTIFICATION" "ACCOUNT_UPDATER" "WHITELABEL_BRANDING" "REQUIRE_MFA" Flag values (pipe separated):
|
su_perms | string Enum: "ALL" "IMPORTEXPORT" "MAINTENANCE" "P2PE_BDK_GENERATE" "P2PE_BDK_DEACTIVATE" "P2PE_BDK_LIST" "P2PE_BDK_EDIT" "P2PE_BDK_EXPORT" "P2PE_BDK_PRINT" "P2PE_BDK_KCV" "P2PE_DEVICE_PROVISION" "P2PE_DEVICE_DEACTIVATE" "P2PE_DEVICE_LIST" "P2PE_DEVICE_EDIT" "E2EE_KEY_GENERATE" "E2EE_KEY_EDIT" "E2EE_KEY_LIST" "E2EE_KEY_DEACTIVATE" "BIGBATCH_MANAGE" "BIGBATCH" "BIGBATCH_SETTLE" "PRODUCT_LICENSE" "PUSHNOTIFICATION" "TOKEN_EXPORT" System restricted access permissions Pipe ('|') separate list of permissions. 'ALL' keyword indicates all available permissions. When adding or editing a user or group, if not specified, defaults to same perms as the parent group. Cannot exceed the perms of the parent group. May exceed permissions of user performing request. When creating an API Key, must set explicitly requested permissions, no inheritance. In any add or edit operation, specify as an empty string if no permissions of this classification are desired. Flag values (pipe separated):
|
sys_perms | string Enum: "ALL" "V8_COMPLEX_EMULATION" "GETPERMS" "GROUP_ADD" "GROUP_EDIT" "GROUP_MOVE" "GROUP_DEL" "GROUP_LIST" "USER_ADD" "USER_EDIT" "USER_MOVE" "USER_DEL" "USER_LIST" "USER_ENABLE" "USER_DISABLE" "USER_PASSWD" "USER_UNLOCK" "PROFILE_ADD" "PROFILE_EDIT" "PROFILE_MOVE" "PROFILE_DEL" "PROFILE_LIST" "PROFILE_STATS" "PROFILE_ENABLE" "PROFILE_DISABLE" "ROUTE_ADD" "ROUTE_EDIT" "ROUTE_DEL" "ROUTE_LIST" "ROUTE_FIELDS" "CRON" "INFO" "SETLOGGING" "REGISTER_CLIENT" "SKYLINK_MANAGE" "APIKEYS" "MFA_GENERATE" "MFA_RESET" "SECURITY_QUESTIONS" System access permissions Pipe ('|') separate list of permissions. 'ALL' keyword indicates all available permissions. When adding or editing a user or group, if not specified, defaults to same perms as the parent group. Cannot exceed the perms of the parent group. May exceed permissions of user performing request. When creating an API Key, must set explicitly requested permissions, no inheritance. In any add or edit operation, specify as an empty string if no permissions of this classification are desired. Flag values (pipe separated):
|
admin_perms | string Enum: "ALL" "REPORT_TRAN" "REPORT_TOTALS" "REPORT_CHARTDATA" "REPORT_QUEUE" "BATCH_CLEAR" "BATCH_SET" "BATCH_RESCIND" "BATCH_CLOSE" "TRAN_EDIT" "TRAN_NULLIFY" "TRAN_DETAIL" "TRAN_RECEIPT" "TRAN_IMPORT" "TRAN_EXPORT" "MERCH_INFO" "IMAGE_ADD" "IMAGE_DEL" "IMAGE_GET" "TOKEN_ADD" "TOKEN_EDIT" "TOKEN_DEL" "TOKEN_SCHEDULE" "TOKEN_LIST" "CUSTOMER_ADD" "CUSTOMER_EDIT" "CUSTOMER_DEL" "CUSTOMER_LIST" "TICKETREQUEST" "LEVEL3" "TRAN_EXPORT" "TRAN_IMPORT" "PRODMANAGE" "PRODLIST" "ORDERMANAGE" "ORDERLIST" "ORDERREPORT" "CARDDENYLIST" "P2PE" "STANDINKEY_GENERATE" Administrative access permissions Pipe ('|') separate list of permissions. 'ALL' keyword indicates all available permissions. When adding or editing a user or group, if not specified, defaults to same perms as the parent group. Cannot exceed the perms of the parent group. May exceed permissions of user performing request. When creating an API Key, must set explicitly requested permissions, no inheritance. In any add or edit operation, specify as an empty string if no permissions of this classification are desired. Flag values (pipe separated):
|
trans_perms | string Enum: "ALL" "VERIFYONLY" "SALE" "PREAUTH" "REVERSAL" "INCREMENTAL" "PREAUTHCOMPLETE" "FORCE" "CAPTURE" "VOID" "ADJUST" "REFUND" "ACTIVATE" "BALANCEINQ" "CASHOUT" "TOREVERSAL" "MERCHRETURN" "ISSUE" "TIP" "EBTFSSALE" "EBTFSRETURN" "EBTFSVOUCHER" "EBTFSBALANCE" "EBTCBSALE" "EBTCBCASH" "EBTCBBALANCE" "CHECKVERIFY" "CHECKCONVONLY" "CHECKCONVVRFY" "CHECKCONVGUAR" "CHECKCONVOVER" "CHECKIMAGEUPLOAD" "SETTLE" "SETTLERFR" "TERMLOAD" "INTERACMAC" "EMVCOMPLETE" "ALTPAYMENTINIT" "CARDTYPE" Transaction access permissions Pipe ('|') separate list of permissions. 'ALL' keyword indicates all available permissions. When adding or editing a user or group, if not specified, defaults to same perms as the parent group. Cannot exceed the perms of the parent group. May exceed permissions of user performing request. When creating an API Key, must set explicitly requested permissions, no inheritance. In any add or edit operation, specify as an empty string if no permissions of this classification are desired. Flag values (pipe separated):
|
pushnotification_id | string\d+ Push Notification ID Transaction results under this group will be included in push notifications for the corresponding push notification id. ID returned from |
custom_customer_fields | string Comma separated list of custom fields to be stored with customers Not allowed to be set if parent group has |
company | string Company name of group owner |
gateway_name | string Name of the gateway product This is the name of the gateway product the merchant is using. This differs from the Company Name. For example, the company could be "Some Company Holdings, LLC." and they run the gateway "Super Gateway Payments". The merchant is using "Super Gateway Payments" and may not associate "Some Company Holdings, LLC." as their payment provider. |
contact_email | string Contact email for group owner |
contact_phone | string Contact phone number for group owner |
contact_street | string Contact street address for group owner |
contact_city | string Contact city component of address for group owner |
contact_state | string Contact state for group owner |
contact_zip | string Contact Zip or Postal code for group owner |
contact_country | string Contact country for group owner |
support_email | string Customer support email for group owner |
support_phone | string Customer support phone number for group owner |
support_url | string Customer support URL for group owner |
website_url | string Main company website for group |
portal_url | string URL for merchant portal access |
tos_url | string URL for group terms of service |
privacy_url | string URL for group privacy policy |
from_email | string From email to use when sending emails for the group |
notice_email | string Email address that are BCCd when merchant emails are sent. Does not include receipt or order invoice emails. Can be a comma separated list of multiple emails. |
order_domain | string Domain used for order invoices |
silent_whitelabel | string Default: "no" Enum: "yes" "no" Values:
|
{- "addperm_propagate": "no",
- "addperm_su_perms_mask": "TOKEN_EXPORT",
- "addperm_sys_perms_mask": "SETLOGGING",
- "addperm_admin_perms_mask": "TRAN_EXPORT|TRAN_IMPORT",
- "addperm_trans_perms_mask": "FORCE|ALTPAYMENTINIT",
- "name": "string",
- "flags": "SHARE_TOKENS|REQUIRE_MFA",
- "su_perms": "ALL",
- "sys_perms": "ALL",
- "admin_perms": "ALL",
- "trans_perms": "ALL",
- "pushnotification_id": "56789098765",
- "custom_customer_fields": "height,weight",
- "company": "Company LLC.",
- "gateway_name": "Gateway Product",
- "contact_email": "email@email",
- "contact_phone": "555-555-5555",
- "contact_street": "124 6th Ln",
- "contact_city": "Jacksonville",
- "contact_state": "FL",
- "contact_zip": "32789",
- "contact_country": "USA",
- "support_email": "support@email",
- "support_phone": "555-555-5555",
- "from_email": "from@email",
- "notice_email": "notice@email",
- "silent_whitelabel": "yes"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Get Group Detail
libmonetra KVS equivalent for endpoint
action_sys
= group_list
json
= no
id required | string Example: 36789654543 Group id |
curl -X GET 'https://testbox.monetra.com/api/v2/boarding/group/123' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=''
{- "id": "36789654543",
- "name": "ISO - Maverick Systems",
- "parent_group_id": "67895432456",
- "flags": "SHARE_TOKENS|REQUIRE_MFA",
- "create_ts": "2022-05-24 15:06:13 -0400",
- "upd_ts": "2022-05-24 15:06:13 -0400",
- "su_perms": "ALL",
- "sys_perms": "ALL",
- "admin_perms": "ALL",
- "trans_perms": "ALL",
- "pushnotification_id": "56789098765",
- "custom_customer_fields": "height,weight",
- "company": "Company LLC.",
- "gateway_name": "Gateway Product",
- "contact_email": "email@email",
- "contact_phone": "555-555-5555",
- "contact_street": "124 6th Ln",
- "contact_city": "Jacksonville",
- "contact_state": "FL",
- "contact_zip": "32789",
- "contact_country": "USA",
- "support_email": "support@email",
- "support_phone": "555-555-5555",
- "from_email": "from@email",
- "notice_email": "notice@email",
- "silent_whitelabel": "yes"
}
Delete a Group
libmonetra KVS equivalent for endpoint
action_sys
= group_del
id required | string Example: 36789654543 Group id |
curl -X DELETE 'https://testbox.monetra.com/api/v2/boarding/group/123' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=''
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Merge the source group into the specified group. Can only merge into a parent or sibling.
libmonetra KVS equivalent for endpoint
action_sys
= group_merge
id required | string Example: 36789654543 Group id |
source_group_id required | string Example: 67895432456 Source group to merge groups, users, and profiles from. |
curl -X PATCH 'https://testbox.monetra.com/api/v2/boarding/group/123/merge/456' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=' -d ''
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Move a Group from one parent to another
libmonetra KVS equivalent for endpoint
action_sys
= group_move
id required | string Example: 36789654543 Group id |
parent_group_id required | string Example: 67895432456 New parent group the specified group should be under |
curl -X PATCH 'https://testbox.monetra.com/api/v2/boarding/group/123/move/456' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=' -d ''
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Push notifications of transaction processing allows merchants to receive notification about tranactions in near real time. Push notifications can be configured to send information based on various criteria.
Push notification are HTTPS-POST requests to an integrator defined endpoint using JSON data as the transfer format. Push events are run on a timer to limit load on the system, transactions are sent every 30-or-so seconds per endpoint, therefore notification format is an array of transactions.
The endpoint must return a 200 HTTP response code in order to accept the data received. Any other response, or the inability to connect, will result in the notification being re-attempted at a later time.
End points optionally support authentication that can be configured with the endpoint. The authentication data will be sent by Monetra to the integrator's endpoint in order for the integrator to verify the data is being sent by Monetra.
Format
The output format is a JSON array of transactions, aggregated per endpoint every 30 seconds, only if there is data to send.
{
"transactions" : [
{
"username": "123456789:pos",
"profile_id": "492747293925853",
"profile_name": "myname",
"action_trans": "sale",
"code": "AUTH",
"ttid": "912314155123456",
"ts": "1567172149",
"tranflags": "HASAVS|DATAKEYED|NSF|PARTIALAUTH",
"txnstatus": "CAPTURED|ONLINE|SENSITIVEDATA",
"entrymode": "M",
"merchant": {
"indcode": "R",
"proc": "VITAL"
},
"request": {
"amount": "12.00",
"account": "1881",
"expdate": "0520",
"zip": "32606",
"ordernum": "1234",
"cardholdername": "John Doe",
"laneid": "1",
"tax": "1.00",
"merch_custom_fields": {
"myfield": "field data",
"anotherfield": "more data",
"...": "..."
},
"...": "..."
},
"response": {
"code": "AUTH",
"phard_code": "SUCCESS",
"msoft_code": "INT_SUCCESS",
"authamount": "11.00",
"verbiage": "PARTIAL APPROVAL",
"auth": "123456",
"avs": "GOOD",
"cv": "GOOD",
"cardtype": "VISA",
"item": "1234",
"batch": "123",
"pclevel": "2",
"cardlevel": "VISA_BUSINESS",
"...": "..."
},
"interchange": {
"transid": "123456789012345",
"...": "..."
},
},
{ ... }
]
}
Additional key value pairs may be present. Due to addintion data bein gadded to Monetra, by configuration of the endpoint, or through custom transaction fields. Integrators should read the data they are interested in and ignore anything remaining.
Creates a push notification endpoint
libmonetra KVS equivalent for endpoint
action_su
= pushnotification
pushnotification
= add
display_name required | string <= 2048 characters Push notification endpoint name |
url required | string <= 2048 characters URL where the notification data should be sent |
authtype | string Default: "NONE" Enum: "NONE" "BASIC" Type of authentication Monetra will use to authenticate with the endpoint Values:
|
eventflags | string Enum: "AUTH" "VERIFY" "SETTLE" "EDIT" "VOID" "DECLINED" "CREDIT" "DEBIT" "GIFT" "ACH" "EBT" "INTERCHANGE" Type of events and cards that should trigger notification Flag values (pipe separated):
|
authname | string Name of the authentication data |
authdata | string[a-zA-Z0-9+/\n]+={0,2}[\n]* Authentication data Data used by the Data must be base64 encoded. When |
{- "display_name": "ISO - Maverick Systems",
- "authtype": "NONE",
- "eventflags": "AUTH|VOID|SETTLE|CREDIT|DEBIT",
- "authname": "Partner - BB Books",
- "authdata": "..."
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "id": "56789098765"
}
List push notification endpoints
The resulting report will contain these headers:
id, display_name, url, eventflags, authtype
libmonetra KVS equivalent for endpoint
action_su
= pushnotification
pushnotification
= list
curl -X GET 'https://testbox.monetra.com/api/v2/boarding/pushnotification' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=''
{- "report": "..."
}
Edits a push notification endpoint
libmonetra KVS equivalent for endpoint
action_su
= pushnotification
pushnotification
= edit
id required | string Example: 56789098765 Push notification id |
display_name | string <= 128 characters Push notification endpoint name |
url | string URL where the notification data should be sent |
authtype | string Default: "NONE" Enum: "NONE" "BASIC" Type of authentication Monetra will use to authenticate with the endpoint Values:
|
eventflags | string Enum: "AUTH" "VERIFY" "SETTLE" "EDIT" "VOID" "DECLINED" "CREDIT" "DEBIT" "GIFT" "ACH" "EBT" "INTERCHANGE" Type of events and cards that should trigger notification Flag values (pipe separated):
|
authname | string Name of the authentication data |
authdata | string[a-zA-Z0-9+/\n]+={0,2}[\n]* Authentication data Data used by the Data must be base64 encoded. When |
{- "display_name": "James Dean",
- "url": "string",
- "authtype": "NONE",
- "eventflags": "AUTH|VOID|SETTLE|CREDIT|DEBIT",
- "authname": "Partner - BB Books",
- "authdata": "..."
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Push notification endpoint details
libmonetra KVS equivalent for endpoint
action_su
= pushnotification
pushnotification
= list
id required | string Example: 56789098765 Push notification id |
curl -X GET 'https://testbox.monetra.com/api/v2/boarding/pushnotification/567898765' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=''
{- "id": "56789098765",
- "display_name": "ISO - Maverick Systems",
- "eventflags": "AUTH|VOID|SETTLE|CREDIT|DEBIT",
- "authtype": "NONE"
}
Removes a push notification endpoint
libmonetra KVS equivalent for endpoint
action_su
= pushnotification
pushnotification
= del
id required | string Example: 56789098765 Push notification id |
curl -X DELETE 'https://testbox.monetra.com/api/v2/boarding/pushnotification/567898765' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=''
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Get profiles for push notification endpoint
Provides a list of all profiles attached to a specific push notification endpoint.
The resulting report will contain these headers:
profile_id, display_name, endpoint_id, endpoint_url
libmonetra KVS equivalent for endpoint
action_su
= pushnotification
pushnotification
= listprofiles
id required | string Example: 56789098765 Push notification id |
curl -X GET 'https://testbox.monetra.com/api/v2/boarding/pushnotification/567898765/profiles' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=''
{- "report": "..."
}
List profiles for push notification endpoints
Provides a list of all profiles that are attached to any push notification endpoint.
The resulting report will contain these headers:
profile_id, display_name, endpoint_id, endpoint_url
libmonetra KVS equivalent for endpoint
action_su
= pushnotification
pushnotification
= listprofiles
curl -X GET 'https://testbox.monetra.com/api/v2/boarding/pushnotification/profiles' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=''
{- "report": "..."
}
Profiles define a "merchant", the terminal configuration, and processing options. The "merchant" is often defined as a store. Since there are store specific information, such as address, that can be defined for operations like receipt printing.
A profile will contain routes which define transaction routing for authorization and settlement. For example, a profile may have different routes (processors) for credit, gift and ACH.
Creates a Profile
libmonetra KVS equivalent for endpoint
action_sys
= profile_add
group_id | string\d+ Group ID If not specified, defaults to the same group as the current user. |
profile_name | string <= 128 characters Name for profile Internal name within the system Not required to be unique |
name required | string <= 128 characters Name for profile Not required to be unique Used for displaying to customers Not required to be unique Will be copied into |
notify_email | string <= 2048 characters List of email addresses for notifications (e.g. settlement emails) |
flags | string Enum: "ENCRYPTEDONLY" "EMVSUPRESSSIG" "EMVPIN_STANDIN_ALLOWED" "EMVODA_NONE_STANDIN_ALLOWED" "DEBIT_STANDIN_ALLOWED" "PREPOP_LEVEL3" "PREPOP_TAX" "ACCOUNT_UPDATER" "RECEIVE_RECEIPTS_DETAIL" "RECEIVE_RECEIPTS_RECURRING" "RECEIVE_RECEIPTS_INVOICE" "RECEIVE_RECEIPTS_HOSTEDPAGE" "RECURRING_SKIPMISSED" "ORDERS_REQ_LEVEL3" "RATEQUAL_NONTAX" "ALLOW_INVOICE_SMS" "ALLOW_INVOICING" "DISABLE_MSR_ENTRY" "CARDDENYLIST_CHECK" "CARDDENYLIST_DECLINE" "SETTLE_EMAIL_DETAILS" "AUTO_PINLESS_DEBIT" "3DS_DISABLE_CHALLENGES" "3DS_AUTO_DECLINE" "VERIFY_ACH" Merchant flags Flags can be combined into a pipe ('|') separate list. Flag values (pipe separated):
|
custom_trans_fields | string <= 1024 characters Comma delimited list of merchant-custom fields |
req_trans_fields | string <= 1024 characters Comma delimited list of fields that are required for transactions to process |
req_order_fields | string <= 1024 characters Comma delimited list of fields that are required for orders to process |
vanity_url_prefix | string <= 1024 characters Used for invoicing, the url prefix for the merchant. Unique system-wide |
indcode required | string Enum: "R" "E" "M" "F" "H" "AF" "G" "RS" Industry transactions will take place as Values:
|
fraudautodeny | string Enum: "NEVER" "DENY_AVSZIP" "DENY_AVSSTREET" "DENY_CV" "DENY_NOAUTO" Fraud Check Auto Denial with Reversal Fraud Check Auto Denial with Reversal allows a merchant to specify what
conditions should trigger an automatic reversal (and thus returning a
denial to the clerk or customer) even if the issuer otherwise approved
the transaction. This allows the merchant to automatically reject
transactions with bad AVS or CID data without needing to code such
logic within their own systems. The conditions used to trigger this logic
may be specified on a global level, but also overwritten on a per-merchant
basis via the Merchant Profile. Performing the auto-deny logic can also be
enabled or disabled on a per-transaction basis via the If a merchants whats to use this functionality, the recommended setting is
Flag values (pipe separated):
|
emv_termcaps | string Enum: "NOSIG" "ONLINEPIN" "NOOFFLINEPIN" "CASHBACK" "PINBYPASSCREDIT" "PINBYPASSUSDEBIT" Capabilities of the EMV terminal being used These options should correspond to device certifications. Flag values (pipe separated):
|
emv_testmode | string Default: "no" Enum: "yes" "no" Whether the terminal is operation in a test environment. If this setting does not correspond type of card (test vs production) being used, it will result in transaction failures Values:
|
emv_contact_nocvm_limit | string\d+ Transactions for amounts under this limit will not request Card Holder Verification (pin, signature, etc) when the contact interface is used |
emv_ctls_nocvm_limit | string\d+ Transactions for amounts under this limit will not request Card Holder Verification (pin, signature, etc) when the contactless interface is used |
countrycode | string\d{3} Default: "840" ISO 3166-1 numeric country code where processing is taking place |
currencycode | string\d{3} Default: "840" ISO 4217 numeric currency code The currency of the merchant the transaction will be processing as |
logo | string Base64 encoded image of the merchant's logo |
logo_type | string |
external_id | string External ID for the profile |
descr | string <= 512 characters Description of the profile |
addr1 | string <= 512 characters Address of merchant location Line 1 |
addr2 | string <= 512 characters Address of merchant location Line 2 |
addr3 | string <= 512 characters Address of merchant location Line 3 |
phone | string[-+0-9() .]* Phone number of the merchant location This will be shown to customers |
string Email address of the merchant location This will be shown to customers | |
url | string Merchant's website URL This will be shown to customers |
tz | string Timezone of the merchant and where they will be accepting transactions. Use 'System Information Timezones' to get a list of supported timezones that can be specified. Default is the system timezone if not set. |
lang | string Default: "EN" Enum: "EN" "FR" "ES" Default language used at the merchant's location Interfaces displayed to the merchnat and customer will attempt to use this language. Values:
|
cashback | string(?i)(\d+|\||O)* Merchant allows cashback and this is a pipe ('|') delimited list of whole number to prompt. Or the letter 'O' for Other (user prompting) |
cashbackmax | string\d*(\.\d{0,2})? Maximum amount allowed to be requested by a customer for cashback |
cashback_purchmin | string\d*(\.\d{0,2})? Minimum transaction amount required to allow a customer cashback |
tippercent | string(?i)(\d+|\||O)* Merchant accepts tips and this is a pipe ('|') delimited list of whole percentages to prompt. Or the letter 'O' for Other (user prompting) |
msr_nosig_limit | string\d+ Transactions for amounts under this limit will not request signagure when the MSR interface is used |
enc_provider | string Name of external encryption provider to use (e.g. bluefin) Must have |
l3_commoditycode | string[0-9a-zA-Z]{8,12} Contains an international description code of the individual good or service being supplied Required if The acquiring bank or processor should provide the merchant an updated listing of currently defined codes. Please note that this is different from the 4-character summary commodity code. Codes can be found online at http://www.unspsc.org The code itself will not be validated; only the format is validated. |
l3_productcode | string[0-9a-zA-Z ]{1,12} Merchant-defined code for the item being purchased, such as a UPC #, SKU #, or Item # Required if |
l3_description | string[0-9a-zA-Z ]{1,26} Merchant-defined description of the item or service being sold Required if This is a free-form field. |
tax_rate_autopop | string(\d?\d?\.?\d?\d?)|NT Amount of tax to apply to transactions when tax is not provided. Default tax rate for location. Required if |
txn_export_key | string Public key for transaction export when using the Transaction Export action Export key, in this format: ID returned from P2EE provision request followed by pipe separator (|) followed by RSA public key data, including standard start and end sentinels (i.e., -----{BEGIN|END} PUBLIC KEY-----) and keeping newlines intact. |
3ds_provider | string Name of external 3DS provider to use (e.g. paay) External providers require a direct relationship. If in doubt, do not set this. |
3ds_provider_merchid | string Merchant/account identifier assigned by external 3DS provider External providers require a direct relationship. If in doubt, do not set this. |
{- "group_id": "36789654543",
- "profile_name": "Pizza Palace",
- "name": "Pizza Palace",
- "notify_email": "email@email",
- "flags": "EMVSUPRESSSIG|EMVPIN_STANDIN_ALLOWED|EMVODA_NONE_STANDIN_ALLOWED|DEBIT_STANDIN_ALLOWED|RECURRING_SKIPMISSED|ALLOW_INVOICE_SMS|ALLOW_INVOICING",
- "custom_trans_fields": "alpha,omega",
- "req_trans_fields": "ordernum",
- "req_order_fields": "ordernum",
- "vanity_url_prefix": "pizza_palace",
- "indcode": "R",
- "fraudautodeny": "DENY_NOAUTO",
- "emv_termcaps": "NOSIG|ONLINEPIN|PINBYPASSCREDIT|PINBYPASSUSDEBIT",
- "emv_testmode": "no",
- "emv_contact_nocvm_limit": "100.00",
- "emv_ctls_nocvm_limit": "9999.99",
- "countrycode": "840",
- "currencycode": "840",
- "logo": "...",
- "logo_type": "string",
- "external_id": "string",
- "descr": "BB Books store 4",
- "addr1": "152 Main St",
- "addr2": "Jacksonville FL",
- "addr3": "32034",
- "phone": "555-555-5555",
- "email": "email@email",
- "tz": "America/New_York",
- "lang": "EN",
- "cashback": "5|10|20",
- "cashbackmax": "50.00",
- "cashback_purchmin": "25.00",
- "tippercent": "15|20|25|O",
- "msr_nosig_limit": "200.00",
- "enc_provider": "bluefin",
- "l3_commoditycode": "R676D2452X",
- "l3_productcode": "GHF7653",
- "l3_description": "Fork",
- "tax_rate_autopop": "NT",
- "txn_export_key": "...",
- "3ds_provider": "paay",
- "3ds_provider_merchid": "ABC-123"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "id": "78965743785967"
}
List profiles
The resulting report will contain these headers:
id, profile_name, group_id, group_depth, flags, status, indcode, create_ts,
upd_ts, notify_email, custom_trans_fields, req_trans_fields, vanity_url_prefix,
tokengroup_id, pushnotification_id, whitelabelgroup_id, fraudautodeny,
emv_termcaps, emv_testmode, emv_contact_nocvm_limit, emv_ctls_nocvm_limit,
countrycode, currencycode, name, descr, addr1, addr2, addr3, phone, email, url,
tz, lang, cashback, cashbackmax, cashback_purchmin, tippercent,
msr_nosig_limit, enc_provider, l3_commoditycode, l3_description, l3_productcode,
3ds_provider, 3ds_provider_merchid
libmonetra KVS equivalent for endpoint
action_sys
= profile_list
group_id | string Example: group_id=36789654543 Group identifier |
profile_name | string Example: profile_name=Pizza Palace Name for profile Internal name within the system Not required to be unique |
flags | object Enum: "ENCRYPTEDONLY" "EMVSUPRESSSIG" "EMVPIN_STANDIN_ALLOWED" "EMVODA_NONE_STANDIN_ALLOWED" "DEBIT_STANDIN_ALLOWED" "PREPOP_LEVEL3" "PREPOP_TAX" "ACCOUNT_UPDATER" "RECEIVE_RECEIPTS_DETAIL" "RECEIVE_RECEIPTS_RECURRING" "RECEIVE_RECEIPTS_INVOICE" "RECEIVE_RECEIPTS_HOSTEDPAGE" "RECURRING_SKIPMISSED" "ORDERS_REQ_LEVEL3" "RATEQUAL_NONTAX" "ALLOW_INVOICE_SMS" "ALLOW_INVOICING" "DISABLE_MSR_ENTRY" "CARDDENYLIST_CHECK" "CARDDENYLIST_DECLINE" "SETTLE_EMAIL_DETAILS" "AUTO_PINLESS_DEBIT" "3DS_DISABLE_CHALLENGES" "3DS_AUTO_DECLINE" "VERIFY_ACH" Example: flags=EMVSUPRESSSIG|EMVPIN_STANDIN_ALLOWED|EMVODA_NONE_STANDIN_ALLOWED|DEBIT_STANDIN_ALLOWED|RECURRING_SKIPMISSED|ALLOW_INVOICE_SMS|ALLOW_INVOICING Merchant flags Flags can be combined into a pipe ('|') separate list. Flag values (pipe separated):
|
status | object Enum: "ACTIVE" "DISABLED" Example: status=ACTIVE Status of the profile Values:
|
maxdepth | string Example: maxdepth=4 Maximum depth to display Default is unlimited. Specify 1 to see only self and children. |
search | string Will perform a substring search across multiple fields |
curl -X GET 'https://testbox.monetra.com/api/v2/boarding/profile' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=''
{- "report": "..."
}
Disable Profile that is enabled
Will return failure if profile is not currently enabled.
libmonetra KVS equivalent for endpoint
action_sys
= profile_disable
id required | string Example: 78965743785967 Merchant profile identifier |
curl -X PATCH 'https://testbox.monetra.com/api/v2/boarding/profile/974893/disable' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=''
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Edits a Profile
libmonetra KVS equivalent for endpoint
action_sys
= profile_edit
id required | string Example: 78965743785967 Merchant profile identifier |
name | string <= 128 characters Name for profile Not required to be unique Used for displaying to customers Not required to be unique Will be copied into |
profile_name | string <= 128 characters Name for profile Internal name within the system Not required to be unique |
notify_email | string <= 2048 characters List of email addresses for notifications (e.g. settlement emails) |
flags | string Enum: "ENCRYPTEDONLY" "EMVSUPRESSSIG" "EMVPIN_STANDIN_ALLOWED" "EMVODA_NONE_STANDIN_ALLOWED" "DEBIT_STANDIN_ALLOWED" "PREPOP_LEVEL3" "PREPOP_TAX" "ACCOUNT_UPDATER" "RECEIVE_RECEIPTS_DETAIL" "RECEIVE_RECEIPTS_RECURRING" "RECEIVE_RECEIPTS_INVOICE" "RECEIVE_RECEIPTS_HOSTEDPAGE" "RECURRING_SKIPMISSED" "ORDERS_REQ_LEVEL3" "RATEQUAL_NONTAX" "ALLOW_INVOICE_SMS" "ALLOW_INVOICING" "DISABLE_MSR_ENTRY" "CARDDENYLIST_CHECK" "CARDDENYLIST_DECLINE" "SETTLE_EMAIL_DETAILS" "AUTO_PINLESS_DEBIT" "3DS_DISABLE_CHALLENGES" "3DS_AUTO_DECLINE" "VERIFY_ACH" Merchant flags Flags can be combined into a pipe ('|') separate list. Flag values (pipe separated):
|
custom_trans_fields | string <= 1024 characters Comma delimited list of merchant-custom fields |
req_trans_fields | string <= 1024 characters Comma delimited list of fields that are required for transactions to process |
req_order_fields | string <= 1024 characters Comma delimited list of fields that are required for orders to process |
vanity_url_prefix | string <= 1024 characters Used for invoicing, the url prefix for the merchant. Unique system-wide |
indcode | string Enum: "R" "E" "M" "F" "H" "AF" "G" "RS" Industry transactions will take place as Values:
|
fraudautodeny | string Enum: "NEVER" "DENY_AVSZIP" "DENY_AVSSTREET" "DENY_CV" "DENY_NOAUTO" Fraud Check Auto Denial with Reversal Fraud Check Auto Denial with Reversal allows a merchant to specify what
conditions should trigger an automatic reversal (and thus returning a
denial to the clerk or customer) even if the issuer otherwise approved
the transaction. This allows the merchant to automatically reject
transactions with bad AVS or CID data without needing to code such
logic within their own systems. The conditions used to trigger this logic
may be specified on a global level, but also overwritten on a per-merchant
basis via the Merchant Profile. Performing the auto-deny logic can also be
enabled or disabled on a per-transaction basis via the If a merchants whats to use this functionality, the recommended setting is
Flag values (pipe separated):
|
emv_termcaps | string Enum: "NOSIG" "ONLINEPIN" "NOOFFLINEPIN" "CASHBACK" "PINBYPASSCREDIT" "PINBYPASSUSDEBIT" Capabilities of the EMV terminal being used These options should correspond to device certifications. Flag values (pipe separated):
|
emv_testmode | string Default: "no" Enum: "yes" "no" Whether the terminal is operation in a test environment. If this setting does not correspond type of card (test vs production) being used, it will result in transaction failures Values:
|
emv_contact_nocvm_limit | string\d+ Transactions for amounts under this limit will not request Card Holder Verification (pin, signature, etc) when the contact interface is used |
emv_ctls_nocvm_limit | string\d+ Transactions for amounts under this limit will not request Card Holder Verification (pin, signature, etc) when the contactless interface is used |
countrycode | string\d{3} Default: "840" ISO 3166-1 numeric country code where processing is taking place |
currencycode | string\d{3} Default: "840" ISO 4217 numeric currency code The currency of the merchant the transaction will be processing as |
logo | string Base64 encoded image of the merchant's logo |
logo_type | string |
external_id | string External ID for the profile |
descr | string <= 512 characters Description of the profile |
addr1 | string <= 512 characters Address of merchant location Line 1 |
addr2 | string <= 512 characters Address of merchant location Line 2 |
addr3 | string <= 512 characters Address of merchant location Line 3 |
phone | string[-+0-9() .]* Phone number of the merchant location This will be shown to customers |
string Email address of the merchant location This will be shown to customers | |
url | string Merchant's website URL This will be shown to customers |
tz | string Timezone of the merchant and where they will be accepting transactions. Use 'System Information Timezones' to get a list of supported timezones that can be specified. Default is the system timezone if not set. |
lang | string Default: "EN" Enum: "EN" "FR" "ES" Default language used at the merchant's location Interfaces displayed to the merchnat and customer will attempt to use this language. Values:
|
cashback | string(?i)(\d+|\||O)* Merchant allows cashback and this is a pipe ('|') delimited list of whole number to prompt. Or the letter 'O' for Other (user prompting) |
cashbackmax | string\d*(\.\d{0,2})? Maximum amount allowed to be requested by a customer for cashback |
cashback_purchmin | string\d*(\.\d{0,2})? Minimum transaction amount required to allow a customer cashback |
tippercent | string(?i)(\d+|\||O)* Merchant accepts tips and this is a pipe ('|') delimited list of whole percentages to prompt. Or the letter 'O' for Other (user prompting) |
msr_nosig_limit | string\d+ Transactions for amounts under this limit will not request signagure when the MSR interface is used |
enc_provider | string Name of external encryption provider to use (e.g. bluefin) Must have |
l3_commoditycode | string[0-9a-zA-Z]{8,12} Contains an international description code of the individual good or service being supplied Required if The acquiring bank or processor should provide the merchant an updated listing of currently defined codes. Please note that this is different from the 4-character summary commodity code. Codes can be found online at http://www.unspsc.org The code itself will not be validated; only the format is validated. |
l3_productcode | string[0-9a-zA-Z ]{1,12} Merchant-defined code for the item being purchased, such as a UPC #, SKU #, or Item # Required if |
l3_description | string[0-9a-zA-Z ]{1,26} Merchant-defined description of the item or service being sold Required if This is a free-form field. |
tax_rate_autopop | string(\d?\d?\.?\d?\d?)|NT Amount of tax to apply to transactions when tax is not provided. Default tax rate for location. Required if |
txn_export_key | string Public key for transaction export when using the Transaction Export action Export key, in this format: ID returned from P2EE provision request followed by pipe separator (|) followed by RSA public key data, including standard start and end sentinels (i.e., -----{BEGIN|END} PUBLIC KEY-----) and keeping newlines intact. |
3ds_provider | string Name of external 3DS provider to use (e.g. paay) External providers require a direct relationship. If in doubt, do not set this. |
3ds_provider_merchid | string Merchant/account identifier assigned by external 3DS provider External providers require a direct relationship. If in doubt, do not set this. |
{- "name": "Pizza Palace",
- "profile_name": "Pizza Palace",
- "notify_email": "email@email",
- "flags": "EMVSUPRESSSIG|EMVPIN_STANDIN_ALLOWED|EMVODA_NONE_STANDIN_ALLOWED|DEBIT_STANDIN_ALLOWED|RECURRING_SKIPMISSED|ALLOW_INVOICE_SMS|ALLOW_INVOICING",
- "custom_trans_fields": "alpha,omega",
- "req_trans_fields": "ordernum",
- "req_order_fields": "ordernum",
- "vanity_url_prefix": "pizza_palace",
- "indcode": "R",
- "fraudautodeny": "DENY_NOAUTO",
- "emv_termcaps": "NOSIG|ONLINEPIN|PINBYPASSCREDIT|PINBYPASSUSDEBIT",
- "emv_testmode": "no",
- "emv_contact_nocvm_limit": "100.00",
- "emv_ctls_nocvm_limit": "9999.99",
- "countrycode": "840",
- "currencycode": "840",
- "logo": "...",
- "logo_type": "string",
- "external_id": "string",
- "descr": "BB Books store 4",
- "addr1": "152 Main St",
- "addr2": "Jacksonville FL",
- "addr3": "32034",
- "phone": "555-555-5555",
- "email": "email@email",
- "tz": "America/New_York",
- "lang": "EN",
- "cashback": "5|10|20",
- "cashbackmax": "50.00",
- "cashback_purchmin": "25.00",
- "tippercent": "15|20|25|O",
- "msr_nosig_limit": "200.00",
- "enc_provider": "bluefin",
- "l3_commoditycode": "R676D2452X",
- "l3_productcode": "GHF7653",
- "l3_description": "Fork",
- "tax_rate_autopop": "NT",
- "txn_export_key": "...",
- "3ds_provider": "paay",
- "3ds_provider_merchid": "ABC-123"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Profile details
libmonetra KVS equivalent for endpoint
action_sys
= profile_list
id required | string Example: 78965743785967 Merchant profile identifier |
curl -X GET 'https://testbox.monetra.com/api/v2/boarding/profile/974893' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=''
{- "id": "78965743785967",
- "profile_name": "Pizza Palace",
- "name": "Pizza Palace",
- "group_id": "36789654543",
- "group_depth": "99",
- "flags": "SHARE_TOKENS|REQUIRE_MFA",
- "status": "ACTIVE",
- "indcode": "R",
- "create_ts": "2022-05-24 15:06:13 -0400",
- "upd_ts": "2022-05-24 15:06:13 -0400",
- "notify_email": "email@email",
- "custom_trans_fields": "alpha,omega",
- "req_trans_fields": "ordernum",
- "custom_order_fields": "special_instructions",
- "req_order_fields": "ordernum",
- "vanity_url_prefix": "pizza_palace",
- "tokengroup_id": "654356543",
- "tokengroup_name": "Pizza Palace Vault",
- "pushnotification_id": "56789098765",
- "whitelabelgroup_id": "647435678765",
- "fraudautodeny": "DENY_NOAUTO",
- "emv_termcaps": "NOSIG|ONLINEPIN|PINBYPASSCREDIT|PINBYPASSUSDEBIT",
- "emv_testmode": "no",
- "emv_contact_nocvm_limit": "100.00",
- "emv_ctls_nocvm_limit": "9999.99",
- "countrycode": "840",
- "currencycode": "840",
- "descr": "BB Books store 4",
- "addr1": "152 Main St",
- "addr2": "Jacksonville FL",
- "addr3": "32034",
- "phone": "555-555-5555",
- "email": "email@email",
- "external_id": "string",
- "tz": "America/New_York",
- "lang": "EN",
- "cashback": "5|10|20",
- "cashbackmax": "50.00",
- "cashback_purchmin": "25.00",
- "tippercent": "15|20|25|O",
- "msr_nosig_limit": "200.00",
- "enc_provider": "bluefin",
- "l3_commoditycode": "R676D2452X",
- "l3_description": "Fork",
- "l3_productcode": "GHF7653",
- "tax_rate_autopop": "NT"
}
Delete a Profile
libmonetra KVS equivalent for endpoint
action_sys
= profile_del
id required | string Example: 78965743785967 Merchant profile identifier |
curl -X DELETE 'https://testbox.monetra.com/api/v2/boarding/profile/974893' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=''
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Enable Profile that was disabled
Will return failure if profile is not currently disabled.
libmonetra KVS equivalent for endpoint
action_sys
= profile_enable
id required | string Example: 78965743785967 Merchant profile identifier |
curl -X PATCH 'https://testbox.monetra.com/api/v2/boarding/profile/974893/enable' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=''
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Gets the profile's card configuration
The resulting report will contain these headers:
cardtype, auth_proc, settle_proc, auth_merchid, settle_merchid, auth_route_id,
settle_route_id, indcode, trantypes, emv, mac_required, gift_binrange,
can_standin, auth_procfeatures, settle_procfeatures
libmonetra KVS equivalent for endpoint
action_admin
= merch_info
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
curl -X GET 'https://testbox.monetra.com/api/v2/boarding/profile/configuration/card' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Gets the profile's terminal configuration
libmonetra KVS equivalent for endpoint
action_admin
= merch_info
merch_info
= termparams
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
fetch_logo | object Enum: "yes" "no" Example: fetch_logo=yes Values:
|
curl -X GET 'https://testbox.monetra.com/api/v2/boarding/profile/configuration/terminal' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "name": "Pizza Palace",
- "addr1": "152 Main St",
- "addr2": "Jacksonville FL",
- "addr3": "32034",
- "phone": "555-555-5555",
- "email": "email@email",
- "countrycode": "840",
- "currencycode": "840",
- "indcode": "R",
- "lang": "EN",
- "cashback": "5|10|20",
- "cashback_purchmin": "25.00",
- "cashbackmax": "50.00",
- "tippercent": "15|20|25|O",
- "l3_description": "Fork",
- "l3_commoditycode": "R676D2452X",
- "l3_productcode": "GHF7653",
- "tax_rate": "1.14",
- "custom_fields": "alpha,omega",
- "req_fields": "ordernum,zip",
- "flags": "EMVSUPRESSSIG|EMVPIN_STANDIN_ALLOWED|EMVODA_NONE_STANDIN_ALLOWED|DEBIT_STANDIN_ALLOWED|RECURRING_SKIPMISSED|ALLOW_INVOICE_SMS|ALLOW_INVOICING",
- "logo": "...",
- "logo_type": "PNG"
}
List profile Merchant IDs
The resulting report will contain these headers:
id, profile_name, route_id, proc, mode, cardtypes, merchid, termid, divnum, authuser
libmonetra KVS equivalent for endpoint
action_sys
= profile_list_mids
id | string |
profile_name | string Example: profile_name=Pizza Palace Name for profile Internal name within the system Not required to be unique |
group_id | string Example: group_id=36789654543 Group identifier |
maxdepth | string Example: maxdepth=4 Maximum depth to display Default is unlimited. Specify 1 to see only self and children. |
curl -X GET 'https://testbox.monetra.com/api/v2/boarding/profile_mids' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=''
{- "report": "..."
}
Move a Profile from one group to another
libmonetra KVS equivalent for endpoint
action_sys
= profile_move
id required | string Example: 78965743785967 Merchant profile identifier |
group_id required | string\d+ Group identifier |
{- "group_id": "36789654543"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Routes define where authorization and settlement requests should be sent for processing. Routes are based on card type, and authorization vs settlement. Routes are tied to profiles.
It is common for merchants to have a single route for all cards, authorization and settlement.
The routes correspond to the processor the merchant is using and includes the processor specific configuration values.
Creates a Route
Routes provide configuration for how to process specific card types. Every profile needs at least one route in order to "route" transactions.
Profiles can have multiple routes differentiated by cardtype
and mode.
Multiple routes can be configured as long as any given card type is not
specified in multiple routes with the same mode.
For example:
Correct
Cardtype Visa -> route 0 Auth
Cardtype Visa -> route 1 Settle
Error
Cardtype Visa -> route 0 Auth
Cardtype Visa -> route 1 Both
Note: The route_id
is specific to the profile_id
, and not globally unique.
Routes are specific to processors and have additional fields that must be
retrieved by getting the list of "Processor Fields" for the specified proc
.
Processor specific fields will be additionally sent as required by the processor.
libmonetra KVS equivalent for endpoint
action_sys
= route_add
profile_id required | string Example: 78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
proc required | string Processor name as specified by 'Processor List' report under the |
mode required | string Enum: "AUTH" "SETTLE" "BOTH" Determines where the route is specify to authorization or settlement Flag values (pipe separated):
|
cardtypes required | string Enum: "VISA" "MC" "AMEX" "DISC" "DINERS" "JCB" "BML" "GIFT" "VISADEBIT" "MCDEBIT" "OTHERDEBIT" "EBT" "CHECK" "INTERAC" "CUP" "PAYPALEC" "ACH" Cardtypes Pipe (|) separated. Cardtype support is dependant on the processor. Not all processor support all cardtypes. Flag values (pipe separated):
|
route_id | string\d+ If wanted to assign a specific route id, may pass one between 0 and 32767. Otherwise will auto-assign lowest possible value and return |
emv_entrymodes | string Enum: "VISA_CONTACT" "VISA_CONTACTLESS" "MC_CONTACT" "MC_CONTACTLESS" "AMEX_CONTACT" "AMEX_CONTACTLESS" "DISC_CONTACT" "DISC_CONTACTLESS" "JCB_CONTACT" "JCB_CONTACTLESS" "INTERAC_CONTACT" "INTERAC_CONTACTLESS" "CUP_CONTACT" "CUP_CONTACTLESS" "USDEBIT_CONTACT" "USDEBIT_CONTACTLESS" "INTLDEBIT_CONTACT" "INTLDEBIT_CONTACTLESS" EMV Interfaces specific cards types can use Pipe (|) separated. EMV Entry Mode support is dependant on the processor. Not all processor support all entry modes for all cardtypes Flag values (pipe separated):
|
property name* additional property | string |
{- "proc": "loopback",
- "mode": "BOTH",
- "cardtypes": "VISA|MC",
- "route_id": "0",
- "emv_entrymodes": "VISA_CONTACT|SVISA_CONTACTLESS|MC_CONTACT",
- "property1": "string",
- "property2": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "route_id": "0"
}
Lists a summary of the routes for a profile
route_id, proc, cardtypes, mode
libmonetra KVS equivalent for endpoint
action_sys
= route_list
route_list
= summary
profile_id required | string Example: 78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
curl -X GET 'https://testbox.monetra.com/api/v2/boarding/profile/974893/route' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=''
{- "report": "..."
}
Edits a Route
libmonetra KVS equivalent for endpoint
action_sys
= route_edit
profile_id required | string Example: 78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
route_id required | string Example: 0 Processing route More than one route ID may be associated with a profile. This can happen when
split-routing is in use. The specific ID for the route being operated on must
be specified in requests that accept |
proc | string Processor name as specified by 'Processor List' report under the |
mode | string Enum: "AUTH" "SETTLE" "BOTH" Determines where the route is specify to authorization or settlement Flag values (pipe separated):
|
cardtypes | string Enum: "VISA" "MC" "AMEX" "DISC" "DINERS" "JCB" "BML" "GIFT" "VISADEBIT" "MCDEBIT" "OTHERDEBIT" "EBT" "CHECK" "INTERAC" "CUP" "PAYPALEC" "ACH" Cardtypes Pipe (|) separated. Cardtype support is dependant on the processor. Not all processor support all cardtypes. Flag values (pipe separated):
|
emv_entrymodes | string Enum: "VISA_CONTACT" "VISA_CONTACTLESS" "MC_CONTACT" "MC_CONTACTLESS" "AMEX_CONTACT" "AMEX_CONTACTLESS" "DISC_CONTACT" "DISC_CONTACTLESS" "JCB_CONTACT" "JCB_CONTACTLESS" "INTERAC_CONTACT" "INTERAC_CONTACTLESS" "CUP_CONTACT" "CUP_CONTACTLESS" "USDEBIT_CONTACT" "USDEBIT_CONTACTLESS" "INTLDEBIT_CONTACT" "INTLDEBIT_CONTACTLESS" EMV Interfaces specific cards types can use Pipe (|) separated. EMV Entry Mode support is dependant on the processor. Not all processor support all entry modes for all cardtypes Flag values (pipe separated):
|
property name* additional property | string |
{- "proc": "loopback",
- "mode": "BOTH",
- "cardtypes": "VISA|MC",
- "emv_entrymodes": "VISA_CONTACT|SVISA_CONTACTLESS|MC_CONTACT",
- "property1": "string",
- "property2": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Deletes a Route
libmonetra KVS equivalent for endpoint
action_sys
= route_del
profile_id required | string Example: 78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
route_id required | string Example: 0 Processing route More than one route ID may be associated with a profile. This can happen when
split-routing is in use. The specific ID for the route being operated on must
be specified in requests that accept |
curl -X DELETE 'https://testbox.monetra.com/api/v2/boarding/profile/974893/route/0' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=''
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Configuration details for a specific profile route
Will output as key/value pairs. Will return entries for proc
, cardtypes
,
mode
, emv_entrymodes
as well as any parameters found in a "Processing Fields"
request.
libmonetra KVS equivalent for endpoint
action_sys
= route_list
route_list
= detail
profile_id required | string Example: 78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
route_id required | string Example: 0 Processing route More than one route ID may be associated with a profile. This can happen when
split-routing is in use. The specific ID for the route being operated on must
be specified in requests that accept |
curl -X GET 'https://testbox.monetra.com/api/v2/boarding/profile/974893/route' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=''
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "property1": "string",
- "property2": "string"
}
Information about processors used for setting up routes.
Allow determine which processors are available to Monetra and the processor specific fields that are needed when setting up a route for a given processor.
List processors currently enabled
The resulting report will contain these headers:
proc, active, cardtypes, emv_entrymodes,
credit_trantypes, debit_trantypes, ebt_trantypes,
gift_trantypes, check_trantypes, supported_conns,
supported_modes, supported_industries, displayname,
helpdesk_phone, version, features
libmonetra KVS equivalent for endpoint
action_sys
= route_fields
route_fields
= proclist
proc | string Example: proc=loopback Processor Used to filter only a single processor |
curl -X GET 'https://testbox.monetra.com/api/v2/boarding/route/processor' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=''
{- "report": "..."
}
Processor specific route fields
Routes specify processors and every processor has additional processor specific route fields. This report will provide all of the fields unique to the processor that apply to the route.
The resulting report will contain these headers:
name, req_credit, req_debit, req_gift, req_ebt, req_dial, req_ip, req_https,
req_ssl, req_other, req_auth, req_settle, len_min, len_max, field_type,
submitteronly, multidiffer, displayname, desc
Example for "loopback" processor emulator:
{
"report": [
{
"name": "MERCHID",
"req_credit": "Yes",
"req_debit": "Yes",
"req_gift": "Yes",
"req_ebt": "Yes",
"req_dial": "No",
"req_ip": "Yes",
"req_https": "Yes",
"req_ssl": "Yes",
"req_other": "Yes",
"req_auth": "No",
"req_settle": "No",
"len_min": "13",
"len_max": "13",
"field_type": "VAR_TYPE_ANY",
"submitteronly": "No",
"multidiffer": "No",
"displayname": "Merchant (Retailer) ID",
"desc": "Unique merchant location number assigned by Moneris"
},
{
"name": "TERMID",
"req_credit": "Yes",
"req_debit": "Yes",
"req_gift": "Yes",
"req_ebt": "Yes",
"req_dial": "No",
"req_ip": "Yes",
"req_https": "Yes",
"req_ssl": "Yes",
"req_other": "Yes",
"req_auth": "No",
"req_settle": "No",
"len_min": "8",
"len_max": "8",
"field_type": "VAR_TYPE_ANY",
"submitteronly": "No",
"multidiffer": "Yes",
"displayname": "Terminal ID",
"desc": "Identifies the originations device for a POS transaction"
},
{
"name": "LANGUAGE_FR",
"req_credit": "No",
"req_debit": "No",
"req_gift": "No",
"req_ebt": "No",
"req_dial": "No",
"req_ip": "No",
"req_https": "No",
"req_ssl": "No",
"req_other": "No",
"req_auth": "No",
"req_settle": "No",
"len_min": "1",
"len_max": "5",
"field_type": "VAR_TYPE_BOOLEAN_DEF_FALSE",
"submitteronly": "No",
"multidiffer": "No",
"displayname": "Merchant Language French",
"desc": "The POS should use French for messages presented to the clerk from the processor"
},
{
"name": "CERTOVERRIDE",
"req_credit": "No",
"req_debit": "No",
"req_gift": "No",
"req_ebt": "No",
"req_dial": "No",
"req_ip": "No",
"req_https": "No",
"req_ssl": "No",
"req_other": "No",
"req_auth": "No",
"req_settle": "No",
"len_min": "1",
"len_max": "5",
"field_type": "VAR_TYPE_BOOLEAN_DEF_FALSE",
"submitteronly": "No",
"multidiffer": "No",
"displayname": "Cert Override Mode",
"desc": "In cert override mode some initialization parameters sent by Moneris will be ignored"
}
]
}
libmonetra KVS equivalent for endpoint
action_sys
= route_fields
route_fields
= procfields
proc required | string Example: loopback Processor name as specified by 'Processor List' report under the |
curl -X GET 'https://testbox.monetra.com/api/v2/boarding/route/processor/{proc}' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=''
{- "report": "..."
}
This section deals with the administration and management of Big Batch settlement through the Big Batch Aggregator subsystem, which enables an integrator to aggregate batches from multiple Merchant Users and settle them as one unit.
The basic concept behind Big Batch aggregation is that one administrative user will combine separate batches from multiple merchants into one Big Batch file, which will be sent to the processor as a single unit.
To achieve this, a Big Batch Aggregation account must first be set up. Multiple Big Batch Merchants will settle into the aggregation. The merchant profile's settle route will settle into the Big Batch Merchant account.
Settle flow will look like this
Profile -> settle route -> big batch merchant -> big batch aggrgation -> processor
The Big Batch Aggregation Account settles all batches that have been collected for all merchants setting into the aggrgation. When a profile settles into Big Batch strict validation checks will take place to ensure transactions contain all requred data.
Get the information for a big batch aggregation account
libmonetra KVS equivalent for endpoint
action_su
= bigbatch_manage
bigbatch_manage
= getacct
bbacctid required | string Example: 56789765678 ID of big batch aggregation account |
curl -X GET 'https://testbox.monetra.com/api/v2/bigbatch/account/{bbacctid}' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=''
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "descr": "Elavon account",
- "email": "email@email",
- "proc": "loopback"
}
Delete a Big Batch Aggregation Account
libmonetra KVS equivalent for endpoint
action_su
= bigbatch_manage
bigbatch_manage
= delacct
bbacctid required | string Example: 56789765678 ID of big batch aggregation account |
curl -X DELETE 'https://testbox.monetra.com/api/v2/boarding/bigbatch/678956786' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=''
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Edits a Big Batch Aggregation Account
libmonetra KVS equivalent for endpoint
action_su
= bigbatch_manage
bigbatch_manage
= editacct
bbacctid required | string Example: 56789765678 ID of big batch aggregation account |
descr | string <= 128 characters Description of the big batch account |
string <= 128 characters Notification email for events like settlement |
{- "descr": "Elavon account",
- "email": "email@email"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Creates a Big Batch Aggregation Account
libmonetra KVS equivalent for endpoint
action_su
= bigbatch_manage
bigbatch_manage
= addacct
proc required | string Processor name as specified by 'Processor List' report under the |
descr required | string <= 128 characters Description of the big batch account |
string <= 128 characters Notification email for events like settlement |
{- "proc": "loopback",
- "descr": "Elavon account",
- "email": "email@email"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "bbacctid": "56789765678"
}
List big batch aggregation accounts
The resulting report will contain these headers:
bbacctid, proc, descr, num_merchants
libmonetra KVS equivalent for endpoint
action_su
= bigbatch_manage
bigbatch_manage
= listacct
bbacctid | string Example: bbacctid=56789765678 ID of big batch aggregation account |
curl -X GET 'https://testbox.monetra.com/api/v2/bigbatch' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=''
{- "report": "..."
}
Get the information for a big batch merchant
libmonetra KVS equivalent for endpoint
action_su
= bigbatch_manage
bigbatch_manage
= getmerch
bbmerchid required | string Example: 9876545678934 ID of big batch merchant |
curl -X GET 'https://testbox.monetra.com/api/v2/bigbatch/merchant/{bbmerchid}' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=''
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "indcode": "R",
- "authtoken": "XSD8D42",
- "proc": "loopback",
- "emv_entrymodes": "VISA_CONTACT|SVISA_CONTACTLESS|MC_CONTACT",
- "emv_termcaps": "NOSIG|ONLINEPIN|PINBYPASSCREDIT|PINBYPASSUSDEBIT",
- "cardtypes": "VISA|MC",
- "bbacctid": "56789765678",
- "descr": "Elavon account",
- "property1": "string",
- "property2": "string"
}
Delete a Big Batch Merchant
libmonetra KVS equivalent for endpoint
action_su
= bigbatch_manage
bigbatch_manage
= delmerch
bbmerchid required | string Example: 9876545678934 ID of big batch merchant |
curl -X DELETE 'https://testbox.monetra.com/api/v2/boarding/bigbatch/merchant/963789563' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=''
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Edits a big batch merchant
If a bbacctid
is specified it will move the
merchant to a different big batch aggregation account.
libmonetra KVS equivalent for endpoint
action_su
= bigbatch_manage
bigbatch_manage
= editmerch
bbmerchid required | string Example: 9876545678934 ID of big batch merchant |
bbacctid | string\d+ ID of big batch aggregation account |
proc | string Processor name as specified by 'Processor List' report under the |
descr | string <= 128 characters Description of the big batch account |
cardtypes | string Enum: "VISA" "MC" "AMEX" "DISC" "DINERS" "JCB" "BML" "GIFT" "VISADEBIT" "MCDEBIT" "OTHERDEBIT" "EBT" "CHECK" "INTERAC" "CUP" "PAYPALEC" "ACH" Cardtypes Pipe (|) separated. Cardtype support is dependant on the processor. Not all processor support all cardtypes. Flag values (pipe separated):
|
emv_entrymodes | string Enum: "VISA_CONTACT" "VISA_CONTACTLESS" "MC_CONTACT" "MC_CONTACTLESS" "AMEX_CONTACT" "AMEX_CONTACTLESS" "DISC_CONTACT" "DISC_CONTACTLESS" "JCB_CONTACT" "JCB_CONTACTLESS" "INTERAC_CONTACT" "INTERAC_CONTACTLESS" "CUP_CONTACT" "CUP_CONTACTLESS" "USDEBIT_CONTACT" "USDEBIT_CONTACTLESS" "INTLDEBIT_CONTACT" "INTLDEBIT_CONTACTLESS" EMV Interfaces specific cards types can use Pipe (|) separated. EMV Entry Mode support is dependant on the processor. Not all processor support all entry modes for all cardtypes Flag values (pipe separated):
|
emv_termcaps | string Enum: "NOSIG" "ONLINEPIN" "NOOFFLINEPIN" "CASHBACK" "PINBYPASSCREDIT" "PINBYPASSUSDEBIT" Capabilities of the EMV terminal being used These options should correspond to device certifications. Flag values (pipe separated):
|
resetauthtoken | string Default: "no" Enum: "yes" "no" Values:
|
{- "bbacctid": "56789765678",
- "proc": "loopback",
- "descr": "Elavon account",
- "cardtypes": "VISA|MC",
- "emv_entrymodes": "VISA_CONTACT|SVISA_CONTACTLESS|MC_CONTACT",
- "emv_termcaps": "NOSIG|ONLINEPIN|PINBYPASSCREDIT|PINBYPASSUSDEBIT",
- "resetauthtoken": "yes"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "authtoken": "XSD8D42"
}
Add a new Big Batch Merchant
The configuration parameters proc
, cardtypes
, emv_entrymodes
, emv_termcaps
must match the settlement route that will settle into this big batch merchant
account.
The bbmerchid
and authtoken
returned in the response will be used to link the
settle route of the profile to the newly created Big Batch Merchant.
libmonetra KVS equivalent for endpoint
action_su
= bigbatch_manage
bigbatch_manage
= addmerch
bbacctid required | string Example: 56789765678 ID of big batch aggregation account |
proc required | string Processor name as specified by 'Processor List' report under the |
descr required | string <= 128 characters Description of the big batch account |
cardtypes required | string Enum: "VISA" "MC" "AMEX" "DISC" "DINERS" "JCB" "BML" "GIFT" "VISADEBIT" "MCDEBIT" "OTHERDEBIT" "EBT" "CHECK" "INTERAC" "CUP" "PAYPALEC" "ACH" Cardtypes Pipe (|) separated. Cardtype support is dependant on the processor. Not all processor support all cardtypes. Flag values (pipe separated):
|
emv_entrymodes | string Enum: "VISA_CONTACT" "VISA_CONTACTLESS" "MC_CONTACT" "MC_CONTACTLESS" "AMEX_CONTACT" "AMEX_CONTACTLESS" "DISC_CONTACT" "DISC_CONTACTLESS" "JCB_CONTACT" "JCB_CONTACTLESS" "INTERAC_CONTACT" "INTERAC_CONTACTLESS" "CUP_CONTACT" "CUP_CONTACTLESS" "USDEBIT_CONTACT" "USDEBIT_CONTACTLESS" "INTLDEBIT_CONTACT" "INTLDEBIT_CONTACTLESS" EMV Interfaces specific cards types can use Pipe (|) separated. EMV Entry Mode support is dependant on the processor. Not all processor support all entry modes for all cardtypes Flag values (pipe separated):
|
emv_termcaps | string Enum: "NOSIG" "ONLINEPIN" "NOOFFLINEPIN" "CASHBACK" "PINBYPASSCREDIT" "PINBYPASSUSDEBIT" Capabilities of the EMV terminal being used These options should correspond to device certifications. Flag values (pipe separated):
|
{- "proc": "loopback",
- "descr": "Elavon account",
- "cardtypes": "VISA|MC",
- "emv_entrymodes": "VISA_CONTACT|SVISA_CONTACTLESS|MC_CONTACT",
- "emv_termcaps": "NOSIG|ONLINEPIN|PINBYPASSCREDIT|PINBYPASSUSDEBIT"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "bbmerchid": "9876545678934",
- "authtoken": "XSD8D42"
}
List big batch merchants
The resulting report will contain these headers:
bbacctid, bbmerchid, descr
libmonetra KVS equivalent for endpoint
action_su
= bigbatch_manage
bigbatch_manage
= listmerch
bbacctid required | string Example: 56789765678 ID of big batch aggregation account |
curl -X GET 'https://testbox.monetra.com/api/v2/bigbatch/merchant' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=''
{- "report": "..."
}
Marks the batch as settled within Monetra without ever requesting funding
The transaction data in the batch is not sent to the processing institution. This should only be used if the processing institution has accepted the batch, but Monetra did not receive the response.
This must only be used after the processing institution has confirmed they've received the batch and they've instructed not sending it again.
WARNING: This function should be used with extreme caution as clearing a batch which the processing institution has not received will prevent funding of those transactions in the batch. It is imperative confirmation by the processor of funding will take place before using this action.
libmonetra KVS equivalent for endpoint
action_su
= bigbatch
bigbatch
= forcesettle
bbbatchid required | string Example: 49345764242 Batch number for a batch in a big batch aggregation |
curl -X POST 'https://testbox.monetra.com/api/v2/bigbatch/batch/99/settle/clear' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=''
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
List big batch batches
Lists batches for an aggregation.
The resulting report will contain these headers:
bbacctid, bbbatchid, state, settlets, num_trans, amount_trans,
num_level3, num_merchant_batches
libmonetra KVS equivalent for endpoint
action_su
= bigbatch
bigbatch
= list
bbacctid required | string Example: 56789765678 ID of big batch aggregation account |
curl -X GET 'https://testbox.monetra.com/api/v2/bigbatch/batch' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=''
{- "report": "..."
}
List failed transactions in settled aggregation batches
Transactions that fail during settlement have different effects on the batch depending on whether the batch was transmitted with the online protocol or the Big Batch protocol. When a batch is settled using the online protocol, a failed transaction will cause the entire batch to be rejected. The merchant will then need to determine the cause of the failure (possibly by working with the processor) and correct the issue before attempting the settlement again. No money will move until the entire batch is correct and successfully submitted.
Big Batch settlement is different. When a batch is settled using the Big Batch protocol, the batch will be approved or rejected based on considerations other than transactions. If everything is correct with the submission, then the batch will be approved. At this point, if an individual transaction fails, then it will not affect anything else in the batch. That is, money will move for the transactions that were settled successfully, but no money will move for the failed transactions. If there are failed transactions in a Big Batch, then a merchant will need to determine the cause of the failure (possibly by working with the processor) and correct the issue, and then resettle those transactions.
This request can be used to determine which of the transactions in the settled batch failed. This request is only relevant for processors that return a settlement response indicating the status of individual transactions. Some processors provide external reports instead of providing the information back to Monetra as part of the settlement itself.
The resulting report will contain these headers:
bbacctid, bbmerchid, bbbatchid, batchnum, submit_ts, ttid, trantype,
cardtype, amount
libmonetra KVS equivalent for endpoint
action_su
= bigbatch
bigbatch
= listfailedtrans
bbacctid | string Example: bbacctid=56789765678 ID of big batch aggregation account |
bbmerchid | string Example: bbmerchid=9876545678934 ID of big batch merchant |
bbbatchid | string Example: bbbatchid=49345764242 Batch number for a batch in a big batch aggregation |
batchnum | string Merchant batch number Requires:
|
curl -X GET 'https://testbox.monetra.com/api/v2/bigbatch/batch/failed' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=''
{- "report": "..."
}
List big batch merchant batches
List a merchant's batches that have settled into aggregation batches.
The resulting report will contain these headers:
bbmerchid, bbbatchid, batchnum, submit_ts, state, settlets, num_trans, amount_trans
libmonetra KVS equivalent for endpoint
action_su
= bigbatch
bigbatch
= listmerchbatches
bbmerchid required | string Example: 9876545678934 ID of big batch merchant |
state | object Enum: "OPEN" "CLOSED" "PENDING" "ATTEMPTED" "SETTLED" "FORCESETTLED" Example: state=OPEN|PEINDING Big batch batch state Flag values (pipe separated):
|
curl -X GET 'https://testbox.monetra.com/api/v2/bigbatch/batch/merchant/567867897' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=''
{- "report": "..."
}
List the big batch merchant batches that are in an aggregation batch
List all the merchant batches that have settled into the aggregation batch.
The resulting report will contain these headers:
bbmerchid, bbbatchid, batchnum, submit_ts, state, settlets, num_trans, amount_trans
libmonetra KVS equivalent for endpoint
action_su
= bigbatch
bigbatch
= listmerchbatches
bbbatchid required | string Example: 49345764242 Batch number for a batch in a big batch aggregation |
state | object Enum: "OPEN" "CLOSED" "PENDING" "ATTEMPTED" "SETTLED" "FORCESETTLED" Example: state=OPEN|PEINDING Big batch batch state Flag values (pipe separated):
|
curl -X GET 'https://testbox.monetra.com/api/v2/bigbatch/batch/67' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=''
{- "report": "..."
}
Remove a merchant batch from an aggregation
Remove a big batch merchant's batch from the aggregate big batch. This does not delete any transactions or from the profile that is associated with the big batch merchant. The profile could unsettled and settle the batch into the big batch aggregation again.
libmonetra KVS equivalent for endpoint
action_su
= bigbatch
bigbatch
= purgemerchbatch
bbacctid required | string Example: 56789765678 ID of big batch aggregation account |
bbmerchid required | string Example: 9876545678934 ID of big batch merchant |
bbbatchid required | string Example: 49345764242 Batch number for a batch in a big batch aggregation |
batch required | string Example: 47 The batch number associated with the transaction |
curl -X DELETE 'https://testbox.monetra.com/api/v2/bigbatch/56789/batch/7/merchant/6789865578/batch/19' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=''
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Request status of the batch from the processor. The batch is not settled. This should be used to determine the status of a batch that has already been settled.
libmonetra KVS equivalent for endpoint
action_su
= bigbatch_settle
rfr
= yes
bbbatchid required | string Example: 49345764242 Batch number for a batch in a big batch aggregation |
curl -X POST 'https://testbox.monetra.com/api/v2/bigbatch/batch/201/settle/rfr' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE=''
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "phard_code": "SUCCESS",
- "draft_locator_id": "24FDBDD0902"
}
Send an aggregated Big Batch online for settlement with the processor
libmonetra KVS equivalent for endpoint
action_su
= bigbatch_settle
bbbatchid required | string Example: 49345764242 Batch number for a batch in a big batch aggregation |
resubmit | string Default: "no" Enum: "yes" "no" Values:
|
{- "resubmit": "no"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "phard_code": "SUCCESS",
- "draft_locator_id": "24FDBDD0902"
}
Base Derivation Key (BDK) can be though of as the master decryption key for encrypted account data coming from a payment terminal.
When using P2PE a BDK needs to be created by Monetra which is then shared with a Key Injection Facility (KIF). The KIF typically sells payment terminals or can accept ones sent to them. They load the device with a device specific key based on the BDK. Only the BDK can decrypt data loaded with a derived device key.
When the device encrypts account data, it first creates a session key using it's device key. The data is sent to Monetra with some metadata who, using the BDK, can derive the device and session key in order to decrypt the account data.
It is imperative the BDK is protected!
A BDK can be exported because it must be shared with a KIF in order to allow devices to encrypt account data. The Export of BDKs from the system uses RSA public key encryption. However, many KIFs do not support receiving the BDK in this manner. Typically they require splitting and dual control of the BDK. Follow the instructions of the KIF on how they require receiving the BDK.
Deactivates a Base Derivation Key
Note: Dual authentication is required for this operation. See the "Dual Authentication" section for details on how to send the second user's authentication information.
Once deactivated no devices injected with an encryption key base don the BDK will be able to process transactions. The payment server will no longer be able to decrypt transaction data that is encrypted once the BDK is deactivated.
Once deactivated the BDK cannot be reactivated.
libmonetra KVS equivalent for endpoint
action_su
= p2pe_bdk_deactivate
id required | string Example: 20008BC878 BDK id |
curl -X DELETE 'https://testbox.monetra.com/api/v2/p2pe/bdk/124435' --basic -u 'test_retail:publ1ct3st' -H 'X-MFA-CODE: 123456' -H 'X-DUAL-Authorization: Basic YWRtaW4yOlMzY1IzdCE=' -H 'X-DUAL-MFA-CODE: 987654'
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Edit a BDK metadata
libmonetra KVS equivalent for endpoint
action_su
= p2pe_bdk_edit
id required | string Example: 20008BC878 BDK id |
descr required | string Description of the BDK and it's use For example:
|
{- "descr": "KIF Si Sqrt"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Export a Base Derivation Key
Note: Dual authentication is required for this operation. See the "Dual Authentication" section for details on how to send the second user's authentication information.
libmonetra KVS equivalent for endpoint
action_su
= p2pe_bdk_export
id required | string Example: 20008BC878 BDK id |
rsapublickey required | string RSA public key |
{- "rsapublickey": "..."
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "key": "..."
}
Generate a new BDK suitable for sharing with a key injection facility
Note: Dual authentication is required for this operation. See the "Dual Authentication" section for details on how to send the second user's authentication information.
libmonetra KVS equivalent for endpoint
action_su
= p2pe_bdk_generate
keytype
= dukptext
flags | string Enum: "NOAUTOPROVISION" "LOCKTOPROFILE" "AUTODISABLE" "TRACKEVENTS" Pipe (|) separated list of flags that describe how devices should be treated Flag values (pipe separated):
|
descr | string Description of the BDK and it's use For example:
|
{- "flags": "LOCKTOPROFILE|AUTODISABLE|TRACKEVENTS",
- "descr": "KIF Si Sqrt"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "id": "2220006535"
}
List BDKs
The resulting report will contain these headers:
keyid, ksid, keytype, is_hsm, flags, provision_allowed, num_devices, descr
libmonetra KVS equivalent for endpoint
action_su
= p2pe_bdk_list
curl -X GET 'https://testbox.monetra.com/api/v2/p2pe/bdk' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Gets the key check value for a BDK
Used for verification of a BDK when sharing with an external party
libmonetra KVS equivalent for endpoint
action_su
= p2pe_bdk_kcv
id required | string Example: 2000C2105A00034 BDK id or a KSN from a device which will be used to reference the associated BDK |
curl -X GET 'https://testbox.monetra.com/api/v2/p2pe/bdk/124435/kcv' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "kcv": "14C"
}
Export a BDK by printing to a printer attached to an HSM
Only BDKs stored within an HSM can be printed. The HSM must support printing and the printer must be connected to the HSM.
Note: Dual authentication is required for this operation. See the "Dual Authentication" section for details on how to send the second user's authentication information.
libmonetra KVS equivalent for endpoint
action_su
= p2pe_bdk_print
id required | string Example: 20008BC878 BDK id |
hsm_serialnum required | string Serial number of HSM to send the request to |
flags | string Enum: "KSIDFMT1" "KSIDFMT2" Flags controlling printer behavior Flag values (pipe separated):
|
{- "hsm_serialnum": "GGSgs5645GJ",
- "flags": "KSIDFMT2"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
It is recommended that all physical payment terminals encrypt account data and do not output clear data when possible. This reduces exposure of account data and provides more security around its handling.
Validated and non-validated P2PE
There are two type of P2PE, validated and non-validated. At the core level of encrypting card data, these are the same. Both use the same encryption standard and handle the device in the same way.
With one caveat on the device. Validated P2PE requires Secure Reading and Exchange (SRED) devices. The PCI council defines what qualifies as SRED. While SRED is a requirement for Validated P2PE, SRED devices can still be used in a non-validated environment. Further Device vendors will disclose whether a device is SRED or not and many only produce SRED devices.
While the underlying technology is the same for Validated and non-validated there are business requirements for Validated P2PE. For example, devices need to be inspected quarterly and logged. The "Add Device Event Note" action handles this.
To qualify as Validated P2PE the environment must be audited by a PCI auditor capable of certifying Validated P2PE solutions. Even though Monetra provides all the core technology for Validated P2PE, the entire solution must be audited. Additionally, there are aspects outside of Monetra that a validated P2PE solution needs to utilize. Monetra only provides one aspect of the system.
Add a device event with a note about the event
Device ID (KSN) or serial number can be used to reference the device.
libmonetra KVS equivalent for endpoint
action_admin
= p2pe
p2pe
= addeventnote
id | string Device id |
serial_num | string Device serial number |
type | string Default: "note" Enum: "note" "quarterly_inspection" Type of note being added Values:
|
notes required | string <= 1024 characters General free-form information |
approval_user | string Person approving the operation Free form and is typically a username or person's name |
{- "id": "5436754356",
- "serial_num": "HGIE475GH205HG",
- "type": "quarterly_inspection",
- "notes": "This is a note",
- "approval_user": "James West"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Get logged device events
The resulting report will contain these headers:
ksn, serial_num, ts, type, notes, monetra_username, approval_user
libmonetra KVS equivalent for endpoint
action_admin
= p2pe
p2pe
= listevents
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
id | string Example: id=5436754356 Device id |
serial_num | string Example: serial_num=HGIE475GH205HG Device serial number |
bdate | string Example: bdate=-6 months Start of date range |
edate | string Example: edate=now End of date range |
type | object Enum: "PROVISION" "ACTIVATED" "DIS_ACTIVITY" "DIS_COMPROMISE" "DIS_OTHER" "ENABLED" "INSPECTION" "NOTES" "SOFTWARECHANGE" "DECOMMISSION" Example: type=ACTIVATED|NOTES|DECOMMISSION Pipe (|) separated list of flags that describe type of P2PE events Flag values (pipe separated):
|
curl -X GET 'https://testbox.monetra.com/api/v2/p2pe/device/event' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Deactivates a device
Once deactivated the device can no longer be used.
This is different than disabling a device. Disable is temporary and deactivate is permanent. A device should be deactivated if it is taken out of service and will never be used again. For example, it is damaged and inoperable or found to be tampered.
libmonetra KVS equivalent for endpoint
action_su
= p2pe_device_deactivate
id required | string Example: 5436754356 Device id |
curl -X DELETE 'https://testbox.monetra.com/api/v2/p2pe/device/5678765' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Edit a device metadata
libmonetra KVS equivalent for endpoint
action_su
= p2pe_device_edit
id required | string Example: 5436754356 Device id |
descr required | string <= 128 characters description |
{- "descr": "description of some kind"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Disable a device
Disabled devices can be re-enabled at a later time.
Device ID (KSN) or serial number can be used to reference the device.
libmonetra KVS equivalent for endpoint
action_admin
= p2pe
p2pe
= disabledevice
id | string Device id |
serial_num | string Device serial number |
reason | string Default: "other" Enum: "other" "possible_compromise" Reason device is disabled Values:
|
notes | string <= 1024 characters General free-form information |
approval_user | string Person approving the operation Free form and is typically a username or person's name |
{- "id": "5436754356",
- "serial_num": "HGIE475GH205HG",
- "reason": "possible_compromise",
- "notes": "This is a note",
- "approval_user": "James West"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Enable a device
Enable a device that was previously disabled.
Device ID (KSN) or serial number can be used to reference the device.
libmonetra KVS equivalent for endpoint
action_admin
= p2pe
p2pe
= enabledevice
id | string Device id |
serial_num | string Device serial number |
notes | string <= 1024 characters General free-form information |
approval_user | string Person approving the operation Free form and is typically a username or person's name |
{- "id": "5436754356",
- "serial_num": "HGIE475GH205HG",
- "notes": "This is a note",
- "approval_user": "James West"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
List All P2PE devices
Lists all devices for the system.
The resulting report will contain these headers:
id, keytype, is_hsm, flags, devicetype, serial_num, descr, create_ts, last_ts,
last_username, is_disabled, consec_failures, device_manuf, device_model,
device_manuf_sn, device_app, device_appver, device_kernver
libmonetra KVS equivalent for endpoint
action_su
= p2pe_device_list
profile_id | string Example: profile_id=78965743785967 Limit search to the specified profile id |
id | string Example: id=20008BC878 P2PE key id |
serial_num | string Example: serial_num=HGIE475GH205HG Device serial number |
bdate | string Example: bdate=-6 months Start of date range |
edate | string Example: edate=now End of date range |
last_used_ts | string Key last used before the specified time as a timestamp |
curl -X GET 'https://testbox.monetra.com/api/v2/p2pe/device/all' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
List P2PE devices
The resulting report will contain these headers:
id, keytype, is_hsm, flags, devicetype, serial_num, descr, create_ts, last_ts,
last_username, is_disabled, consec_failures, device_manuf, device_model,
device_manuf_sn, device_app, device_appver, device_kernver
libmonetra KVS equivalent for endpoint
action_admin
= p2pe
p2pe
= list
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
id | string Example: id=20008BC878 P2PE key id |
serial_num | string Example: serial_num=HGIE475GH205HG Device serial number |
bdate | string Example: bdate=-6 months Start of date range |
edate | string Example: edate=now End of date range |
last_used_ts | string Key last used before the specified time as a timestamp |
curl -X GET 'https://testbox.monetra.com/api/v2/p2pe/device' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Provision a device
Typically used with validated P2PE devices which must be provisioned in the system before they can be used.
Provisioning a P2PE device before use is one requirement of validated P2PE. Validated P2PE requirements are complex and outside the scope of this operation.
If a BDK was created with the NOAUTOPROVISION
flag, this operation must
be used before a device can process transactions.
libmonetra KVS equivalent for endpoint
action_su
= p2pe_device_provision
id
= P2PE
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
notes required | string For device logging, this may be provisioning notes |
serial_num required | string Device serial number |
approval_user | string Person approving the operation Free form and is typically a username or person's name |
{- "profile_id": "78965743785967",
- "notes": "Device provisioned",
- "serial_num": "HGIE475GH205HG",
- "approval_user": "James West"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
E2EE keys are different than P2PE used by payment terminals. E2EE is for encryption outside of a device. Whereas P2PE relates to encryption of data coming out of a device.
The two main uses of E2EE key management is standin and transaction export key generation. These are used to secure sensitive account data, but they are not used by a payment terminal. Rather they are used by software.
Generate a new standin encryption key
Standin keys are used for encrypting data that will be standin approved and the transaction data stored for a period of time.
When the payment server is offline an application can choose whether it wants to approve the transaction standin and upload the transaction data when the payment server is accessible at some point in the future.
Standin authorizations can be declined by the issuer when uploaded to the payment server. The merchant is taking a risk when standin authorizing and may not receive funds for the transaction. There is little a merchant can do in this case as they've accepted liability for receiving declines when standin transactions are sent for authorization at a later time.
There are a number of profile flags that control the desired behavior of how an integrating application handles standin authorizations. These flags should be evaluated as a means to reduce risk to the merchant.
It's also advised that policies are put in place surrounding eligibility for standin authorizations. Such as but not limited to:
Also, certain types of transactions are ineligible for standin authorization. For example, several EMV card responses indicate standin should not be performed for the transaction.
When approving the application will generate an AES-256 encryption key. This local key will be used to encrypt call transaction data. The AES key will then be encrypted using the standin key returned by the payment server.
All sensitive KVS will have the value encrypted. The data will be base64
encoded. The key will be prefixed with e_
. For example, renamed to e_<KEY NAME>
. Keys that already start with e_
must be encrypted and an additional
e_
prefixed. You will have e_e_<KEY NAME>
in this situation. Wrapped keys
are required for the payment server to know which keys need to be decrypted.
And e_id
parameter needs to be sent with the request and
will take the form:
CARDSHIELD|<STANDIN KEY ID>|<ENCRYPTED AES KEY DATA BASE64 ENCODED>
.
Example flow:
e_
even if it already has e_
prefixede_id
parameter with encryption informationExample transaction data:
account
= "5...5"expdate
= "1229"amount
= "100.00"e_account
= "Gtahjge/2daga="e_expdate
= "yUGeuyhjage678agea"amount
= "100.00"e_id
= "CARDSHIELD|12456789|F675DGEwese=="Standin keys should be generated on a regular basis. Keys are only valid for 2 weeks. It's advisable to generate a new key every week. It's not recommended to standin authorize transactions for longer than a week while not being able to uploaded any to the payment server.
libmonetra KVS equivalent for endpoint
action_admin
= standinkey_generate
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
{- "profile_id": "78965743785967"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "id": "20008BC878",
- "key": "..."
}
List standin keys
The resulting report will contain these headers:
id, keytype, is_hsm, flags, devicetype, serial_num, descr, create_ts, last_ts,
last_username, profile_id, is_disabled, consec_failures, device_manuf,
device_model, device_manuf_sn, device_app, device_appver, device_kernver
libmonetra KVS equivalent for endpoint
action_su
= e2ee_key_list
keytype
= RSA-AES
profile_id | string Example: profile_id=78965743785967 Limit search to the specified profile id |
id | string Example: id=20008BC878 Standin key id |
serial_num | string Example: serial_num=HGIE475GH205HG Device serial number |
bdate | string Example: bdate=-6 months Start of date range |
edate | string Example: edate=now End of date range |
last_used_ts | string Key last used before the specified time as a timestamp |
curl -X GET 'https://testbox.monetra.com/api/v2/e2ee/key/standin' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Create a RSA key for transaction import
The payment receiving a transaction will generate the
transaction encryption key. A key id
and RSA public key
will be returned. These will be provided to the payment
server that will be exporting transactions and be set in
the profile's txn_export_key
parameter. The value will
take the form <ID>|<PUBLIC KEY>
as returned by this operation.
libmonetra KVS equivalent for endpoint
action_su
= e2ee_key_generate
keytype
= RSA
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
{- "profile_id": "78965743785967"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "id": "20008BC878",
- "key": "..."
}
Deactivates a software product registered with the system
libmonetra KVS equivalent for endpoint
action_su
= product_license
product_license
= deactivate
id required | string Example: 1567654325 ID of software product |
curl -X DELETE 'https://testbox.monetra.com/api/v2/system/licensing/software/12543' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Gets the count of linked software products
libmonetra KVS equivalent for endpoint
action_su
= product_license
product_license
= count
curl -X GET 'https://testbox.monetra.com/api/v2/system/licensing/software/count' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "uniterm_count": "string",
- "uniterm_hold": "string",
- "uniterm_limit": "string",
- "admin_count": "string",
- "admin_hold": "string",
- "admin_limit": "string",
- "client_count": "string",
- "client_hold": "string",
- "client_limit": "string"
}
Gets a list of linked software products registered with the system
Applies to a single profile.
The resulting report will contain these headers:
id, product, active, producttype, serialnum, last_access_ts, last_access_username
libmonetra KVS equivalent for endpoint
action_su
= product_license
product_license
= list
license_active | string |
product | object Enum: "uniterm" "admin" "client" Example: product=uniterm Software product Values:
|
bdate | string Example: bdate=-6 months Start of date range |
edate | string Example: edate=now End of date range |
id | string Example: id=1567654325 ID of software product |
curl -X GET 'https://testbox.monetra.com/api/v2/system/licensing/software' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Gets information about the software license
Can only be called by a user in the top level group. Users in any sub-group cannot access this information.
libmonetra KVS equivalent for endpoint
action_su
= info
info
= licinfo
curl -X GET 'https://testbox.monetra.com/api/v2/system/licensing' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "admincount": "string",
- "annual_trans_limit": "string",
- "cardshielddevices": "string",
- "clientcount": "string",
- "compname": "string",
- "flags": "string",
- "license_id": "string",
- "licensecount": "string",
- "max_version": "string",
- "merchant_restrictions": "string",
- "num_profiles": "string",
- "os": "string",
- "partner_id": "string",
- "required_modules": "string",
- "unitermcount": "string"
}
List P2PE Key count per profile
The resulting report will contain these headers:
profile_id, p2pe_devices, nonp2pe_devices
libmonetra KVS equivalent for endpoint
action_su
= product_license
product_license
= p2pe_profile_count
profile_id | string Example: profile_id=78965743785967 Limit search to the specified profile id |
bdate | string Example: bdate=-6 months Start of date range |
edate | string Example: edate=now End of date range |
curl -X GET 'https://testbox.monetra.com/api/v2/system/licensing/p2pe/count/profile' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Gets the count of P2PE Keys
libmonetra KVS equivalent for endpoint
action_su
= product_license
product_license
= p2pe_count
curl -X GET 'https://testbox.monetra.com/api/v2/system/licensing/p2pe/count' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "p2pe_count": "string",
- "p2pe_hold": "string",
- "p2pe_limit": "string"
}
The SkyLink point-of-sale (POS) system runs on a variety of platforms, with the features small retailers and restaurants need for running fast, efficient businesses.
SkyLink is a licensed per installation. The licenses can increase, decrease and manage the number of licenses as needed. SkyLink instances will automatically register themselves when used. Instances will not automatically deactivate. When an instance is no longer in use, it will need to be manually deactivated in order to free the license for use by another instance.
If a merchant does not have enough available licenses for a SkyLink instance, they will receive an error. If there are instances no longer being used, they can be deactivated to free a license for reuse. Otherwise, the total number of licenses will need to be increased.
Deactivates a SkyLink device
When deactivated the license seat used by that device will be immediately available for use by another installation.
libmonetra KVS equivalent for endpoint
action_sys
= skylink_manage
skylink_manage
= deactivate
device_id required | string Example: 65432456 ID of registered SkyLink device |
curl -X DELETE 'https://testbox.monetra.com/api/v2/system/licensing/skylink/12543' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Gets a list devices registered for SkyLink
The resulting report will contain these headers:
device_id, active, deactivated_ts, last_used_user, last_used_ts, version, name,
manuf, model, os, osver, deactivation_cnt
libmonetra KVS equivalent for endpoint
action_sys
= skylink_manage
skylink_manage
= list
show_deactivated | object Enum: "yes" "no" Example: show_deactivated=yes Show deactivated devices Values:
|
curl -X GET 'https://testbox.monetra.com/api/v2/system/licensing/skylink' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Get the current number SkyLink instances used with a profile
libmonetra KVS equivalent for endpoint
action_sys
= skylink_manage
skylink_manage
= getlimit
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
curl -X GET 'https://testbox.monetra.com/api/v2/system/licensing/skylink/limit' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "limit": "45"
}
Set the maximum number of SkyLink instances that can be used with a profile
libmonetra KVS equivalent for endpoint
action_sys
= skylink_manage
skylink_manage
= setlimit
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
limit required | string\d+ Maximum number of SkyLink devices |
{- "profile_id": "78965743785967",
- "limit": "45"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Gets the highest limit set across a period of time
Will show results for all profiles visible to the caller
The resulting report will contain these headers:
profile_id, limit
libmonetra KVS equivalent for endpoint
action_sys
= skylink_manage
skylink_manage
= limitmax
bdate | string Example: bdate=-6 months Start of date range |
edate | string Example: edate=now End of date range |
curl -X GET 'https://testbox.monetra.com/api/v2/system/licensing/skylink/limit/max' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Get history of limit changes for SkyLink
Applies to a single profile.
The resulting report will contain these headers:
ts, is_current, limit, request_user
libmonetra KVS equivalent for endpoint
action_sys
= skylink_manage
skylink_manage
= limithistory
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
show_deactivated | object Enum: "yes" "no" Example: show_deactivated=yes Show deactivated devices Values:
|
curl -X GET 'https://testbox.monetra.com/api/v2/system/licensing/skylink/limit/history' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Get allowed actions
Monetra may have license restrictions in place limiting what actions can be used with Monetra. This provides a list of all actions that can be performed.
This is typically used to dereference the ALL
when
getting a user's permissions. Necessary when generating API
keys which cannot take ALL
and must have a full list of
permissions.
A user will still need permissions to use allowed actions.
libmonetra KVS equivalent for endpoint
action_sys
= info
info
= trantypes
curl -X GET 'https://testbox.monetra.com/api/v2/system/actions' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "sys": "string",
- "admin": "string",
- "trans": "string"
}
Gets Current Maintenance Level
libmonetra KVS equivalent for endpoint
action_su
= info
info
= maintenance
curl -X GET 'https://testbox.monetra.com/api/v2/system/maintenance' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "response": "string",
- "maintenance": "NONE"
}
Set the system maintains level
Restrict Monetra actions that can be performed during maintenance operations. Typically used during upgrades to block transactions that could not process during that time.
libmonetra KVS equivalent for endpoint
action_su
= maintenance
level required | string Enum: "NONE" "LIMITED" "STRICT" Values:
|
{- "level": "NONE"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Get software versions
Monetra is comprised of the product itself as well as many modules that perform different actions. This report lists the version of Monetra as well as all product modules.
The resulting report will contain these headers:
name, displayname, type, version
libmonetra KVS equivalent for endpoint
action_su
= info
info
= versions
curl -X GET 'https://testbox.monetra.com/api/v2/system/versions ' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Get available country codes
The resulting report will contain these headers:
name, iso_alpha3, iso_numeric, iana
libmonetra KVS equivalent for endpoint
action_sys
= info
info
= countrycodes
curl -X GET 'https://testbox.monetra.com/api/v2/system/countrycodes' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Get available currency codes
The resulting report will contain these headers:
name, iso_alpha, iso_numeric, exponent
libmonetra KVS equivalent for endpoint
action_sys
= info
info
= currencycodes
curl -X GET 'https://testbox.monetra.com/api/v2/system/currencycodes' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Get available timezones
Timezones are used when configuring profiles. This will retrieve a list of all timezones supported by Monetra that can be used when configuring a profile.
The resulting report will contain these headers:
timezone
libmonetra KVS equivalent for endpoint
action_sys
= info
info
= timezones
curl -X GET 'https://testbox.monetra.com/api/v2/system/timezones' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Retrieve an in-memory log buffer
This stops and retrieves an in-memory log buffer that was started. The buffer can only be retrieved once.
libmonetra KVS equivalent for endpoint
action_sys
= setlogging
setlogging
= getbuffer
bufferid required | string Example: 665436765467 ID of a log buffer |
curl -X GET 'https://testbox.monetra.com/api/v2/system/logging/buffer/6789876567' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "buffer": "string"
}
Set the current log output levels
This overrides the log levels that were set in main.conf
at startup. The
changes persist until shutdown (or until this action is run again).
NonPCI
compliant log levels cannot be enabled.
libmonetra KVS equivalent for endpoint
action_sys
= setlogging
setlogging
= level
debug required | string Enum: "INIT" "CONF" "WARN" "INFO" "TRAN" "TRAN_DETAIL" "TRAN_TRACE" "CONN" "PROC" "PROC_DETAIL" "PROC_TRACE" "TRACE_IN" "TRACE_OUT" "SQL" "ERROR" "CRIT" "DEBUG" "DEV" "SQLDEV" Log levels Log levels can be
Those tagged as Values:
|
{- "debug": "INIT|CONF|WARN|INFO|TRAN|TRAN_DETAIL|CONN|PROC|PROC_DETAIL|ERROR|CRIT"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Capture log to an in-memory buffer
The only way to read a log with levels that are out of PCI compliance is by using an in-memory buffer. This allows for temporary logging without changing the log levels written to disk.
Buffers are only available for a maximum of 10 minutes.
libmonetra KVS equivalent for endpoint
action_sys
= setlogging
bufferid
= yes
setlogging
= buffer
debug required | string Enum: "INIT" "CONF" "WARN" "INFO" "TRAN" "TRAN_DETAIL" "TRAN_TRACE" "CONN" "PROC" "PROC_DETAIL" "PROC_TRACE" "TRACE_IN" "TRACE_OUT" "SQL" "ERROR" "CRIT" "DEBUG" "DEV" "SQLDEV" Log levels Log levels can be
Those tagged as Values:
|
buffer_size | string Maximum size of the buffer, in bytes (default 1 MB) |
filter_user | string Restricts the log to capture activity for only the specified username |
{- "debug": "INIT|CONF|WARN|INFO|TRAN|TRAN_DETAIL|CONN|PROC|PROC_DETAIL|ERROR|CRIT",
- "buffer_size": "5242880",
- "filter_user": "user_you"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "bufferid": "665436765467"
}
The Account Updater subsystem allows merchants to retrieve updated card numbers and expiration dates for customer accounts (whether due to a card being lost or stolen, or simply a new card being issued).
Account updater must be configured on the payment server in order to work. An
agreement with a supported account updater service is required. Further, the
ACCOUNT_UPDATER
group flag must be enabled. Tokens owned by the group will
be eligible for update.
libmonetra KVS equivalent for endpoint
action_sys
= cron
cron
= add
type
= account_updater
sched | string\d{4}\|((sun|mon|tue|wed|thu|fri|sat|;\*)+|(\... When a scheduled task should run Format of schedule is
Examples:
|
{- "sched": "07:40|*"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "id": "56543565"
}
Purges historical Big Batch data from the database for all Big Batch Users
libmonetra KVS equivalent for endpoint
action_sys
= cron
cron
= add
type
= purgebbhist
sched | string\d{4}\|((sun|mon|tue|wed|thu|fri|sat|;\*)+|(\... When a scheduled task should run Format of schedule is
Examples:
|
keep_days | string\d+ Number of days to keep |
{- "sched": "07:40|*",
- "keep_days": "90"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "id": "56543565"
}
Automatic big batch settlement
libmonetra KVS equivalent for endpoint
action_sys
= cron
cron
= add
type
= bigbatchsettle
bbacctid required | string\d+ ID of big batch aggregation account |
sched | string\d{4}\|((sun|mon|tue|wed|thu|fri|sat|;\*)+|(\... When a scheduled task should run Format of schedule is
Examples:
|
{- "bbacctid": "56789765678",
- "sched": "07:40|*"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "id": "56543565"
}
Deletes orders that have been canceled for longer than the configured time
libmonetra KVS equivalent for endpoint
action_sys
= cron
cron
= add
type
= ordercancelpurge
sched | string\d{4}\|((sun|mon|tue|wed|thu|fri|sat|;\*)+|(\... When a scheduled task should run Format of schedule is
Examples:
|
keep_days | string\d+ Number of days to keep |
{- "sched": "07:40|*",
- "keep_days": "90"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "id": "56543565"
}
Deletes orders that have been completed and are older than the configured time
libmonetra KVS equivalent for endpoint
action_sys
= cron
cron
= add
type
= ordercompletepurge
sched | string\d{4}\|((sun|mon|tue|wed|thu|fri|sat|;\*)+|(\... When a scheduled task should run Format of schedule is
Examples:
|
keep_days | string\d+ Number of days to keep |
{- "sched": "07:40|*",
- "keep_days": "90"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "id": "56543565"
}
Purge tokens with expired cards
libmonetra KVS equivalent for endpoint
action_sys
= cron
cron
= add
type
= purgeexpired
sched | string\d{4}\|((sun|mon|tue|wed|thu|fri|sat|;\*)+|(\... When a scheduled task should run Format of schedule is
Examples:
|
keep_months | string\d+ Represents the number of months after a card has expired that it should be kept on file |
{- "sched": "07:40|*",
- "keep_months": "12"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "id": "56543565"
}
Purge deleted products
When products are deleted the product record is retained in order to facilitate restoring the product in case it was deleted by accident.
Purges deleted products that were deleted after the configured time span.
libmonetra KVS equivalent for endpoint
action_sys
= cron
cron
= add
type
= productpurge
sched | string\d{4}\|((sun|mon|tue|wed|thu|fri|sat|;\*)+|(\... When a scheduled task should run Format of schedule is
Examples:
|
keep_days | string\d+ Number of days to keep |
{- "sched": "07:40|*",
- "keep_days": "90"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "id": "56543565"
}
Purge historic token account data
Account update retains the previous account information when a token is updated in case the old account information needs to be restored. For example, a bad update of a card number from the update service. The previous account number is saved and can be restored to the token.
Purge any previous account data for tokens that have been updated. Tokens are not deleted, only historic account data for tokens.
libmonetra KVS equivalent for endpoint
action_sys
= cron
cron
= add
type
= purge_account_updater
sched | string\d{4}\|((sun|mon|tue|wed|thu|fri|sat|;\*)+|(\... When a scheduled task should run Format of schedule is
Examples:
|
keep_days | string\d+ Number of days to keep |
{- "sched": "07:40|*",
- "keep_days": "90"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "id": "56543565"
}
Clear failed, voided, and settled transactions from the history
libmonetra KVS equivalent for endpoint
action_sys
= cron
cron
= add
type
= purgehist
sched | string\d{4}\|((sun|mon|tue|wed|thu|fri|sat|;\*)+|(\... When a scheduled task should run Format of schedule is
Examples:
|
keep_days | string\d+ Number of days to keep |
{- "sched": "07:40|*",
- "keep_days": "90"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "id": "56543565"
}
Deletes orders that have been open for longer than the configured time
libmonetra KVS equivalent for endpoint
action_sys
= cron
cron
= add
type
= orderopenpurge
sched | string\d{4}\|((sun|mon|tue|wed|thu|fri|sat|;\*)+|(\... When a scheduled task should run Format of schedule is
Examples:
|
keep_days | string\d+ Number of days to keep |
{- "sched": "07:40|*",
- "keep_days": "90"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "id": "56543565"
}
Deletes historic orders synchronization records for longer than the configured time
libmonetra KVS equivalent for endpoint
action_sys
= cron
cron
= add
type
= ordersyncpurge
sched | string\d{4}\|((sun|mon|tue|wed|thu|fri|sat|;\*)+|(\... When a scheduled task should run Format of schedule is
Examples:
|
keep_days | string\d+ Number of days to keep |
{- "sched": "07:40|*",
- "keep_days": "90"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "id": "56543565"
}
Deletes orders that have been pending for longer than the configured time
libmonetra KVS equivalent for endpoint
action_sys
= cron
cron
= add
type
= orderpendingpurge
sched | string\d{4}\|((sun|mon|tue|wed|thu|fri|sat|;\*)+|(\... When a scheduled task should run Format of schedule is
Examples:
|
keep_days | string\d+ Number of days to keep |
{- "sched": "07:40|*",
- "keep_days": "90"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "id": "56543565"
}
Clear sensitive data from the transaction history
This will remove PCI-protected data like account information from the transaction history while keeping the record intact.
libmonetra KVS equivalent for endpoint
action_sys
= cron
cron
= add
type
= securehist
sched | string\d{4}\|((sun|mon|tue|wed|thu|fri|sat|;\*)+|(\... When a scheduled task should run Format of schedule is
Examples:
|
keep_days | string\d+ Number of days to keep |
{- "sched": "07:40|*",
- "keep_days": "90"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "id": "56543565"
}
Automatic batch settlement
Settle batches in the open
or closed
state
automatically.
libmonetra KVS equivalent for endpoint
action_sys
= cron
cron
= add
type
= settle
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
sched | string\d{4}\|((sun|mon|tue|wed|thu|fri|sat|;\*)+|(\... When a scheduled task should run Format of schedule is
Examples:
|
{- "profile_id": "78965743785967",
- "sched": "07:40|*"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "id": "56543565"
}
Purges all uncaptured transactions
Preauthorizations and purchases which were sent with capture=no
that haven't been completed after keep_days
.
libmonetra KVS equivalent for endpoint
action_sys
= cron
cron
= add
type
= purgeuncaptured
sched | string\d{4}\|((sun|mon|tue|wed|thu|fri|sat|;\*)+|(\... When a scheduled task should run Format of schedule is
Examples:
|
keep_days | string\d+ Number of days to keep |
{- "sched": "07:40|*",
- "keep_days": "90"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "id": "56543565"
}
Delete a scheduled task
libmonetra KVS equivalent for endpoint
action_sys
= cron
cron
= del
id required | string Example: 56543565 ID of scheduled task |
curl -X DELETE 'https://testbox.monetra.com/api/v2/system/schedule/567865678' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Edit an account update scheduled task
libmonetra KVS equivalent for endpoint
action_sys
= cron
cron
= edit
id required | string Example: 56543565 ID of scheduled task |
sched | string\d{4}\|((sun|mon|tue|wed|thu|fri|sat|;\*)+|(\... When a scheduled task should run Format of schedule is
Examples:
|
{- "sched": "07:40|*"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Edit a purge of historic transaction data scheduled task
libmonetra KVS equivalent for endpoint
action_sys
= cron
cron
= edit
id required | string Example: 56543565 ID of scheduled task |
sched | string\d{4}\|((sun|mon|tue|wed|thu|fri|sat|;\*)+|(\... When a scheduled task should run Format of schedule is
Examples:
|
keep_days | string\d+ Number of days to keep |
{- "sched": "07:40|*",
- "keep_days": "90"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Edit a big batch settlement scheduled task
libmonetra KVS equivalent for endpoint
action_sys
= cron
cron
= edit
id required | string Example: 56543565 ID of scheduled task |
sched | string\d{4}\|((sun|mon|tue|wed|thu|fri|sat|;\*)+|(\... When a scheduled task should run Format of schedule is
Examples:
|
{- "sched": "07:40|*"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Edit a canceld order purge scheduled task
libmonetra KVS equivalent for endpoint
action_sys
= cron
cron
= edit
id required | string Example: 56543565 ID of scheduled task |
sched | string\d{4}\|((sun|mon|tue|wed|thu|fri|sat|;\*)+|(\... When a scheduled task should run Format of schedule is
Examples:
|
keep_days | string\d+ Number of days to keep |
{- "sched": "07:40|*",
- "keep_days": "90"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Edit a completed order purge scheduled task
libmonetra KVS equivalent for endpoint
action_sys
= cron
cron
= edit
id required | string Example: 56543565 ID of scheduled task |
sched | string\d{4}\|((sun|mon|tue|wed|thu|fri|sat|;\*)+|(\... When a scheduled task should run Format of schedule is
Examples:
|
keep_days | string\d+ Number of days to keep |
{- "sched": "07:40|*",
- "keep_days": "90"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Edit a purge of expired tokens scheduled task
libmonetra KVS equivalent for endpoint
action_sys
= cron
cron
= edit
id required | string Example: 56543565 ID of scheduled task |
sched | string\d{4}\|((sun|mon|tue|wed|thu|fri|sat|;\*)+|(\... When a scheduled task should run Format of schedule is
Examples:
|
keep_months | string\d+ Represents the number of months after a card has expired that it should be kept on file |
{- "sched": "07:40|*",
- "keep_months": "12"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Edit a deleted product purge scheduled task
libmonetra KVS equivalent for endpoint
action_sys
= cron
cron
= edit
id required | string Example: 56543565 ID of scheduled task |
sched | string\d{4}\|((sun|mon|tue|wed|thu|fri|sat|;\*)+|(\... When a scheduled task should run Format of schedule is
Examples:
|
keep_days | string\d+ Number of days to keep |
{- "sched": "07:40|*",
- "keep_days": "90"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Edit a historic token account data purge scheduled task
libmonetra KVS equivalent for endpoint
action_sys
= cron
cron
= edit
id required | string Example: 56543565 ID of scheduled task |
sched | string\d{4}\|((sun|mon|tue|wed|thu|fri|sat|;\*)+|(\... When a scheduled task should run Format of schedule is
Examples:
|
keep_days | string\d+ Number of days to keep |
{- "sched": "07:40|*",
- "keep_days": "90"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Edit a purge of transaction history scheduled task
libmonetra KVS equivalent for endpoint
action_sys
= cron
cron
= edit
id required | string Example: 56543565 ID of scheduled task |
sched | string\d{4}\|((sun|mon|tue|wed|thu|fri|sat|;\*)+|(\... When a scheduled task should run Format of schedule is
Examples:
|
keep_days | string\d+ Number of days to keep |
{- "sched": "07:40|*",
- "keep_days": "90"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Edit an open order purge scheduled task
libmonetra KVS equivalent for endpoint
action_sys
= cron
cron
= edit
id required | string Example: 56543565 ID of scheduled task |
sched | string\d{4}\|((sun|mon|tue|wed|thu|fri|sat|;\*)+|(\... When a scheduled task should run Format of schedule is
Examples:
|
keep_days | string\d+ Number of days to keep |
{- "sched": "07:40|*",
- "keep_days": "90"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Edit an order synchronization history purge scheduled task
libmonetra KVS equivalent for endpoint
action_sys
= cron
cron
= edit
id required | string Example: 56543565 ID of scheduled task |
sched | string\d{4}\|((sun|mon|tue|wed|thu|fri|sat|;\*)+|(\... When a scheduled task should run Format of schedule is
Examples:
|
keep_days | string\d+ Number of days to keep |
{- "sched": "07:40|*",
- "keep_days": "90"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Edit a pending order purge scheduled task
libmonetra KVS equivalent for endpoint
action_sys
= cron
cron
= edit
id required | string Example: 56543565 ID of scheduled task |
sched | string\d{4}\|((sun|mon|tue|wed|thu|fri|sat|;\*)+|(\... When a scheduled task should run Format of schedule is
Examples:
|
keep_days | string\d+ Number of days to keep |
{- "sched": "07:40|*",
- "keep_days": "90"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Edit a clearing of sensitive transaction data scheduled task
libmonetra KVS equivalent for endpoint
action_sys
= cron
cron
= edit
id required | string Example: 56543565 ID of scheduled task |
sched | string\d{4}\|((sun|mon|tue|wed|thu|fri|sat|;\*)+|(\... When a scheduled task should run Format of schedule is
Examples:
|
keep_days | string\d+ Number of days to keep |
{- "sched": "07:40|*",
- "keep_days": "90"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Edit a settlement scheduled task
libmonetra KVS equivalent for endpoint
action_sys
= cron
cron
= edit
id required | string Example: 56543565 ID of scheduled task |
profile_id | string\d+ Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
sched | string\d{4}\|((sun|mon|tue|wed|thu|fri|sat|;\*)+|(\... When a scheduled task should run Format of schedule is
Examples:
|
{- "profile_id": "78965743785967",
- "sched": "07:40|*"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Edit a purge of uncaptured transactions scheduled task
libmonetra KVS equivalent for endpoint
action_sys
= cron
cron
= edit
id required | string Example: 56543565 ID of scheduled task |
sched | string\d{4}\|((sun|mon|tue|wed|thu|fri|sat|;\*)+|(\... When a scheduled task should run Format of schedule is
Examples:
|
keep_days | string\d+ Number of days to keep |
{- "sched": "07:40|*",
- "keep_days": "90"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
List scheduled tasks
The resulting report will contain these headers:
id, type, profile_id, sched, last_ts, next_ts, keep_days
libmonetra KVS equivalent for endpoint
action_sys
= cron
cron
= list
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
curl -X GET 'https://testbox.monetra.com/api/v2/system/schedule' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Runs an automated task immediately
libmonetra KVS equivalent for endpoint
action_sys
= cron
cron
= run_task
id required | string Example: 56543565 ID of scheduled task |
curl -X PATCH 'https://testbox.monetra.com/api/v2/system/schedule/567865678/run' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Get statistics for account updater
The resulting report will contain these headers:
group_id, group_name, is_token_group, update_count
libmonetra KVS equivalent for endpoint
action_sys
= profile_stats
profile_stats
= accountupdater
bdate required | string Example: bdate=-6 months Start of date range |
edate required | string Example: edate=now End of date range |
group_id | string Example: group_id=36789654543 Group identifier |
curl -X GET 'https://testbox.monetra.com/api/v2/system/stats/account_updater' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Get statistics for auths
The data reported is summarized on a per profile per bucket type basis. There is no means to grab summarization at a group level, it is left as an exercise to the integrator to perform the necessary math if such a report is needed. Profiles without stats for the requested period will not be listed. If a profile doesn't have stats for the requested stat type for the period, it will not be listed.
The resulting report will contain these headers:
id, profile_name, group_id, type, count
When using JSON ouput, the output will be a hierarchical view of various statistics containing each parent group with minimal data.
Example:
{
"id": "1",
"name": "Monetra TopLevel",
"groups": [
{
"id": "111111111111",
"name": "merchant1",
"profiles": [
{
"id": "444444444444",
"profile_name": "merchant1 profile",
"stats": {
"AUTH_VISA": "5",
"AUTH_MC": "903"
}
}
]
},
{
"id": "111111111112",
"name": "some group",
"groups": [
{
"id": "11111111113",
"name": "blah merchant",
"profiles": [
{
"id": "222222222222",
"profile_name": "blah merchant profile",
"stats": {
"AUTH_VISA": "34634",
"AUTH_DISC": "1234"
}
}
]
}
]
}
]
}
libmonetra KVS equivalent for endpoint
action_sys
= profile_stats
profile_stats
= auth
bdate required | string Example: bdate=-6 months Start of date range |
edate required | string Example: edate=now End of date range |
json | object Enum: "yes" "no" Example: json=yes Output the data in a hierarchical json format instead of CSV Values:
|
group_id | string Example: group_id=36789654543 Group identifier |
id | string Profile ID to request statistics for |
types required | object Enum: "AUTH_VISA" "AUTH_MC" "AUTH_AMEX" "AUTH_DISC" "AUTH_JCB" "AUTH_CUP" "AUTH_DEBIT" "AUTH_VISADEBIT_VIA_CREDIT" "AUTH_MCDEBIT_VIA_CREDIT" "AUTH_ACH" "AUTH_CHECK" "ACH_VERIFY" "ACH_REJECT" "ACH_REJECT_AMOUNT" Example: types=AUTH_VISA,AUTH_MC,AUTH_AMEX,AUTH_DISC,AUTH_VISADEBIT_VIA_CREDIT,AUTH_MCDEBIT_VIA_CREDIT Comma Delimited List of Statistic Types to request Values:
|
curl -X GET 'https://testbox.monetra.com/api/v2/system/stats/auth?bdate=epoch&edate=now&types=AUTH_VISA,AUTH_MC&json=no' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Get detail profile statistics for settled transactions
This is an expensive query to get fine grained summarized details about settled transactions on a per-profile basis.
The resulting report will contain these headers:
id, profile_name, group_id,
VISA_auth_cnt, VISA_auth_amt, VISA_refund_cnt, VISA_refund_amt,
MC_auth_cnt, MC_auth_amt, MC_refund_cnt, MC_refund_amt,
DISC_auth_cnt, DISC_auth_amt, DISC_refund_cnt, DISC_refund_amt,
AMEX_auth_cnt, AMEX_auth_amt, AMEX_refund_cnt, AMEX_refund_amt,
JCB_auth_cnt, JCB_auth_amt, JCB_refund_cnt, JCB_refund_amt,
CUP_auth_cnt, CUP_auth_amt, CUP_refund_cnt, CUP_refund_amt,
DEBIT_auth_cnt, DEBIT_auth_amt, DEBIT_refund_cnt, DEBIT_refund_amt,
VISADEBIT_VIA_CREDIT_auth_cnt, VISADEBIT_VIA_CREDIT_auth_amt, VISADEBIT_VIA_CREDIT_refund_cnt, VISADEBIT_VIA_CREDIT_refund_amt,
MCDEBIT_VIA_CREDIT_auth_cnt, MCDEBIT_VIA_CREDIT_auth_amt, MCDEBIT_VIA_CREDIT_refund_cnt, MCDEBIT_VIA_CREDIT_refund_amt,
EBT_auth_cnt, EBT_auth_amt, EBT_refund_cnt, EBT_refund_amt,
GIFT_auth_cnt, GIFT_auth_amt, GIFT_refund_cnt, GIFT_refund_amt,
ACH_auth_cnt, ACH_auth_amt, ACH_refund_cnt, ACH_refund_amt,
CHECK_auth_cnt, CHECK_auth_amt, CHECK_refund_cnt, CHECK_refund_amt
When using JSON ouput, the output will be a hierarchical view of various statistics containing each parent group with minimal data.
Example:
{
"id": "1",
"name": "Monetra TopLevel",
"groups": [
{
"id": "111111111111",
"name": "merchant1",
"profiles": [
{
"id": "444444444444",
"profile_name": "merchant1 profile",
"stats": {
"VISA_auth_cnt": "5",
"VISA_auth_amt": "903.43"
}
}
]
},
{
"id": "111111111112",
"name": "some group",
"groups": [
{
"id": "11111111113",
"name": "blah merchant",
"profiles": [
{
"id": "222222222222",
"profile_name": "blah merchant profile",
"stats": {
"MC_auth_cnt": "1",
"MC_auth_amt": "12.34"
}
}
]
}
]
}
]
}
libmonetra KVS equivalent for endpoint
action_sys
= profile_stats
profile_stats
= detail
bdate required | string Example: bdate=-6 months Start of date range |
edate required | string Example: edate=now End of date range |
json | object Enum: "yes" "no" Example: json=yes Output the data in a hierarchical json format instead of CSV Values:
|
group_id | string Example: group_id=36789654543 Group identifier |
id | string Profile ID to request statistics for |
curl -X GET 'https://testbox.monetra.com/api/v2/system/stats/detail?bdate=epoch&edate=now&json=no' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Get statistics for orders
The resulting report will contain these headers:
profile_id, quickorder_count, order_count, invoice_count
libmonetra KVS equivalent for endpoint
action_sys
= profile_stats
profile_stats
= orders
bdate | string Example: bdate=-6 months Start of date range |
edate | string Example: edate=now End of date range |
curl -X GET 'https://testbox.monetra.com/api/v2/system/stats/orders' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Get statistics for a profile
libmonetra KVS equivalent for endpoint
action_sys
= profile_stats
profile_id required | string Example: 78965743785967 Profile ID for statistics |
bdate | string Example: bdate=-6 months Start of date range |
edate | string Example: edate=now End of date range |
totalsonly | object Enum: "yes" "no" Example: totalsonly=no Only include totals Values:
|
curl -X GET 'https://testbox.monetra.com/api/v2/system/stats/profile/11245252' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "profile_id": "78965743785967",
- "totaltransnum": "5",
- "totaltransamount": "139.88",
- "totalauthnum": "4",
- "totalauthamount": "152.20",
- "totalreturnnum": "1",
- "totalreturnamount": "12.32"
}
Get statistics for profiles
The resulting report will contain these headers:
profile_id, status, profile_name, group_id, create_ts, name, totaltransNum,
totaltransAmount, totalAuthNum, totalAuthAmount, totalReturnNum,
totalReturnAmount
When using JSON ouput, the output will be a hierarchical view of various statistics containing each parent group with minimal data.
Example:
{
"id": "1",
"name": "Monetra TopLevel",
"groups": [
{
"id": "111111111111",
"name": "merchant1",
"profiles": [
{
"id": "444444444444",
"status": "ACTIVE",
"profile_name": "123456789",
"name": "Gadgets",
"create_ts": "2023-07-18 13:00:43 -0400",
"stats": {
"totalAuthNum": "5",
"totalAuthAmount": "903.43",
"totalReturnNum": "0",
"totalReturnAmount": "0.00"
}
}
]
},
{
"id": "111111111112",
"name": "some group",
"groups": [
{
"id": "11111111113",
"name": "blah merchant",
"profiles": [
{
"id": "222222222222",
"status": "ACTIVE",
"profile_name": "987654321",
"name": "My store",
"create_ts": "2023-07-06 18:28:44 -0400",
"stats": {
"totalAuthNum": "1",
"totalAuthAmount": "12.34",
"totalReturnNum": "0",
"totalReturnAmount": "0.00"
}
}
]
}
]
}
]
}
libmonetra KVS equivalent for endpoint
action_sys
= profile_stats
bdate required | string Example: bdate=-6 months Start of date range |
edate required | string Example: edate=now End of date range |
json | object Enum: "yes" "no" Example: json=yes Output the data in a hierarchical json format instead of CSV Values:
|
group_id | string Example: group_id=36789654543 Group identifier |
profile_id | string Example: profile_id=78965743785967 Merchant profile identifier User's may have access to run transactions across multiple profiles. This allows the user to specify which profile a given action should apply to. If not provided the default profile associated with the user will be used. If a default profile is not associated with the user this parameter is mandatory. |
totalsonly | object Enum: "yes" "no" Example: totalsonly=no Only include totals Values:
|
show_zero_amounts | object Enum: "yes" "no" "only" Example: show_zero_amounts=yes Whether or not to show profiles with zero totals Values:
|
create_ts_max | string Only show profiles created before this date |
active_profiles_only | object Enum: "yes" "no" Example: active_profiles_only=yes Output results only for active profiles Values:
|
curl -X GET 'https://testbox.monetra.com/api/v2/system/stats/profile' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "report": "..."
}
Export data from the database
Exporting data is normally used when upgrading the payment server to a new version that has a different DB schema. It is also used when moving the payment server to a different system and upgrading at the payment server at the same time.
Data export can take a long time depending on how much data is in
the DB. Export stages
can be specified to export data in chunks
that can be imported in chunks. This can reduce downtime by allowing
stages with larger amount of data to be imported later.
Historic data is typically the largest stage and is not needed for transaction processing. Importing stages 1 and 2 will allow transactions to start processing on the new system while the rest of the data is being brought over.
If stages
is not provides a full export will take place.
See the "Set Maintenance Level" operation which is used with the export process.
libmonetra KVS equivalent for endpoint
action_su
= importexport
importexport
= export
file required | string Example: file=/tmp/export.bin Import / Export file path File path to the file that holds the exported database data. On import this is the path where the file should be located and named. On export this is the exported datat that should be loaded later. This is a full file path including filename. The file is located on the system running the payment server. It cannot be on the user's system. This is a local to the payment server process. If moving servers the export file must be transfered to the new system running the payment server. |
stages | string Example: stages=0-5 Export stages Can be a single numeric value that specifies the stage. Or
a range of stages. E.g. Stages:
|
hsm_cardshield_export | object Enum: "yes" "no" Example: hsm_cardshield_export=no Export HSM protected keys Indicates whether or not to export keys from an HSM (if an HSM is in use) rather than keeping them as HSM protected keys. Default is Values:
|
curl -X GET 'https://testbox.monetra.com/api/v2/system/database?file=/tmp/db.import' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "key": "DE67875FEAB4543C"
}
Import data from an export file into the database
The database must be empty for a full import. Merging data into a database with existing data is not supported. You must start with an empty DB before starting the import process.
A partial import when using multiple export stages must have the import happen in the stage order. For example, stage 4 cannot be imported before stage 3.
libmonetra KVS equivalent for endpoint
action_su
= importexport
importexport
= import
file required | string Import / Export file path File path to the file that holds the exported database data. On import this is the path where the file should be located and named. On export this is the exported datat that should be loaded later. This is a full file path including filename. The file is located on the system running the payment server. It cannot be on the user's system. This is a local to the payment server process. If moving servers the export file must be transfered to the new system running the payment server. |
key required | string[A-Z0-9]+ Encryption key protecting exported DB data The key is a hex encoded string. It will be generated by the payment server during export and must be provided during the import. A unique key is generated per export. If staged export is used, each stage will have a different encryption key. |
{- "file": "/tmp/export.bin",
- "key": "DE67875FEAB4543C"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved"
}
Export the record of a specified transaction
Exporting/importing transaction data is used to facilitate the concept of an "overhead authorization system", meaning one system authorizes a transaction that a different store will settle. This section details the steps needed to transfer the transaction data from one payment server instance to another.
Consider this example: A company has one website and multiple physical stores. There is a payment server instance running for the website's Ecommerce shopping cart as well as one for each of the stores. A customer can place an order through the website that will be fulfilled by one of the stores. The Ecommerce instance of the payment server will handle the actual authorization, but the fulfilling store needs the transaction details for bookkeeping purposes. In this example, the Ecommerce payment server instance would carry out the sale and then encrypt and export the unsettled transaction data. It would then send that data to the store fulfilling the order, which would import and decrypt the data. At this point, the physical store would have the record of the sale as if it had authorized the transaction itself. If the transaction was captured, it will be added to the open batch and settled at this store.
The transaction data will be returned encrypted. Continuing with
the example above, the physical stores would each create a RSA public/private
key pair. This is done either internally by provisioning an E2EE RSA key
pair or if managed externally, by creating an RSA key pair manually. If done
internally, then the private key will be securely stored in Monetra. If done
externally, then the path to the private key will need to be set in
txn_import_key
in main.conf
. In both cases, the public key will be sent to the
Ecommerce instance, which will then add it to the associated profile in
the txn_export_key
configuration parameter.
libmonetra KVS equivalent for endpoint
action_admin
= tran_export
txnexport
= encrypted
ttid required | string Example: 96748596765467 Transaction identifier |
v8_support | object Enum: "yes" "no" Example: v8_support=no Values:
|
curl -X POST 'https://testbox.monetra.com/api/v2/system/transaction/{ttid}' --header 'X-API-KEY-ID: P0055817F457C3AFE' --header 'X-API-KEY: bpWBB75zuW1sD6U4wJAzWDl9CAzoqJ/q1a5RnOHgShE='
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "txnexportdata": "string"
}
Import a transaction from a previously-exported packet
This will generate a new ttid
that is specific to the destination account
The import will assign a different ttid
within this importing payment
server than the ttid
from the exporting payment server.
libmonetra KVS equivalent for endpoint
action_admin
= tran_import
txndata required | string Base64-encoded export data packet, as obtained from a Transaction Export |
{- "txndata": "string"
}
{- "code": "AUTH",
- "msoft_code": "INT_SUCCESS",
- "verbiage": "Transaction approved",
- "ttid": "96748596765467"
}