EML OMS Platform (v1.0)

Download OpenAPI specification:

An integration with the North American platform

Overview

The EML Payments API exposes information and processing as a suite of web services adopting the Representational State Transfer (REST) architectural style. Key API concepts are:

  • Resources – The "things" that are important, such as cards and transactions.
  • URIs – The name and address of a resource.
  • Stateless – Each request should provide all the information necessary to complete the request such as authentication credentials.
  • Uniform Interface – HTTP verbs (GET, POST, PUT and DELETE) are preferred over specifying custom verbs in URIs or request bodies.
  • Representations – Some data about the current state of a resource such as a JSON object serialization or XML document.

Authentication and Authorization

Clients will be assigned a user name and password for API access. HTTP Basic Authentication as described in RFC 2617 will be used to pass credentials. Each user name will be granted specific rights to view and manipulate resources.

Caching

The Cache-Control response header will be used to specify caching directives. Many representations are created dynamically for each request and should not be cached. These services will return the Cache-Control: no-cache header.

Duplicate Requests

Some services provide duplicate transaction checking via an optional header named Idempotency-Key. If provided, this header should contain a string that is unique across a program and is up to 255 characters in length. The idempotency key will be checked against a local store for duplicates. If a duplicate is found, the last response for that idempotency key will be returned. It is important to note that the actual contents of the transaction are not checked for duplication at this time – only the idempotency key. In addition, the keys and responses are only retained for approximately seven days.

If there is a duplicate transaction, a header named X-Eml-Duplicate will be returned with a value of true. This header is only returned if a duplicate was detected.

Header name Data Type Max Length Comments
Idempotency-Key String 255 characters Must be unique for a given endpoint within a program. This header is returned to the client.
X-Eml-Duplicate Boolean Contains true if a duplicate was detected, false otherwise. This header is only returned if Idempotency-Key was sent.

Faults

Response Field Data Type Description Default
code Integer The identifier for this fault type. Yes
message String The message; in English; associated with the fault. Yes

Example

{

"code": 500,

"message": "Server Error"

}

Localization

The services will provide localized values for strings where possible. Clients should provide the ACCEPT-LANGUAGE header to indicate their preferred language. If this header is not specified, the default is US English (en-US). Generally speaking, data will be formatted using an invariant culture. User-facing strings, such as transaction descriptions, will be localized where possible.

Representations

Resource representations in JSON and XML are available. Responses will be provided in UTF-8 encoding. Clients may specify the desired response format by providing an Accept header. JSON is the default format if no Accept header is provided.

The format of representations passed in request bodies may be specified using the Content-Type header. JSON is the default format if no Content-Type header is provided.

Format Header Value Default
JSON application/json Yes
XML application/xml No

Response representations will contain minimal whitespace. XML representations have an element-centric structure.

Data Type Description
boolean Logical true or false.
currency Formatted as ISO 4217 alphabetic currency codes (i.e. USD; EUR; GBP; etc.)
datetime Unambiguous dates and times. XML values use the RFC 3339 standard; for example 1990-12-31T07:59:60Z and 1990-12-30T23:59L60-08:00. JSON values specify milliseconds since January 1; 1970 UTC; for example “VDate(1788238799999)V”.
decimal Signed decimal values.
integer Signed whole number values.
string Any string of characters.

Response Codes

Request status information will be communicated through HTTP response codes. The following table lists common response codes from HTTP/1.1 specification.

Response Code Message Description Response Body
200 Ok Standard response for successful HTTP requests. Service-specific representation
201 Created The request has been fulfilled and resulted in a new resource being created. Service-specific representation
400 Bad Request The request could not be understood by the server due to malformed syntax. Fault Information
401 Invalid username or password The request requires valid user authentication. Fault Information
403 Forbidden The server understood the request; but is refusing to fulfill it due to a lack of adequate user permission or invalid credentials. Fault Information
404 The URL does not match any of the defined routes The server has not found anything matching the Request-URI. Fault Information
500 Internal Server Error The server encountered an unexpected condition which prevented it from fulfilling the request. This can occur when a message sent to the API is not in the correct format. Fault Information
504 Gateway Time-out The server; while acting as a gateway or proxy; did not receive a timely response from the upstream server. Fault Information

URI Structure

Card Identifier Card Identifier – {card_id} – Is a string value that uniquely identifies a card in several requests. When present this value is used in conjunction with the search_parameter value explained below to uniquely identify a card.

  • https://webservices.storefinancial.net/api/v1/en
    • /cards
      • /{card_id}
        • /refunds
        • /refund_reversals
        • /transactions
        • /activations
        • /locks
        • /unlocks
        • /voids
        • /reloads
        • /register
        • /transfer
        • /pin
      • /new
        • /activations
        • /batch_activations
      • /{token}
        • /display
    • /agreements
    • /transmissions
      • /{card_id}
        • /resend_fax
    • /b2b
      • /payee
        • /{program}
          • /{client_payee_id}
            • /delete
        • /{client_payee_id}
          • /enroll
          • /update

Common Query String Values

These query string parameter values may be used in multiple requests.

Parameter Required Description
search_parameter No Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText. Refer to Search Parameter Options for valid values.
Program Yes When using the search_parameter of ClientTrackingId; this value will indicate which program the provided card_id belongs to. While other search_parameters are guaranteed to be unique across the system and are assigned by StoreFinancial; ClientTrackingId is assigned to the card by an integration client and there is no guarantee that it will be unique to the system.
Fields No A comma-separated list of the fields to include in the response. The default fields will be returned if this is not specified. The special value “all” may be provided to return all response fields.

Country Codes

The */country request field accepts values as defined in ISO 3661-1 alpha-3 code.

Request Field Data Type
*/country String(3)

Sample

"location" : {

"name": "Location Name",

"province": "MB"

"country": "CAN"

},

State and Province Codes

The */state and */province request fields accept values as defined in ISO 3166-2.

Request Field Data Type
*/state String(2)
*/province String(2)

Samples

State "location" : { "name": "Location Name", "state" : "CA", "country" : "USA" },

Province "location" : { "name": "Location Name", "province" : "MB", "country" : "CAN" },

Multiple Requests

For requests which can return multiple results, the following additional request and response fields will be used.

Request Field Data Type Description
Take Integer The number of results to return. Default is 20. Maximum is 1000.
Skip Integer The number of results to offset in order to return the current page. Default is 0.
Response Field Data Type Description Default
Count Integer The total number of results available; but not necessarily the number returned. Yes

Samples

JSON Request GET https://webservices.storefinancial.net/api/v1/en/entities?skip=0&take=3 HTTP/1.1 Accept: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

Response { "count" : 15; "entities" : [ { "result_field_1" : "1234567890123456"; "result_field_2" : 0.00 }; { "result_field_1" : "2345678901234567"; "result_field_2" : 10.00 }; { "result_field_1" : "3456789012345678"; "result_field_2" : 20.00 }] }

Banking Info Service

Submit Bank Account Information

This payment provider API is utilized to submit participating supplier’s ACH data.

Authorizations:
BasicAuth
Request Body schema: application/json

Details required to submit Bank Account Information

bank_account_name
required
string <= 255 characters

Name of Supplier Bank.

account_number
required
string <= 25 characters

Supplier Bank Account Number.

routing_number
required
string <= 9 characters

Supplier Bank routing Number.

email
required
string <= 255 characters

Supplier Email Address.

client_tracking_id
required
string <= 255 characters

A unique value assigned the system.

supplier_name
string <= 50 characters

Supplier Name.

ar_contact
string <= 50 characters

Supplier Accounts Payable Contact.

ar_contact_phone
string <= 50 characters

Supplier Accounts Payable Contact Phone Number.

ar_contact_email_address
string <= 255 characters

Supplier Accounts Payable Contact Email Address

created_by_user
required
string <= 50 characters

User that created the record.

Responses

Request samples

Content type
application/json
{
  • "bank_account_name": "BnkActName2017-01-25.15.10.05",
  • "account_number": "AN20170125-151005",
  • "routing_number": 151005999,
  • "email": "em151005@test.com",
  • "client_Tracking_Id": "f20170125151005",
  • "supplier_name": "SupName151005",
  • "ar_contact_name": "arContact0125151005",
  • "ar_contact_phone": 5551251510,
  • "ar_contact_email_address": "cEmail151005@test.com",
  • "created_by_user": "CreatedBy0125-151005"
}

Response samples

Content type
application/json
{
  • "id": 1
}

Submit Supporting ACH Images

This payment provider API is utilized to provide a participating supplier’s supporting ACH documentation (i.e. image of blank check or bank letter).

Authorizations:
BasicAuth
path Parameters
client_tracking_id
required
string

Client tracking identifier.

Request Body schema: multipart/form-data

Details required to submit supporting ACH images

image_file
required
string <binary>

Blank Check or Bank Letter; Accepted formats are pdf; tiff; jpeg and png

Responses

Response samples

Content type
application/json
{
  • "code": 400,
  • "message": "The required parameter ‘client_tracking_id’ is missing or invalid."
}

Tax Receipt for Transfer

This API is used to provide EML with the sales tax amount to facilitate sales tax funds movement.

Authorizations:
BasicAuth
path Parameters
program
required
string

This unique identifier is provided by EML

Request Body schema: application/json

The information required to get Tax receipt for Transfer,

origin
required
string

An identifier that is unique for a given origin. It can be Client_Tracking_id.

transaction_id
required
string

An identifier that is unique to the specific transaction.

assessed_date
required
string <date-time>

The date the tax was assessed.

amount
required
number <decimal>

The tax assessment.

Responses

Request samples

Content type
application/json
{
  • "origin": "ConsultantID1234",
  • "transaction_id": 12345,
  • "assessed_date": "2016-10-21T13:47:59.9487238-05:00",
  • "amount": 10
}

Response samples

Content type
application/json
{
  • "tax_receipt_for_transfer_id": 123
}

Cardholder Management

Lock a Card

This API is used to prevent a card from being used for payments.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
program
required
string

When using the search_parameter of ClientTrackingId; this value will indicate which program the provided card_id belongs to. While other search_parameters are guaranteed to be unique across the system and are assigned by EML Payments; ClientTrackingId is assigned to the card by an integration client and there is no guarantee that it will be unique to the system.

search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

Request Body schema: application/json

Details required to lock the card

merchant_group
required
string

This unique identifier is provided by EML

note
required
string

A value provided by the client; usually descriptive

reason
required
string
Enum: "Damaged" "Lost" "Miscellaneous" "OfficeError" "Other" "PastAccountExpirationDate" "Stolen" "Suspicious"

The reason for locking the card

Responses

Request samples

Content type
application/json
{
  • "reason": "Lost",
  • "note": "Lock the Card",
  • "program": "EMLFi123",
  • "merchant_group": "EMLFi987"
}

Response samples

Content type
application/json
{
  • "code": 404,
  • "message": "The card ending in '**** **** **** ****' was not found"
}

Lookup Cards

This API retrieves cards either by given cardid range (first card id and last card id) or by the bulk activation system transaction id.

If both cardid range and activation system transaction id are provided, cardid range takes priority.

Authorizations:
BasicAuth
Request Body schema: application/json

Details about the bulk card activation

first_card_id
string

Starting card identifier of the range.

last_card_id
string

Ending card identifier of the range.

search_parameter
string
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

program
required
string = 10 characters

Unique tag of the program associated with the cards.

transaction_id
integer <int64>

The activation transaction ID under which the cards were activated.

Responses

Request samples

Content type
application/json
{
  • "first_card_id": "ZTYGD5V8CLZBWQJ8",
  • "last_card_id": "ZJHGD5V8CLZBWQJ7",
  • "search_parameter": "ExternalId",
  • "program": "Progr12345",
  • "transaction_id": 12568974
}

Response samples

Content type
application/json
{
  • "cards": [
    ]
}

Merge Cards

This API is used to transfer funds from one or more source cards to a destination card, charge fee and close the source cards, provided all cards belong to the same program.

Authorizations:
BasicAuth
path Parameters
id
required
string

Destination card ID

query Parameters
program
required
string

When using the search_parameter of ClientTrackingId; this value will indicate which program the provided card_id belongs to. While other search_parameters are guaranteed to be unique across the system and are assigned by EML Payments; ClientTrackingId is assigned to the card by an integration client and there is no guarantee that it will be unique to the system.

search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

Request Body schema: application/json

Details required to merge cards

from_card_ids
required
Array of strings [ 1 .. 5 ] items unique

A list of source card identifiers, with a max of 5 elements.

merchant_group
required
string = 10 characters

The Merchant Group Unique Tag associated with the destination card.

object
note
string <= 255 characters

A value provided by the client. usually descriptive. Must be 255 characters or less.

reconciliation_id
string <= 50 characters

A value provided by the client. Must be 50 characters or less.

Responses

Request samples

Content type
application/json
{
  • "from_card_ids": [
    ],
  • "merchant_group": "EMLEUSi362",
  • "location": {
    },
  • "note": "test note",
  • "reconciliation_id": "string"
}

Response samples

Content type
application/json
{
  • "to_card_id": "ZJHGD5V8CLZBWQJ7",
  • "total_amount_transferred": 100,
  • "available_balance": 145,
  • "fee": 5,
  • "currency": "USD",
  • "merge_unload_system_transaction_id": 12075894,
  • "merge_load_system_transaction_id": 12075895,
  • "from_cards": [
    ]
}

Purchaser Information

This API is used to indicate the purchaser of a card.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
program
required
string

When using the search_parameter of ClientTrackingId; this value will indicate which program the provided card_id belongs to. While other search_parameters are guaranteed to be unique across the system and are assigned by EML Payments; ClientTrackingId is assigned to the card by an integration client and there is no guarantee that it will be unique to the system.

search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

Request Body schema: application/json

Details required to indicate purchaser of a card.

isperson
required
boolean

Indicates if an Individual (True) or Organization (False)

name
string <= 50 characters

Organization name. Required if isperson is False.

first_name
string <= 50 characters

First name (alpha and space characters only). Required if isperson is True.

last_name
string <= 50 characters

Last name (alpha and space characters only). Required if isperson is True.

address1
required
string <= 255 characters

First address line.

address2
string <= 255 characters

Second address line.

city
required
string <= 255 characters

City.

state
string

Required when contactentity/country utilizes states. This is the state abbreviation as defined by ISO 3166-2

province
string

Required when contactentity/country utilizes provinces This is the province abbreviation as defined by ISO 3166-2

postal_code
string

Required when contactentity/country utilizes postal codes

country
required
string

This is the country code as defined by ISO 3166-1 alpha-3 code

phone
string <= 20 characters

Phone Number

email
required
string

Email address. Format ‘test@email.com

Responses

Request samples

Content type
application/json
{
  • "isperson": false,
  • "name": "Company X",
  • "address1": "1904 Oak Lane",
  • "address2": "4th Floor",
  • "city": "Overland Park",
  • "state": "KS",
  • "postal_code": 12345,
  • "country": "USA",
  • "phone": 9135552222,
  • "email": "test@mail.com"
}

Response samples

Content type
application/json
{
  • "code": 400,
  • "message": "Required field is missing"
}

Register a Card

This API is used to register a card.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
program
required
string

When using the search_parameter of ClientTrackingId; this value will indicate which program the provided card_id belongs to. While other search_parameters are guaranteed to be unique across the system and are assigned by EML Payments; ClientTrackingId is assigned to the card by an integration client and there is no guarantee that it will be unique to the system.

search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

Request Body schema: application/json

Details required to register a card

object

Responses

Request samples

Content type
application/json
{
  • "first_name": "John",
  • "last_name": "Doe",
  • "address1": "123 Main St",
  • "city": "Overland Park",
  • "state": "KS",
  • "postal_code": "12345",
  • "country": "USA",
  • "email": "test@mail.com",
  • "dob": "11011980"
}

Response samples

Content type
application/json
{
  • "code": 400,
  • "message": "Address line 1 is required"
}

Register Card to an Identified Customer

Registers a card to a cardholder that has previously been through customer identification.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
program
required
string

When using the search_parameter of ClientTrackingId; this value will indicate which program the provided card_id belongs to. While other search_parameters are guaranteed to be unique across the system and are assigned by EML Payments; ClientTrackingId is assigned to the card by an integration client and there is no guarantee that it will be unique to the system.

search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

Request Body schema: application/json

The information required to register a card.

token
string <byte>

A base64-encoded customer identification token.

Responses

Request samples

Content type
application/json
{
  • "token": "eyJhbGciOiJub25lIn0.eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ"
}

Response samples

Content type
application/json
{
  • "first_name": "Jane",
  • "last_name": "Doe",
  • "email": "jane.doe@example.com",
  • "phone": "+18165550124",
  • "address": "8330 Ward Pkwy",
  • "city": "Kansas City",
  • "state": "MO",
  • "province": "ON",
  • "country": "USA",
  • "postal_code": "64114-2027"
}

Replace a Card

This API is used to replace an existing card.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

Request Body schema: application/json

Details required to add funds onto an active card

program
required
string = 10 characters

The unique tag of the program for which to replace a card.

merchant_group
required
string

This unique identifier is provided by EML

note
string

A value provided by the client: usually descriptive

client_tracking_id
string <= 50 characters

A client-assigned value that uniquely identifies a card within the scope of a program.

card_design_tag
string

A value used to determine which card design to use in the card encoding process.

lock_on_activation
boolean

A flag specifying if the replacement card should be locked upon activation. The default behavior is to activate the card and not lock it. Setting this flag to true will ensure an Activation Locked status on the replacement card.

to_card_type
string

An indicator that determines what type of card to create for the replacement card. Valid values are: 1 for Physical; 2 for Virtual.

waive_fee
boolean

An optional value used to indicate whether any associated Transfer Fees should be waived or not.

object

The activating location. By default, the activating lcoation will be the account used to make the request.

Responses

Request samples

Content type
application/json
{
  • "program": "Progr12345",
  • "merchant_group": "string",
  • "note": "string",
  • "client_tracking_id": "Client-Assigned-Id-1",
  • "card_design_tag": "string",
  • "lock_on_activation": true,
  • "to_card_type": "string",
  • "waive_fee": true,
  • "location": {
    }
}

Response samples

Content type
application/json
{
  • "card_id": 0,
  • "id": "string",
  • "client_tracking_id": "Client-Assigned-Id-1",
  • "available_balance": 0,
  • "currency": "string",
  • "actual_balance": 0,
  • "activation_amount": 0,
  • "program_supports_statements": true,
  • "program_3ds_enabled": true,
  • "amf_amount": 0,
  • "adjusted_balance": 0,
  • "is_icc_card": true,
  • "has_atm_access": true
}

Search for Cards

This API is used to search for card(s) by providing one or more filter parameters to the /cards resource. The response will be an array of zero (0) or more cards. The response fields are the same as defined for the Retrieve Card Information API.

Authorizations:
BasicAuth
query Parameters
carrier_number
string

This is a filter parameter (One of the filter parameters must be supplied). An account number assigned to the card to communicate with a third-party card processor. This parameter is a string exactly 16 characters long containing only numbers.

client_tracking_id
string

This is a filter parameter (One of the filter parameters must be supplied). A unique value assigned by the client; used in reporting to further filter metadata.

program
required
string

When using the search_parameter of ClientTrackingId; this value will indicate which program the provided card_id belongs to. While other search_parameters are guaranteed to be unique across the system and are assigned by EML Payments; ClientTrackingId is assigned to the card by an integration client and there is no guarantee that it will be unique to the system.

fields
string

A comma-separated list of the fields to include in the response. The special value "all" may be provided to return all response fields. The Default fields will be returned if this parameter is not specified and the Always fields will always be returned even if you specify or don't specify this parameter.

Responses

Response samples

Content type
application/json
{
  • "count": 2,
  • "cards": [
    ]
}

Transfer Card

This API is used to transfer the balance from one card to another within the same program

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
program
required
string

When using the search_parameter of ClientTrackingId; this value will indicate which program the provided card_id belongs to. While other search_parameters are guaranteed to be unique across the system and are assigned by EML Payments; ClientTrackingId is assigned to the card by an integration client and there is no guarantee that it will be unique to the system.

search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

fields
string

A comma-separated list of the fields to include in the response. The special value "all" may be provided to return all response fields. The Default fields will be returned if this parameter is not specified and the Always fields will always be returned even if you specify or don't specify this parameter.

Request Body schema: application/json

Details required to transfer a card

merchant_group
required
string <= 10 characters

A 10 character string value that is proviced by EML to uniquely identify the client Merchant Group

note
required
string <= 4000 characters

A value provided by the client: usually descriptive

tocard
integer

Required if tocardtype = 1. The new card that will receive the existing balance.

tocardtype
required
integer

1 = Physical Card : 2 - Virtual Card

object
feeamount
number <decimal>

An override to the fee amount associated with the program or merchant group

waivefee
boolean

If a transfer fee is configured for a program or mercahnge group in the EML system setting waivefee = 1 will waive the fee for the transfer action. If not defined in the API call the transfer fee configured in the EML system will be applied. Note that this field is required if payment types are not configured within the EML system for the program or merchant group.

disable_ctid_transfer
boolean

A flag specifying if the client tracking id (ctid) should transfer from the old card to the new card. The default behavior is to transfer the ctid. Setting this flag to true prevents that behavior.

Responses

Request samples

Content type
application/json
{
  • "tocard": "2345678901234561",
  • "tocardtype": "1",
  • "merchant_group": "EMLFi987",
  • "note": "Transfer note",
  • "location": {
    }
}

Response samples

Content type
application/json
{
  • "card_id": 137719,
  • "id": "Z43210987654321X",
  • "client_tracking_id": "SampleCTID-A",
  • "available_balance": 25.1,
  • "currency": "USD",
  • "can_activate": false,
  • "can_redeem": true,
  • "program_can_register": false,
  • "security_code": "123456",
  • "expiration_date": "/Date(1538369999999)/",
  • "account_expiration_date": "/Date(1477890000000)/",
  • "is_virtual": true,
  • "is_reloadable": false,
  • "actual_balance": 25,
  • "status": "Active",
  • "is_registered": false,
  • "activating_merchant_group_name": "EML Payments MG",
  • "activating_merchant_group_uniquetag": "EMLPay987",
  • "activation_country": "United States",
  • "activation_date": "/Date(1377624625133-0500)/",
  • "program_name": "EML",
  • "program_uniquetag": "EMLFi123",
  • "amf_amount": 1,
  • "amf_start_date": "/Date(1419746400000-0600)/",
  • "amf_next_date": "/Date(1419746400000-0600)/",
  • "distributor_refund": false,
  • "card_type": "Regular",
  • "activation_transaction_id": 123456789,
  • "promotion_balance": 25,
  • "promotion_type_id": 1,
  • "promotion_expiration": "/Date(1477890000000-0500)/",
  • "is_organization_registration": false,
  • "currency_info": {
    },
  • "adjusted_balance": 25,
  • "pin_enabled": true,
  • "bank_name": "Bank of US",
  • "has_pin": false,
  • "is_icc_card": false,
  • "has_atm_access": false
}

Unlock a Card Activation Lock

This API is used to unlock cards locked during the card activation process

Authorizations:
BasicAuth
Request Body schema: application/json

Details required to unlock a card activation lock

card_id
required
string

Card identifier

merchant_group
required
string

This unique identifier is provided by EML

security_code
required
string

The Security Code provided by the client to verify the user

search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

cardholder_user_id
string

Cardholder identifier

Responses

Request samples

Content type
application/json
{
  • "card_id": "SampleClientTrackingId",
  • "merchant_group": "EMLFi987",
  • "search_parameter": "ClientTrackingId",
  • "security_code": "123456",
  • "cardholder_user_id": "Joe testmanator"
}

Response samples

Content type
application/json
{
  • "code": 404,
  • "message": "Merchant group not found"
}

Unlock all Cards with Activation Locks

This API is used to unlock cards locked during the card activation process given a Client Reference Number (Order Number). If any card on the order is not in a locked state it is skipped.

Authorizations:
BasicAuth
path Parameters
client_reference_number
required
string

The Client Reference Number (Order Number)

Responses

Response samples

Content type
application/json
{
  • "code": 500,
  • "message": "Merchant group not found."
}

Unlock Card

This API is used to unlock card(s) that are locked

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
program
required
string

When using the search_parameter of ClientTrackingId; this value will indicate which program the provided card_id belongs to. While other search_parameters are guaranteed to be unique across the system and are assigned by EML Payments; ClientTrackingId is assigned to the card by an integration client and there is no guarantee that it will be unique to the system.

search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

Request Body schema: application/json

Details required to unlock a card

merchant_group
required
string

This unique identifier is provided by EML

note
required
string

A value provided by the client: usually descriptive

Responses

Request samples

Content type
application/json
{
  • "merchant_group": "EMLFi987",
  • "note": "Void for a customer"
}

Response samples

Content type
application/json
{
  • "code": 404,
  • "message": "Card cannot be found"
}

Void Card

This API is used to void a card that has been activated. A voided card is available for activation. Program settings determine when a card is no longer voidable. A card that is no longer voidable should be refunded.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
program
required
string

When using the search_parameter of ClientTrackingId; this value will indicate which program the provided card_id belongs to. While other search_parameters are guaranteed to be unique across the system and are assigned by EML Payments; ClientTrackingId is assigned to the card by an integration client and there is no guarantee that it will be unique to the system.

search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

Request Body schema: application/json

Details required to void a card

merchant_group
required
string

This unique identifier is provided by EML

note
required
string

A value provided by the client: usually descriptive

Responses

Request samples

Content type
application/json
{
  • "merchant_group": "EMLFi987",
  • "note": "Void for a customer"
}

Void Transaction By Card Id

This API is used to void all cards that belong to the same activation transaction as the given card ID. User only needs to provide one card id from activation transaction. The API will find the related activation transaction and void all cards under it.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
program
required
string

When using the search_parameter of ClientTrackingId; this value will indicate which program the provided card_id belongs to. While other search_parameters are guaranteed to be unique across the system and are assigned by EML Payments; ClientTrackingId is assigned to the card by an integration client and there is no guarantee that it will be unique to the system.

search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

Request Body schema: application/json

Details about the void transaction.

merchant_group
required
string

The Merchant Group Unique Tag associated with the card

note
required
string

A value provided by the client: usually descriptive

Responses

Request samples

Content type
application/json
{
  • "merchant_group": "EMLFi987",
  • "note": "Void for a customer"
}

Response samples

Content type
application/json
{
  • "system_transaction_id": 12345678,
  • "total_cards_voided": 2,
  • "card_ids": [
    ]
}

ControlPay Service

A provider wishing to take part in EML ControlPay must implement specific API endpoints that will be used during delegated authorization scenarios. The endpoint's service and message requirements are defined in this document. Before a provider will be allowed to integrate with EML's processing system, conformance to this document will be validated by a certification process.

The endpoint defined is only part of the full integration. In addition to the behaviors defined in this document, providers may wish to receive various transaction notifications like adjustments, settlements, and expirations. For further information, please review the Notifications section.

Participation

Participation in this service is restricted to registered clients. To register, clients must provide EML with the URL and authentication credentials for their externally exposed delegated authorization endpoint. EML will use TLS transport with the HTTP basic authentication scheme (https://www.ietf.org/rfc/rfc2617.txt) to connect to the specified endpoint. EML will not support custom port numbers.

Message Types

A registered client will receive the following message types with fields of the listed data types.

Message Type Generated When
Authorization An authorization decision needs to be made.
Balance Inquiry A request for an account balance has been received.

Data Types

Data Type Description
boolean A true or false value.
country code A string country code following ISO 3166.
currency code A string currency code following ISO 4217.
decimal A decimal number with whole and fractional parts.
object A JSON object.
string A value made up of alphanumeric characters; including special characters.
timestamp A date and time string conforming to ISO 8601.
64-bit integer Integers from -9;223;372;036;854;775;808 to 9;223;372;036;854;775;807
GUID A globally unique identifier (GUID) conforming to a 32-character GUID separated by hyphens. No enclosing brackets are used.

Error Message and Error Handling

When error conditions arise, the provider is expected to conform to REST guidelines for using the HTTP status code. If the provider's system is operating normally, status codes will generally be in the 200 or 400 range of status codes. If the provider's system is experiencing technical difficulties, then status codes will generally be in the 500 range of status codes. A few examples of specific status codes are below and further guidelines may be found here, https://www.restapitutorial.com/lessons/restquicktips.html.

Example Status Code Description
200 (OK) The standard response code for a typical message with the message's specific return format.
400 (Bad Request) There are validation errors in the JSON message EML sent e.g. missing fields; field values are not the correct type; etc.
404 (Not Found) The message validates; but information related to it cannot be found e.g. external ID is not found.
409 (Conflict) The authorization conflicts with another authorization e.g. a duplicate authorization request.
500 (Internal Server Error) Unexpected; critical failure in the provider's API e.g. internal database resources are not available.
504 (Gateway Timeout) The provider's API is making calls to other services or databases and those calls did not return in a timely fashion.

In addition to the HTTP status code, the provider is expected to return an error message in the body with provider specific information. Note that the code in the error response message should not match the HTTP status code. The response message's code is intended for a provider specific error ID that may be used for further troubleshooting. An error message should also be returned that provides more information about the specific error.

{

code: integer,

message: string

}

Authorization Webhook

After an authorization request passes initial validations, a call will be made to the provider for further validation. The definition for the endpoint and message exchange pattern is defined below.

Authorizations:
BasicAuth
Request Body schema: application/json

Details required to perform authorization.

requestId
string <guid>

The GUID for this this request; which should be returned in the response.

acquirerId
string

The acquiring institution ID code.

object
emlId
integer

The EML ID used to correlate related requests like authorization adjustments; reversals; or settlements.

expirationTime
string <date-time>

Timestamp when the authorization will expire.

merchantAcceptorId
string

The ID of the location that accepted the card.

merchantCategoryCode
string

The merchant category code (MCC) from ISO 18245.

merchantCategoryCodeDescription
string

A description of the merchant category code.

merchantName
string

The name of the location that accepted the card.

retrievalReferenceNumber
string

The retrieval reference number supplied by the network; from ISO 8583.

transactionTime
string <date-time>

Timestamp when message was received by EML.

transactionTransmissionTime
string <date-time>

Timestamp when message was sent by the network.

avsResponseCode
string

The address verification service response code. Values are listed in the following table

avsResponseCode Values
AddressAndNineDigitZipCodeMatchExactly
AddressAndZipMatches
AddressMatchesPostalCodeDoesNot
AddressMatchesZIPCodeDoesNot
AddressMatchesZipDoesNot
AVSHasNotBeenPerformedYetAVSNotRequested
AVSNotSupported
ErrorIneligibleTransaction
FiveDigitZIPCodeMatchesButAddressDoesNot
NeitherAddressNorPostalCodeMatches
NeitherAddressNorZipMatches
NineDigitZIPCodeMatchesButAddressDoesNot
NoDataFromIssuer
NoDataFromIssuerAuthorizationSystem
NothingMatches
RetrySystemUnableToProcess
RetrySystemUnavailableOrTimedOut
Unavailable
USFiveDigitPostalCodeAndAddressMatches
USFiveDigitPostalCodeMatchesAddressDoesNot
USNineDigitPostalCodeAndAddressMatchesOutsideUSPostalCodeAndAddressMatch
USNineDigitPostalCodeMatchesAddressDoesNotOutsideUSPostalCodeMatchesAddressDoesNot
YesAllDigitsMatchFiveDigitZIPCode
ZipMatchesAddressDoesNot
transactionSystemTraceAuditNumber
string

The network audit number.

posCardholderPresentStatus
string
Enum: "Card present, magnetic stripe cannot be read (key-entered)" "Chargeback" "Chargeback reversal" "Customer identity verified (check acceptance only)" "Customer not present" "Customer present, card not present" "E-commerce request by public network" "Mail, telephone, recurring, advance, or installment order" "Merchant suspicious of transaction (or card)" "Normal transaction of this type" "POS Check original full financial transaction or adjustment" "Preauthorized request" "Representment" "Request for telecode verification without authorization" "Security" "Suspected fraud" "Unattended cardholder-activated environment, PIN data present" "Verification Without Authorization"

Enumeration of cardholder present situations.

posCountryCode
string

The country code location of the point of sale.

posSupportsPartialAuthorization
boolean

True if the point of sale supports partial authorizations; otherwise false.

posPanEntryMode
string
Enum: "Bar code" "Bar Code/Payment Code" "Batch Authorization Cash Access" "Batch Authorizations" "Chip card or chip capable terminal was able to process the transaction" "Chip card or chip capable terminal was unable to process the transaction" "Chip Fallback" "Contactless Input for MasterCard Paypass Mapping Service" "Contactless Interface Change" "Contactless Magnetic Stripe" "Electronic Commerce" "Full magnetic stripe read" "Integrated circuit card" "Integrated circuit card CVV data may be unreliable" "Integrated Circuit Card Reader" "Magnetic Stripe" "Manual" "Manual (Key Entered)" "Manual entry (pass through only)" "MICR Reader for Visa" "Mobile Commerce" "NYCE Gateway" "OCR" "Optical Character Reader (OCR)" "PAN Auto-Entry Via Contactless M/Chip" "PAN entry via electronic commerce, including remote chip" "Radio Frequency Identification Indicator - Chip" "Radio Frequency Identification Indicator - Magnetice Stripe" "Store And Forward For Visa Or PAN Manual entry via e-commerce for MasterCard" "Store and Forward Resubmission for Visa" "Unknown" "Unspecified" "Voice Authorizations" "Voice Response Unit (VRU)"

Enumeration of PAN entry modes.

posTerminalId
string

The ID of the point of sale terminal.

posTransactionTime
string <date-time>

Timestamp when the message was sent by the point of sale.

transactionAmount
number <decimal>

The total amount; including fees; of the transaction in acquiring currency.

transactionBaseAmount
number <decimal>

The net amount; without fees; of the transaction in acquiring currency.

cardholderBillingAmount
number <decimal>

The total amount; including fees; of the transaction in cardholder's billing currency.

cardholderBillingBaseAmount
number <decimal>

The net amount; without fees; of the transaction in cardholder's billing currency.

cardholderBillingCurrency
string

The cardholder's billing currency.

transactionCurrency
string

The currency code of the acquiring transaction.

transactionType
string
Enum: "AccountStatusInquiry" "AtmWithdrawal" "AvsOnlyRequest" "BalanceInquiry" "LoadTransaction" "PinChange" "PinUnblock" "Purchase" "PurchaseReturn" "TokenizationRequest"

A string identifier for the transaction type. Two special cases to note in authorization are LoadTransaction for reloadable cards and PurchaseReturn for VISA cards. In these cases the amount will be positive but should increase the balance of a card.

Array of objects

Responses

Request samples

Content type
application/json
{
  • "requestId": "3b8fbfab-a2bb-4fb5-a50b-ce3b290bd72c",
  • "acquirerId": "006715",
  • "card": {
    },
  • "emlId": 102355,
  • "expirationTime": "2019-10-02T09:29:56.7844823-05:00",
  • "merchantAcceptorId": "100000000481100",
  • "merchantCategoryCode": "5621",
  • "merchantCategoryCodeDescription": "Women's Ready to Wear Stores (5621)",
  • "merchantName": "VINEYARD SQUARE RETAIL",
  • "retrievalReferenceNumber": "003295949462",
  • "transactionTime": "2019-09-25T09:29:56.7844823-05:00",
  • "transactionTransmissionTime": "2019-09-25T21:00:07-05:00",
  • "avsResponseCode": "USFiveDigitPostalCodeAndAddressMatches",
  • "transactionSystemTraceAuditNumber": "622407",
  • "posCardholderPresentStatus": "POS",
  • "posCountryCode": "840",
  • "posSupportsPartialAuthorization": false,
  • "posPanEntryMode": "MagneticStripe",
  • "posTerminalId": "00398780",
  • "posTransactionTime": "2019-07-01T16:30:24-05:00",
  • "transactionAmount": 10,
  • "transactionBaseAmount": 10,
  • "cardholderBillingAmount": 10.1,
  • "cardholderBillingBaseAmount": 10,
  • "cardholderBillingCurrency": "840",
  • "transactionCurrency": "840",
  • "transactionType": "Purchase",
  • "fees": [
    ]
}

Response samples

Content type
application/json
{
  • "forRequestId": "3b8fbfab-a2bb-4fb5-a50b-ce3b290bd72c",
  • "accountBalance": 100,
  • "amount": 10.1,
  • "isApproved": true,
  • "transactionResult": "InsufficientFunds",
  • "message": "The account does not have sufficient funds for the transaction."
}

Balance Inquiry Webhook

After a balance inquiry passes initial validations, a call will be made to the provider for further validation. The definition for the endpoint and message exchange pattern is defined below.

Authorizations:
BasicAuth
Request Body schema: application/json

Details required to perform balance inquiry.

requestId
string <guid>

The GUID for this this request; which should be returned in the response.

object
emlId
integer

The EML ID used to correlate related requests like authorization adjustments; reversals; or settlements.

Responses

Request samples

Content type
application/json
{
  • "requestId": "0e783de5-a9d7-4370-a6cc-de69f62142ca",
  • "card": {
    },
  • "emlId": 102357
}

Response samples

Content type
application/json
{
  • "forRequestId": "3b8fbfab-a2bb-4fb5-a50b-ce3b290bd72c",
  • "accountBalance": 100
}

Corporate Orders

Order Approved Webhook

A message published when an order is approved and an invoice is available.

Authorizations:
BasicAuth
Request Body schema: application/json
type
string

The webhook message type.

Value: "Orders.Approved"
approvalDate
string <date-time>

The date and time in ISO 8601 standard format at which an order was approved.

orderId
string

An order's unique identifier that can be used to query more information.

Responses

Request samples

Content type
application/json
{
  • "type": "Orders.Approved",
  • "approvalDate": "2019-08-24T14:15:22Z",
  • "orderId": "string"
}

Order Created Webhook

A message published when an order is submitted.

Authorizations:
BasicAuth
Request Body schema: application/json
type
string

The webhook message type.

Value: "Orders.Created"
creationDate
string <date-time>

The date and time in ISO 8601 standard format at which an order was created.

orderId
string

An order's unique identifier that can be used to query more information.

customerId
integer

The id of the company that placed the order.

amount
number

An order's total amount.

quantity
integer

The total number of cards ordered.

Responses

Request samples

Content type
application/json
{
  • "type": "Orders.Created",
  • "creationDate": "2019-08-24T14:15:22Z",
  • "orderId": "string",
  • "customerId": 0,
  • "amount": 0,
  • "quantity": 0
}

Order Invoiced Webhook

A message published when an order is billable. That is, the order's invoice is available from the Get Order Invoice API.

Authorizations:
BasicAuth
Request Body schema: application/json
type
string

The webhook message type.

Value: "Orders.Invoiced"
fulfillmentDate
string <date-time>

The date and time in ISO 8601 standard format at which an order invoice became available.

orderId
string

An order's unique identifier that can be used to query more information.

Responses

Request samples

Content type
application/json
{
  • "type": "Orders.Invoiced",
  • "fulfillmentDate": "2019-08-24T14:15:22Z",
  • "orderId": "string"
}

Order Fulfilled Webhook

A message published when an order is fulfilled.

Authorizations:
BasicAuth
Request Body schema: application/json
type
string

The webhook message type.

Value: "Orders.Fulfilled"
fulfillmentDate
string <date-time>

The date and time in ISO 8601 standard format at which an order was fulfilled.

orderId
string

An order's unique identifier that can be used to query more information.

Responses

Request samples

Content type
application/json
{
  • "type": "Orders.Fulfilled",
  • "fulfillmentDate": "2019-08-24T14:15:22Z",
  • "orderId": "string"
}

Get Customer

Used to look up customer information. The user must be associated with the customer being requested.

Authorizations:
BasicAuth
path Parameters
customerId
required
string

The id of the customer being requested.

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "registrationNumber": "string",
  • "iban": "string",
  • "address": {
    }
}

Get Order

Used to look up order information. The user must be associated with the order being requested.

Authorizations:
BasicAuth
path Parameters
orderId
required
string

The id of the order being requested.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "reference": "string",
  • "customerId": "string",
  • "type": "string",
  • "creationDate": "2019-08-24T14:15:22Z",
  • "status": "string",
  • "amount": 0,
  • "quantity": 0,
  • "shippingInformation": {
    },
  • "billingInformation": {
    }
}

Get Order By Reference

Used to look up order information by an order reference number. The user must be associated with the order being requested.

Authorizations:
BasicAuth
query Parameters
reference
required
string

The customer order reference of an order.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "reference": "string",
  • "customerId": "string",
  • "type": "string",
  • "creationDate": "2019-08-24T14:15:22Z",
  • "status": "string",
  • "amount": 0,
  • "quantity": 0,
  • "shippingInformation": {
    },
  • "billingInformation": {
    }
}

Get Order Invoice

Used to look up an order's invoice if it is available. The response may be JSON or PDF. The user must be associated with the order being requested.

Authorizations:
BasicAuth
path Parameters
orderId
required
string

The id of the order being requested.

Responses

Response samples

Content type
{
  • "number": "string",
  • "date": "2019-08-24",
  • "amount": 0,
  • "orderId": "string"
}

Express Transfer

The Express Transfer API provides endpoints for validating and moving funds from an EML card to a non-EML card using the MasterCard® network. These endpoints are not enabled by default and must be authorized for use. Additionally, an EML program must be configured to enable the Express Transfer feature and not all cards can receive express transfers. The receiving card must be configured to receive funds. It is also possible to send funds to a non-MasterCard card that participate in the MasterCard service.

Account Token Formats

The operations support more than one type of token to use in validations and payment transfers. The type and format are listed below.

Type Format Example
PAN pan:[card number];exp=[yyyy]-[mm];cvc=[nnn]. pan:5000361001156749;exp=2022-01;cvc=123
ID sds-acct-id:[tokenized ID]. sds-acct-id:acct_P2qk9TQFFWRBbROJQfb4iWl-PJx

Get Transfer

This API retrieves a transfer that was previously submitted.

Authorizations:
BasicAuth
path Parameters
transferId
required
string

The transfer identifier obtained during transfer submission.

Responses

Response samples

Content type
application/json
{
  • "is_valid": true,
  • "is_delayed": false,
  • "funds_availability_type": "Immediate",
  • "transfer_amount": 27.5,
  • "transfer_currency_code": "USD",
  • "recipient_account_token": "pan:************4444",
  • "sender_account_token": "pan:************7278",
  • "status_type": "Approved",
  • "created_date": "2020-06-07T15:00:32.0000000-05:00",
  • "recipient": {
    },
  • "sender": {
    }
}

List Saved Cards

As part of submitting a transfer, a receiving card’s information can be saved to a secure vault and exchanged for a tokenized version of the card. This API allow retrieval all saved cards associated with the EML card. These account tokens retrieved from this call may be used in place of card data in the validate and submit transfer operations

Authorizations:
BasicAuth
path Parameters
externalId
required
string

The card's external ID.

Responses

Response samples

Content type
application/json
{
  • "account_tokens": [
    ]
}

Submit Transfer

This API submits a transfer request for processing. The validation method should be called before calling this method to verify the transfer is likely to succeed. If the transfer succeeds, the card funds will be adjusted immediately.

In certain, rare cases where the receiving card’s receipt of the transfer can not be confirmed immediately, an unknown transfer status will be returned. In these cases, the transfer should be assumed to have succeeded and the transfer monitored for final result, which will occur within 24 hours. If the final result is a decline, then funds will be returned to the cardholder.

Authorizations:
BasicAuth
Request Body schema: application/json

Details required to submit transfer request.

source_external_id
required
string

External ID of the source EML card

to_account_token
required
string

The receiving card as a token, in either PAN or ID format. The token formats are defined at the beginning of this API section.

should_save_to_account
boolean

True to save a PAN token to the card’s secure vault of tokens. This does not apply when the to_account_token is already an ID style token.

amount
required
number <decimal>

The decimal amount to transfer to the card.

currency_code
required
string

The 3 letter alpha currency code of the amount to transfer

required
object

The sender’s name and address information to use in account verification.

Responses

Request samples

Content type
application/json
{
  • "source_external_id": "J164951101003780",
  • "to_account_token": "pan:5555555555554444;exp=2022-01;cvc=123",
  • "should_save_to_account": false,
  • "amount": 27.5,
  • "currency_code": "USD",
  • "sender": {
    }
}

Response samples

Content type
application/json
{
  • "is_valid": true,
  • "is_delayed": false,
  • "verification_result": {
    },
  • "funds_availability_type": "Immediate",
  • "transfer_amount": 27.5,
  • "transfer_currency_code": "USD",
  • "recipient_account_token": "pan:************4444",
  • "sender_account_token": "pan:************7278",
  • "status_type": "Approved",
  • "created_date": "2020-06-07T15:00:32.0000000-05:00",
  • "recipient": {
    },
  • "sender": {
    },
  • "eml_id": 11902,
  • "satus_timestamp": "2020-06-07T15:00:32-05:00",
  • "statement_descriptor": "META EML",
  • "transfer_reference": "ddd8f99e-c5fb-4e4d-b290-0a045898ae12",
  • "external_id": "trn_UEYDdLAz0LIrON8my34w7swB6rJQ",
  • "id": 4077
}

Validate Transfer

This API provides validation of a transfer before it is submitted as well as determining how long it will take the funds to reach the destination. This operation may be used to verify the sending card is enabled for express transfer, the receiving card can receive the funds via the MasterCard networ, and verify the transfer is within transaction limits.

Authorizations:
BasicAuth
query Parameters
externalId
required
string

The card external identifier.

Request Body schema: application/json

Details about the validate transfer request.

account_token
required
string

The receiving card as a token, in either PAN or ID format. The token formats are defined at the beginning of this API section

amount
required
number <decimal>

The decimal amount to transfer to the card.

currency_code
required
string

The 3 letter alpha currency code of the amount to transfer.

Responses

Request samples

Content type
application/json
{
  • "account_token": "pan:5555555555554444;exp=2022-01;cvc=123\",",
  • "amount": 1.25,
  • "currency_code": "USD"
}

Response samples

Content type
application/json
{
  • "is_valid": true,
  • "is_eligible": false,
  • "receive_eligibility_failure_code": "MaxTransactionTypeLimit",
  • "receive_eligibility_failure_description": "Per transaction maximum amount limit for the transaction type",
  • "eml_id": 11900
}

Getting Data

Card Barcode Image Display

This API is utilized to retrieve a barcode image and card data without exposing the client’s web server. This API requires token generated by requesting barcode_image from the Retrieve Card Information API

Authorizations:
BasicAuth
query Parameters
token
required
string
Example: token=1234567890123456

A single use token generated by requesting barcode_image from the Retrieve Card Information API.

"CARD_ID_ONLY" (string) or "CARD_ID_CVV_EXP" (string) or "None" (string)
Example: barcodeContentType=CARD_ID_ONLY

Used to determine card data displayed along with the barcode. If a value is not provided; system will default to Card_ID_ONLY

barcodeFormatType
string
Enum: "CODE_39" "CODE_128" "ITF" "QR_CODE"

Used to indicate the barcode format. If a value is not provided; system will default to CODE_128

cardIdType
string
Enum: "PrintText" "ExternalId" "CarrierNumber"

Used to determine how card is identified.If a value is not provided; system will default to PrintText.

Responses

Cardholder Agreement Lookup

This API is used to look up the cardholder agreement URL for a card that has not been created

Authorizations:
BasicAuth
Request Body schema: application/json

Details required to show agreements

country
string

The country name where the card will be activated.Examples include United States,Canada,United Kingdom

region
string

The state (two-character abbreviation for US) or province where the card will be activaated

merchant_group
string

This unique identifier is provided by EML

program
string

This unique identifier is provided by EML

developer
string

This unique identifier is provided by EML

bin
string

The bin of the card

Is_account_expiry
boolean

true if the account expires;otherwise false

Is_fee_free
boolean

true if the card is fee free;otherwise false

activation_date
string <date>

The potential activation date. Specifying null; or not including the field will assume an activation_date of the current time

Responses

Request samples

Content type
application/json
{
  • "country": "United States",
  • "region": "KS",
  • "merchant_group": null,
  • "program": null,
  • "developer": null,
  • "bin": "123456",
  • "is_account_expiry": null,
  • "is_fee_free": false,
  • "activation_date": null
}

Response samples

Content type
application/json

Display Card

This API is used to retrieve a card image. Clients may retrieve a specific card's image with a given card ID.

Authorizations:
BasicAuth
path Parameters
token
string

A one-time use token generated by requesting the card_image field from the look-up card information action

query Parameters
program
required
string

When using the search_parameter of ClientTrackingId; this value will indicate which program the provided card_id belongs to. While other search_parameters are guaranteed to be unique across the system and are assigned by EML Payments; ClientTrackingId is assigned to the card by an integration client and there is no guarantee that it will be unique to the system.

search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

fields
string

A comma-separated list of the fields to include in the response. The special value "all" may be provided to return all response fields. The Default fields will be returned if this parameter is not specified and the Always fields will always be returned even if you specify or don't specify this parameter.

image_src
string

The image of the card art to display behind the card information. If not provided, the text will appear in front of white space. This would be value of an image src attribute.

style_src
any

The style sheet of the card art to override the placement and appearance of card elements on the browswer. If not provide, default styles will be applied. This would be the value of the stylesheet script src attribute.

Responses

Response samples

Content type
application/json
{
  • "card_id": 137719,
  • "id": "Z43210987654321X",
  • "client_tracking_id": "SampleCTID-A",
  • "available_balance": 25.1,
  • "currency": "USD",
  • "can_activate": false,
  • "can_redeem": true,
  • "program_can_register": false,
  • "security_code": "123456",
  • "expiration_date": "/Date(1538369999999)/",
  • "account_expiration_date": "/Date(1477890000000)/",
  • "is_virtual": true,
  • "is_reloadable": false,
  • "actual_balance": 25,
  • "status": "Active",
  • "is_registered": false,
  • "activating_merchant_group_name": "EML Payments MG",
  • "activating_merchant_group_uniquetag": "EMLPay987",
  • "activation_country": "United States",
  • "activation_date": "/Date(1377624625133-0500)/",
  • "program_name": "EML",
  • "program_uniquetag": "EMLFi123",
  • "amf_amount": 1,
  • "amf_start_date": "/Date(1419746400000-0600)/",
  • "amf_next_date": "/Date(1419746400000-0600)/",
  • "distributor_refund": false,
  • "card_type": "Regular",
  • "activation_transaction_id": 123456789,
  • "promotion_balance": 25,
  • "promotion_type_id": 1,
  • "promotion_expiration": "/Date(1477890000000-0500)/",
  • "is_organization_registration": false,
  • "currency_info": {
    },
  • "adjusted_balance": 25,
  • "pin_enabled": true,
  • "bank_name": "Bank of US",
  • "has_pin": false,
  • "is_icc_card": false,
  • "has_atm_access": false
}

Exchange Rates

This API is utilized to retrieve exchange rates for a given currency and date. The process allows the client to specify the Program, base currency and date. The API returns a list of currencies each with the European Central Bank rate, the Mastercard rate, as well as the actual rate EML will use that incorporates all foreign exchange fees configured for the Program.

Authorizations:
BasicAuth
path Parameters
programtag
required
string

A 10 character string value that is provided by EML to uniquely identify the client Program.

query Parameters
baseCurrency
required
string

This is the 3 character currency alpha code as defined by ISO 4217 alphabetic code.

date
string <date-time>

An optional string value to retrieve data for the desired date. If omitted; the date value will be defaulted to the current date. The date format is defined by ISO 8601 - date and time format

Responses

Response samples

Content type
application/json
{
  • "program": "EMLFi123",
  • "base_currency_iso_code": "EUR",
  • "requested_date": "2020-04-08",
  • "currency_conversion_details": [
    ]
}

Get Card Statements By Range

Available

This API is used to retrieve a statement for a given card and time period. Client should be associated with the card's program and needs 'GetCardStatement' permission to perform this action.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

startDate
required
string <date>

Filters the card statements after this start date.

endDate
required
string <date>

Filters the card statements before this end date.

header Parameters
Content-Type
string

Supported content types

Responses

Response samples

Content type
{
  • "BeginningBalance": 700,
  • "EndingBalance": 500,
  • "PrintText": 1319940000000019,
  • "BeginDate": "/Date(638949600000-0600)/",
  • "EndDate": "/Date(641451600000-0400)/",
  • "PeriodFees": 0,
  • "YearFees": 0,
  • "FirstName": "John",
  • "LastName": "Smith",
  • "details": [
    ]
}

Get Monthly Card Statements

Available

This API is used to retrieve a statement for a given card and a fixed monthly time period. Client should be associated with the card's program and needs 'GetCardStatement' permission to perform this action.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

startDate
required
string <date>

Filters the card statements after this start date.

Responses

Response samples

Content type
{
  • "BeginningBalance": 700,
  • "EndingBalance": 500,
  • "PrintText": 1319940000000019,
  • "BeginDate": "/Date(638949600000-0600)/",
  • "EndDate": "/Date(641451600000-0400)/",
  • "PeriodFees": 0,
  • "YearFees": 0,
  • "FirstName": "John",
  • "LastName": "Smith",
  • "details": [
    ]
}

Retrieve Card Registration

This API is used to retrieve the registration information for a card.

Note: If DOB is added to a card, the API will return “##/##/####” else it will return no values to indicate there is no DOB added to the card.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

Responses

Response samples

Content type
application/json
{
  • "first_name": "Jack",
  • "last_name": "Doe",
  • "email": "name@domain.com",
  • "address1": "12320 Main 1",
  • "address2": "Apt.",
  • "phone": 9135552222,
  • "city": "Kansas City.",
  • "state": "MO",
  • "zip": 64131,
  • "country": "USA",
  • "print_Text": 1234567890123456,
  • "dob": null
}

Show Card

This API is used to retrieve card information. Clients may retrieve a specific card's information with a given card ID.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
program
required
string

When using the search_parameter of ClientTrackingId; this value will indicate which program the provided card_id belongs to. While other search_parameters are guaranteed to be unique across the system and are assigned by EML Payments; ClientTrackingId is assigned to the card by an integration client and there is no guarantee that it will be unique to the system.

search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

fields
string

A comma-separated list of the fields to include in the response. The special value "all" may be provided to return all response fields. The Default fields will be returned if this parameter is not specified and the Always fields will always be returned even if you specify or don't specify this parameter.

log_balance_inquiry
boolean

True/false. When true a balance inquiry will be logged and; if applicable; the AMF reset date will be updated.

only_valid_status
boolean

True/false. When true only returns cards with a valid status to be displayed to the Card Holder.

security_code
string

When provided compares the given value to the security code for the card. If they do not match an http 500 error is returned.

Responses

Response samples

Content type
application/json
{
  • "card_id": 137719,
  • "id": "Z43210987654321X",
  • "client_tracking_id": "SampleCTID-A",
  • "available_balance": 25.1,
  • "currency": "USD",
  • "can_activate": false,
  • "can_redeem": true,
  • "program_can_register": false,
  • "security_code": "123456",
  • "expiration_date": "/Date(1538369999999)/",
  • "account_expiration_date": "/Date(1477890000000)/",
  • "is_virtual": true,
  • "is_reloadable": false,
  • "actual_balance": 25,
  • "status": "Active",
  • "is_registered": false,
  • "activating_merchant_group_name": "EML Payments MG",
  • "activating_merchant_group_uniquetag": "EMLPay987",
  • "activation_country": "United States",
  • "activation_date": "/Date(1377624625133-0500)/",
  • "program_name": "EML",
  • "program_uniquetag": "EMLFi123",
  • "amf_amount": 1,
  • "amf_start_date": "/Date(1419746400000-0600)/",
  • "amf_next_date": "/Date(1419746400000-0600)/",
  • "distributor_refund": false,
  • "card_type": "Regular",
  • "activation_transaction_id": 123456789,
  • "promotion_balance": 25,
  • "promotion_type_id": 1,
  • "promotion_expiration": "/Date(1477890000000-0500)/",
  • "is_organization_registration": false,
  • "currency_info": {
    },
  • "adjusted_balance": 25,
  • "pin_enabled": true,
  • "bank_name": "Bank of US",
  • "has_pin": false,
  • "is_icc_card": false,
  • "has_atm_access": false
}

Show Card Posted

This API is used to retrieve card information via POST request rather than a query string.

Authorizations:
BasicAuth
query Parameters
program
required
string

When using the search_parameter of ClientTrackingId; this value will indicate which program the provided card_id belongs to. While other search_parameters are guaranteed to be unique across the system and are assigned by EML Payments; ClientTrackingId is assigned to the card by an integration client and there is no guarantee that it will be unique to the system.

Request Body schema: application/json
card_id
required
string

Card ID

search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

fields
string

A comma-separated list of the fields to include in the response. The special value "all" may be provided to return all response fields. The Default fields will be returned if this parameter is not specified and the Always fields will always be returned even if you specify or don't specify this parameter.

log_balance_inquiry
boolean

True/false. When true a balance inquiry will be logged and; if applicable; the AMF reset date will be updated.

only_valid_status
boolean

True/false. When true only returns cards with a valid status to be displayed to the Card Holder.

security_code
string

When provided compares the given value to the security code for the card. If they do not match an http 500 error is returned.

Responses

Request samples

Content type
application/json
{
  • "card_id": "string",
  • "search_parameter": "ActualCardNumber",
  • "fields": "string",
  • "log_balance_inquiry": true,
  • "only_valid_status": true,
  • "security_code": "string"
}

Response samples

Content type
application/json
{
  • "card_id": 137719,
  • "id": "Z43210987654321X",
  • "client_tracking_id": "SampleCTID-A",
  • "available_balance": 25.1,
  • "currency": "USD",
  • "can_activate": false,
  • "can_redeem": true,
  • "program_can_register": false,
  • "security_code": "123456",
  • "expiration_date": "/Date(1538369999999)/",
  • "account_expiration_date": "/Date(1477890000000)/",
  • "is_virtual": true,
  • "is_reloadable": false,
  • "actual_balance": 25,
  • "status": "Active",
  • "is_registered": false,
  • "activating_merchant_group_name": "EML Payments MG",
  • "activating_merchant_group_uniquetag": "EMLPay987",
  • "activation_country": "United States",
  • "activation_date": "/Date(1377624625133-0500)/",
  • "program_name": "EML",
  • "program_uniquetag": "EMLFi123",
  • "amf_amount": 1,
  • "amf_start_date": "/Date(1419746400000-0600)/",
  • "amf_next_date": "/Date(1419746400000-0600)/",
  • "distributor_refund": false,
  • "card_type": "Regular",
  • "activation_transaction_id": 123456789,
  • "promotion_balance": 25,
  • "promotion_type_id": 1,
  • "promotion_expiration": "/Date(1477890000000-0500)/",
  • "is_organization_registration": false,
  • "currency_info": {
    },
  • "adjusted_balance": 25,
  • "pin_enabled": true,
  • "bank_name": "Bank of US",
  • "has_pin": false,
  • "is_icc_card": false,
  • "has_atm_access": false
}

Transaction History

This API is used to access a card's transaction history and will return zero (0) or more transactions. The level of detail in this transaction history is relatively extensive and therefore would not be suitable for presentation to card holders.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
program
required
string

When using the search_parameter of ClientTrackingId; this value will indicate which program the provided card_id belongs to. While other search_parameters are guaranteed to be unique across the system and are assigned by EML Payments; ClientTrackingId is assigned to the card by an integration client and there is no guarantee that it will be unique to the system.

search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

fields
string

A comma-separated list of the fields to include in the response. The special value "all" may be provided to return all response fields. The Default fields will be returned if this parameter is not specified and the Always fields will always be returned even if you specify or don't specify this parameter.

filter
string

Filter the list of transactions: pass in 'customer' for the Customer View of the Transactions List

startDate
string <date>

Filter the results with a transaction date after this date

endDate
string <date>

Filter the results with a transaction date before this date

take
integer

The number of results to return Default is 20. Maximum 10000

skip
integer

The number of results to offset in order to return the current page. default 0

Responses

Response samples

Content type
application/json
{
  • "count": 3,
  • "transactions": [
    ]
}

HealthCheck

Connectivity Check

This API is utilized to verify service connectivity. Always returns 'Healthy' status along with the current UTC time. If the service is unreachable, no response will be returned.

Authorizations:
BasicAuth

Responses

Response samples

Content type
application/json
{
  • "Status": "Healthy",
  • "UtcDateTime": "2025-09-12T15:04:29.9410840Z"
}

Issuance/Setup

3DS - Get 3D Secure enrollment information

This API is utilized to retrieve 3D Secure enrollment information.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

program
required
string

When using the search_parameter of ClientTrackingId; this value will indicate which program the provided card_id belongs to. While other search_parameters are guaranteed to be unique across the system and are assigned by EML Payments; ClientTrackingId is assigned to the card by an integration client and there is no guarantee that it will be unique to the system.

Responses

Response samples

Content type
application/json
{
  • "status": "enrolled",
  • "modified_date": "/Date(1224043200000)/"
}

3DS - Enroll a Card in 3D Secure

This API is utilized to enroll card(s) in 3D Secure.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

program
required
string

When using the search_parameter of ClientTrackingId; this value will indicate which program the provided card_id belongs to. While other search_parameters are guaranteed to be unique across the system and are assigned by EML Payments; ClientTrackingId is assigned to the card by an integration client and there is no guarantee that it will be unique to the system.

Request Body schema: application/json

Details about the 3DS card enrollment

languages
required
Array of strings
Items Enum: "en" "fr" "de" "it" "es" "nl" "pt" "cs" "ro" "sv" "fi" "no" "et" "da" "lt"

The language used for all interactions with the cardholder (authentication page; etc.).

phone_numbers
Array of strings

The phone number used to send the one-time password to the cardholder. Required for "sms" challenge method. The phone number must be numeric-only; prefixed with the country code and contain no leading zeros.

challenge_methods
Array of strings
Items Value: "SMS"

The method used to authenticate the cardholder's identity for an online transaction. Valid values are:
SMS - Partner is not responsible for cardholder authentication. This method uses SMS text messaging to authenticate the cardholder.

Responses

Request samples

Content type
application/json
{
  • "languages": [
    ],
  • "phone_numbers": [
    ],
  • "challenge_methods": [
    ]
}

Response samples

Content type
application/json
{
  • "enrolled": true
}

3DS - Unenroll a Card in 3D Secure

This API is utilized to un-enroll a previously enrolled card in 3D Secure.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

program
required
string

When using the search_parameter of ClientTrackingId; this value will indicate which program the provided card_id belongs to. While other search_parameters are guaranteed to be unique across the system and are assigned by EML Payments; ClientTrackingId is assigned to the card by an integration client and there is no guarantee that it will be unique to the system.

Responses

Response samples

Content type
application/json
{
  • "enrolled": true
}

Activate Card

This API is utilized to activate a card.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
program
required
string

When using the search_parameter of ClientTrackingId; this value will indicate which program the provided card_id belongs to. While other search_parameters are guaranteed to be unique across the system and are assigned by EML Payments; ClientTrackingId is assigned to the card by an integration client and there is no guarantee that it will be unique to the system.

search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

Request Body schema: application/json

Details about the card activation

amount
required
number <decimal>

The amount to load on the card. For fixed denomination cards the value passed must match that of the card.

merchant_group
required
string = 10 characters

This unique identifier is provided by EML.

object

The activating location. By default, the activating lcoation will be the account used to make the request.

campaign
string

This value is used in reporting to further filter metadata.

client_time
string <unix-epoch>

Local time of the request

sales_channel
required
string <= 255 characters
Enum: "Online" "InPerson" "PhoneOrder" "PosActivation" "ThirdParty" "BulkFulfillment" "Mobile" "None"

Sales Channel identifier used in reporting. The activation will fail if the sales channel value is invalid.

note
string

A value provided by the client: usually descriptive.

client_tracking_id
string <= 50 characters

A client-assigned value that uniquely identifies a card within the scope of a program. If the card being activated already has a client tracking id, this property should not be provided.

client_reference_number
string <= 50 characters

A unique value assigned by the client. It is used in reporting to further filter metadata.

cardholder_user_id
string

A value assigned by the client to identify its cardholders.

card_type
string <= 50 characters

The type of card.

client_order_date
string <unix-epoch>

A date assigned by the client used in reporting to further filter metadata.

Array of objects

A list of structured notes to associate with the card.

is_activation_lock
boolean

A value to indicate if the card should be locked upon activation.

payment_type
string <= 50 characters

The type of payment.

property_fee
number <decimal>

The property fee amount for the card activation.

Responses

Request samples

Content type
application/json
{
  • "amount": 100,
  • "merchant_group": "EMLFi98765",
  • "location": {
    },
  • "campaign": "Mother's Day 2016: Back to School",
  • "client_time": "string",
  • "sales_channel": "Online",
  • "note": "string",
  • "client_tracking_id": "CTID123",
  • "client_reference_number": "string",
  • "cardholder_user_id": "string",
  • "card_type": "Regular",
  • "client_order_date": "string",
  • "card_notes": [
    ],
  • "is_activation_lock": true,
  • "payment_type": "Card",
  • "property_fee": 1
}

Response samples

Content type
application/json
{
  • "code": 400,
  • "message": "Request missing location or invalid value provided"
}

Activate Virtual Card

This API is utilized to activate and optionally register a batch of virtual cards.

Authorizations:
BasicAuth
Request Body schema: application/json

Details about the card activation

correlation_id
string <= 255 characters

A unique value provided by the client to uniquely identify the request. Will be echoed back in the response

program
required
string <= 10 characters

A 10 character string value that is proviced by EML to uniquely identify the client program

merchant_group
required
string <= 10 characters

A 10 character string value that is proviced by EML to uniquely identify the client Merchant Group

currency
string <= 3 characters

The ISO 4217 alphabetic code associated to currency. This field is required for programs with virtual card orders for multiple currencies.

country
string <= 3 characters

This is the country code as defined by ISO 3166-1 alpha-3 code. This field is required for programs associated to multiple countries.

note
string <= 4000 characters

A value provided by the client: usually descriptive

client_reference_number
string <= 50 characters

A unique vluae assigned by the client: used in reporting to further filter metadata

client_order_date
string <unix-epoch>

A date assigned by the client used in reporting to further filter metadata

object

Responses

Request samples

Content type
application/json
{
  • "correlation_id": "COR123",
  • "program": "EMLFi123",
  • "merchant_group": "EMLFi987",
  • "cards": [
    ]
}

Response samples

Content type
application/json
{
  • "code": 400,
  • "message": "The required parameter 'program' is missing or invalid."
}

Batch Activations

This API is utilized activate a batch of cards.

Authorizations:
BasicAuth
Request Body schema: application/json

Details about the batch activations

program
required
string

A unique identifier provided by EML.

Array of objects

Responses

Request samples

Content type
application/json
Example
{
  • "program": "EMLFi123",
  • "details": [
    ]
}

Response samples

Content type
application/json
{
  • "code": 400,
  • "message": "The required parameter 'program' is missing or invalid"
}

Bulk Activate Cards V2

This API enables bulk activation of cards between the first and last card with the specified amount, from the same card order.

Authorizations:
BasicAuth
Request Body schema: application/json

Details about the bulk card activation

first_card_id
required
string

First card identifier.

last_card_id
required
string

Last card identifier.

search_parameter
string
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

number_of_cards
integer

Expected number of cards to be activated. Must match the actual count between firstcard and lastcard. If provided and mismatched, the request will fail.

amount
required
number <decimal>

The amount to load on the card.

program
required
string = 10 characters

The unique identifier of the card's program.

merchant_group
required
string = 10 characters

This unique identifier of the card's merchant group.

location_name
string <= 100 characters

Activating location name.

campaign
string <= 100 characters

This value is used in reporting to further filter metadata.

sales_channel
required
string <= 255 characters
Enum: "Online" "InPerson" "PhoneOrder" "PosActivation" "ThirdParty" "BulkFulfillment" "Mobile" "None"

Sales Channel identifier used in reporting. The activation will fail if the sales channel value is invalid.

card_type
string <= 50 characters
Default: "Regular"

The type of card. If not provided, the default value is set to 'Regular'.

is_activation_lock
boolean
Default: false

A value to indicate if the card should be locked upon activation. If not provided, the default value is set to 'False'.

payment_type
string <= 50 characters
Default: "Cash"

The type of payment. If not provided, the default value is set to 'Cash'.

note
required
string <= 255 characters

A value provided by the client. usually descriptive. Must be 255 characters or less.

client_reference_number
string <= 50 characters

A unique value assigned by the client. It is used in reporting to further filter metadata.

Responses

Request samples

Content type
application/json
{
  • "first_card_id": "ZTYGD5V8CLZBWQJ8",
  • "last_card_id": "ZJHGD5V8CLZBWQJ7",
  • "search_parameter": "PrintText",
  • "number_of_cards": 4,
  • "amount": 100,
  • "program": "Progr12345",
  • "merchant_group": "EMLFi98765",
  • "location_name": "Test Location",
  • "campaign": "Test Campaign",
  • "sales_channel": "Online",
  • "card_type": "Regular",
  • "is_activation_lock": false,
  • "payment_type": "Card",
  • "note": "test note",
  • "client_reference_number": "test"
}

Response samples

Content type
application/json
{
  • "number_of_cards_activated": 4,
  • "per_card_fee": 1.5,
  • "transaction_fee": 2,
  • "total_amount": 48,
  • "cards_activated": [
    ]
}

Card Token - Create

Alpha

Creates a new token for a given card. This token can be used with other APIs related to a card. The client needs permission to perform this action.

Authorizations:
BasicAuth
query Parameters
program
required
string

When using the search_parameter of ClientTrackingId; this value will indicate which program the provided card_id belongs to. While other search_parameters are guaranteed to be unique across the system and are assigned by EML Payments; ClientTrackingId is assigned to the card by an integration client and there is no guarantee that it will be unique to the system.

Request Body schema: application/json

The information required to create a new token. The client must be associated with the program of the card in the request.

card_id
required
string

Uniquely identifies a card. See search_parameter for the types of values that may be used.

search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates which unique value is used to identify the card.

expiration
required
string <date-time>

The token expiration date in ISO 8601 format. The expiration must be later than the current date.

scopes
Array of strings unique

A list of the scopes to which a token should apply.

Responses

Request samples

Content type
application/json
{
  • "card_id": "string",
  • "search_parameter": "ActualCardNumber",
  • "expiration": "20200101T00:00:00Z",
  • "scopes": [
    ]
}

Response samples

Content type
application/json
{
  • "token": "eyJhbGciOiJub25lIn0.eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ"
}

Card Token - Get

Alpha

Reads, validates, and returns information about a card token. The client needs permission to perform this action.

Authorizations:
BasicAuth
query Parameters
token
required
string <byte>
Example: token=eyJhbGciOiJub25lIn0.eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ

A base64-encoded card token. The client must be associated with the card the token is for.

Responses

Response samples

Content type
application/json
{}

Check Customer Identification Status

Alpha

Returns the status of an identification operation for a cardholder using a CIP token.

Authorizations:
BasicAuth
query Parameters
token
required
string <byte>
Example: token=eyJhbGciOiJub25lIn0.eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ

A base64-encoded CIP token. The client must be associated with the program the token is associated with.

Responses

Response samples

Content type
application/json
{
  • "status": "pending"
}

CIP Activation

This API is used to create and activate a card and initiate a WL tokenized email

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

Request Body schema: application/json

Details required to create and activate a card and initiate a WL tokenized email

first_name
required
string <= 50 characters

First name (alpha and space characters only)

last_name
required
string <= 50 characters

Last name (alpha and space characters only)

birthdate
required
string <date>

Account holder's date of birth (mm/dd/yyyy)

national_identity_number
required
string

Account holder's full national identity number

address
required
string <= 255 characters

Address line

city
required
string <= 255 characters

City

state
string

Required when country utilizes states. This is the state abbreviation as defined by ISO 3166-2.

province
string

Required when country utilizes provinces. This is the province abbreviation as defined by ISO 3166-2.

postal_code
string

Required when country utilizes postal codes

country
required
string

This is the country code as defined by ISO 3166-1 alpha-3 code

email
required
string <email>

Email Address. Format 'test@email.com'

phone
string

Account holder's phone number (nnnnnnnnnn). Required when CIP is required for the program AND when country = CAN.

occupation
string

Account holder's occupation. Required when CIP is required for the program AND when country = CAN.

program_tag
required
string

The unique tag of the program

merchant_group_tag
string

The unique tag of the merchant group

amount
required
string <decimal>

Initial funds to load onto card

client_reference_number
string <= 50 characters

A reference number created by the client for use in reporting. Max length is 50 characters

culture
string

Origination email will use culture to determine language. If no value is included then default culture of BIN will be used.

identity_verification_date
string <date>

The date on which a customer's identity was verified.

identity_document_type
string <= 50 characters

The identity document type such as driver's licence or passport.

identity_document_id
string <= 50 characters

The identity document's unique identifier.

identity_document_jurisdiction
string <= 50 characters

The state or province and country that issued the identity document.

identity_document_expiration_date
string <date>

The identity document's expiration date.

Responses

Request samples

Content type
application/json
{
  • "first_name": "Test",
  • "last_name": "Testerson",
  • "birthdate": "01/01/1960",
  • "national_identity_number": "1234567890",
  • "address": "123 Fake St.",
  • "city": "Kansas City",
  • "province": "MO",
  • "postal_code": "12345",
  • "country": "CAN",
  • "email": "fake@fake.com",
  • "amount": "100.00",
  • "client_reference_number": "123456789",
  • "occupation": "cashier",
  • "phone": "1234567890",
  • "program_tag": "Prgrm913",
  • "merchant_group_tag": "Prgrm789",
  • "culture": "de-DE"
}

Response samples

Content type
application/json
{
  • "validation_result": "string"
}

Create Card

Available

Creates a new card. The client needs permission to perform this action.

Authorizations:
BasicAuth
Request Body schema: application/json

The information required to create a new card. The client must be associated with the program in the request.

program_tag
required
string = 10 characters

The unique tag of the program for which to create a card.

client_tracking_id
string <= 50 characters

A client-assigned value that uniquely identifies a card within the scope of a program.

Responses

Request samples

Content type
application/json
{
  • "program_tag": "Progr12345",
  • "client_tracking_id": "Client-Assigned-Id-1"
}

Response samples

Content type
application/json
{
  • "id": "ZZ9DH4STVMX6XWMR",
  • "currency": "USD",
  • "expiration_date": "2020-01-31",
  • "account_expiration_date": "2020-01-31",
  • "program_tag": "Progr12345"
}

Create Merchant Group

Available

Creates a new merchant group.

Authorizations:
BasicAuth
Request Body schema: application/json

The information required to create a new merchant group.

verification_token
required
string <byte>

A base64-encoded verification token issued by EML Payments.

name
required
string <= 255 characters

The name of the merchant group.

object

Defines the merchant group's brand.

program_tags
required
Array of strings non-empty

The unique tags of the programs to associate with the merchant group.

email
required
string <email> <= 255 characters

The merchant group contact email address.

timezone
required
string

The merchant group timezone as defined in the IANA tz 'Area/Location' format.

required
object or object

The merchant group contact location.

Responses

Request samples

Content type
application/json
{
  • "verification_token": "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJwcm9nMTIzNDU2IiwiaXNzIjoid2Vic2VydmljZXMuZW1scGF5bWVudHMuY29tIiwiaWF0IjoxMzAwODE5MzgwLCJleHAiOjEzMDA4MTkzODAsInNjcCI6WyJjcmVhdGVfbWVyY2hhbnRfZ3JvdXAiXSwicHJvZ3JhbV90YWciOiJwcm9nMTIzNDU2IiwicmV1c2FibGUiOnRydWV9.GsUW97nBkBNS3NtXGBwg0Q4l9_E1UgdErWvE2ZcakHs",
  • "name": "Example Merchant Group",
  • "brand": {
    },
  • "program_tags": [
    ],
  • "email": "john.doe@example.com",
  • "timezone": "America/Chicago",
  • "location": {
    }
}

Response samples

Content type
application/json
{
  • "unique_tag": "MercGrp123",
  • "name": "Example Merchant Group",
  • "brand": {
    },
  • "program_tags": [
    ],
  • "email": "john.doe@example.com",
  • "timezone": "America/Chicago",
  • "location": {
    }
}

Create Pseudo Account

Alpha

Creates a pseudo account for a card if one does not already exist. The client must be associated with the program of the card in the request.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
program
required
string

When using the search_parameter of ClientTrackingId; this value will indicate which program the provided card_id belongs to. While other search_parameters are guaranteed to be unique across the system and are assigned by EML Payments; ClientTrackingId is assigned to the card by an integration client and there is no guarantee that it will be unique to the system.

search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

Responses

Response samples

Content type
application/json
{
  • "account_number": "string",
  • "routing_number": "string"
}

Disbursement Account - Create

Available

This API is utilized to create a new disbursement account. Client needs write permission on the disbursement account to perform this action.

Authorizations:
BasicAuth
Request Body schema: application/json

Details required to create a new disbursement account.

required
object (BankAccount-2)
description
required
string <= 500 characters

Description of the disbursement account

references
Array of strings

An array of strings that are used to find the disbursement account when it is in a funding file

program_tags
Array of strings

The unique tags of the program(s) this disbursement account will be viewable by. Only required if the user is associated to more than one program.

Responses

Request samples

Content type
application/json
{
  • "bank_account": {
    },
  • "description": "DA account description",
  • "references": [
    ],
  • "program_tags": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "account_balance": 1,
  • "overdraft_limit": 3,
  • "available_balance": 4,
  • "bank_account": {
    },
  • "description": "DA account description",
  • "references": [
    ],
  • "program_tags": [
    ]
}

Disbursement Account - Get All

Available

This API is utilized to get a summary of all disbursement accounts viewable by the user. Client needs read permission on the disbursement account to perform this action.

Authorizations:
BasicAuth
query Parameters
pageSize
integer

The number of results to return. Default is 100. Maximum limit is 100.

pageNumber
integer

The page number. Default is 1.

filter
string

Filters the list of disbursement accounts by given text

sortAscending
boolean

Sorts the results in ascending order.

sortColumn
string
Enum: "Description" "Balance" "OverdraftLimit" "AvailableBalance" "BankAccountName"

The column by which the results are sorted.

Responses

Response samples

Content type
application/json
{
  • "disbursement_accounts": [
    ]
}

Disbursement Account - Get By ID

Available

This API is utilized to get a disbursement account for the given ID. Client needs read permission on the disbursement account to perform this action.

Authorizations:
BasicAuth
path Parameters
id
required
integer

Disbursement Account ID

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "account_balance": 1,
  • "overdraft_limit": 3,
  • "available_balance": 4,
  • "bank_account": {
    },
  • "description": "DA account description",
  • "references": [
    ],
  • "program_tags": [
    ]
}

Disbursement Account - Update

Available

This API is utilized to update an existing disbursement account. Client needs write permission on the disbursement account to perform this action.

Authorizations:
BasicAuth
path Parameters
id
required
integer

Disbursement Account ID

Request Body schema: application/json

Details required to update an existing disbursement account

description
string <= 500 characters

Description of the disbursement account.

enabled
boolean

Indicates if disbursement account to be enabled or disabled. Default value is true.

references
Array of strings

An array of strings that are used to find the disbursement account when it is in a funding file

program_tags
Array of strings

The unique tags of the program(s) this disbursement account will be viewable by. Only required if the user is associated to more than one program.

Responses

Request samples

Content type
application/json
{
  • "description": "DA account description",
  • "enabled": true,
  • "references": [
    ],
  • "program_tags": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "account_balance": 1,
  • "overdraft_limit": 3,
  • "available_balance": 4,
  • "bank_account": {
    },
  • "description": "DA account description",
  • "references": [
    ],
  • "program_tags": [
    ]
}

Disbursement Account - Get Default

Available

This API is utilized to get the default disbursement account for a merchant group or program. Client needs read permission on the disbursement account and access to the given program (and merchant group) to perform this action.

Authorizations:
BasicAuth
path Parameters
programtag
required
string

The unique tag of the program(s) this disbursement account will be viewable by

query Parameters
merchantgrouptag
string

The unique tag of the merchant group associated to the program

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "account_balance": 1,
  • "overdraft_limit": 3,
  • "available_balance": 4,
  • "bank_account": {
    },
  • "description": "DA account description",
  • "references": [
    ],
  • "program_tags": [
    ]
}

Disbursement Account - Set Default

Available

This API is utilized to set a default disbursement account for a merchant group or program. Client needs write permission on the disbursement account and access to the given program (and merchant group) to perform this action.

Authorizations:
BasicAuth
path Parameters
programtag
required
string

The unique tag of the program(s) this disbursement account will be viewable by

query Parameters
merchantgrouptag
string

The unique tag of the merchant group associated to the program

Request Body schema: application/json

Details required to set a default disbursement account

id
required
integer

Uniquely identifies a disbursement account.

Responses

Request samples

Content type
application/json
{
  • "id": 1
}

Response samples

Content type
application/json
{
  • "code": 400,
  • "message": "Request missing disbursement account ID or invalid value provided"
}

Disbursement Account - Get Ledger Entries

Available

This API is utilized to get ledger entries for a disbursement account. Client needs read permission on the disbursement account to perform this action.

Authorizations:
BasicAuth
path Parameters
id
required
integer

Disbursement Account ID

query Parameters
pageSize
integer

The number of results to return. Default is 100. Maximum limit is 100.

pageNumber
integer

The page number. Default is 1.

filter
string

Filters the list of disbursement accounts by given text

startDate
required
string <date>

Filters the results with a created date after this date

endDate
required
string <date>

Filter the results with a created date before this date

Responses

Response samples

Content type
application/json
{
  • "ledger_entries": [
    ],
  • "total": 22,
  • "page_number": 1
}

Email - Get Status

Available

Gets the status of an email that has been sent.

Authorizations:
BasicAuth
path Parameters
id
required
number

The email request id.

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "from": "noreply@emlpayments.com",
  • "to": "jane_doe@example.com",
  • "template_id": "679923ae76c145659dc9861a5f7cd8a8",
  • "status": "pending"
}

Email - Send

Available

Sends an email using a predefined template and dynamic data.

Authorizations:
BasicAuth
Request Body schema: application/json

The information required to send an email.

program_tag
string = 10 characters

The unique identifier of a program for which an email is intended. The client must be associated with the program.

merchant_group_tag
string = 10 characters

The unique identifier of a merchant group for which an email is intended. The client must be associated with the merchant group if it is provided.

required
object

The email sender.

required
object

The email recipient.

required
object

Describes the email template to use.

object

The email attachments.

Responses

Request samples

Content type
application/json
{
  • "program_tag": "Progr54321",
  • "merchant_group_tag": "MercGrp123",
  • "from": {
    },
  • "to": {
    },
  • "template": {
    },
  • "attachments": {
    }
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "from": "noreply@emlpayments.com",
  • "to": "jane_doe@example.com",
  • "template_id": "679923ae76c145659dc9861a5f7cd8a8",
  • "status": "pending"
}

Get Ledger Entry

Retrieves a ledger entry by its id. The client needs read permission on the corresponding disbursement account.

Authorizations:
BasicAuth
path Parameters
id
required
integer

Disbursement Account ID

ledgerEntryId
required
integer

The id of the ledger entry being requested.

Responses

Response samples

Content type
application/json
{
  • "id": 347,
  • "amount": 1,
  • "client_tracking_id": "string",
  • "external_id": "string",
  • "created_date": "2024-07-22T11:07:03.8719059-05:00",
  • "note": "string",
  • "system_transaction_id": 0,
  • "source_type": "API Entry",
  • "user_name": "devadmin"
}

Get Ledger Entry Bank Statements

Retrieves a ledger entry's associated bank statements if any exist. The client needs read permission on the corresponding disbursement account.

Authorizations:
BasicAuth
path Parameters
id
required
integer

Disbursement Account ID

ledgerEntryId
required
integer

The id of the ledger entry being requested.

Responses

Response samples

Content type
application/json
{
  • "statements": [
    ]
}

IBANS - Allocate IBANs

Acquires and assigns IBANs to a card. The IBANs are also assigned to the provided disbursement account or the card's default disbursement account. The card must be active and registered.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
program
required
string

When using the search_parameter of ClientTrackingId; this value will indicate which program the provided card_id belongs to. While other search_parameters are guaranteed to be unique across the system and are assigned by EML Payments; ClientTrackingId is assigned to the card by an integration client and there is no guarantee that it will be unique to the system.

search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

Request Body schema: application/json

The information required to allocate IBANs to a card.

merchant_group_tag
string = 10 characters

The unique identifier of a merchant group to use to determine the default disbursement account. The client must be associated with the merchant group if it is provided.

disbursement_account_id
integer

Identifies a disbursement account to which IBANs should be assigned. If not provided, the default disbursement account will be used.

Responses

Request samples

Content type
application/json
{
  • "merchant_group_tag": "MercGrp123",
  • "disbursement_account_id": 1
}

Response samples

Content type
application/json
{}

IBANS - Get IBANs

Retrieves information about a card's IBANs.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
program
required
string

When using the search_parameter of ClientTrackingId; this value will indicate which program the provided card_id belongs to. While other search_parameters are guaranteed to be unique across the system and are assigned by EML Payments; ClientTrackingId is assigned to the card by an integration client and there is no guarantee that it will be unique to the system.

search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

Responses

Response samples

Content type
application/json
{
  • "id": "ZZ9DH4STVMX6XWMR",
  • "ibans": [
    ],
  • "additional_ibans_pending": true
}

Identify Customer

Alpha

Performs CIP on a cardholder. The client needs permission to perform this action.

Authorizations:
BasicAuth
Request Body schema: application/json

The information required to CIP a cardholder.

One of
first_name
required
string <= 50 characters ^[A-Za-z ]+$

The customer's first name.

last_name
required
string <= 50 characters ^[A-Za-z ]+$

The customer's last name.

birthdate
required
string <date>

The customer's date of birth.

national_identity_number
required
string

The customer's full national identity number.

address
required
string <= 255 characters

The customer's street address.

city
required
string <= 255 characters

The customer's city.

state
required
string = 2 characters

The customer's state abbreviation as defined by ISO 3166-2. It is required when the customer's country has states.

province
string = 2 characters

The customer's province abbreviation as defined by ISO 3166-2. It is required when the customer's country has provinces.

country
required
string = 3 characters

The customer's country code as defined by ISO 3166-1 alpha-3.

postal_code
required
string <= 12 characters

The customer's postal code.

email
required
string <email> <= 255 characters

The customer's email address.

phone
string <= 20 characters

The customer's phone number. Required when country is 'CAN'.

occupation
string <= 255 characters

The customer's occupation. Required when country is 'CAN'.

program_tag
string = 10 characters

The unique tag of the program for which a customer is being identified. Only required if a client is associated with multiple programs.

object

Information about the customer's identity document. Required when country is 'CAN'.

Responses

Request samples

Content type
application/json
{
  • "first_name": "Jane",
  • "last_name": "Doe",
  • "birthdate": "1970-01-01",
  • "national_identity_number": "string",
  • "address": "8330 Ward Pkwy",
  • "city": "Kansas City",
  • "state": "MO",
  • "province": "ON",
  • "country": "USA",
  • "postal_code": "64114-2027",
  • "email": "jane.doe@example.com",
  • "phone": "+18165550124",
  • "occupation": "string",
  • "program_tag": "Prog123456",
  • "identity_document": {
    }
}

Response samples

Content type
application/json
{
  • "token": "eyJhbGciOiJub25lIn0.eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ",
  • "status": "pending"
}

Linked Account Creation

This API is used to create and activate a card and link it to an EML whitelabel account

Authorizations:
BasicAuth
query Parameters
program
required
string

When using the search_parameter of ClientTrackingId; this value will indicate which program the provided card_id belongs to. While other search_parameters are guaranteed to be unique across the system and are assigned by EML Payments; ClientTrackingId is assigned to the card by an integration client and there is no guarantee that it will be unique to the system.

Request Body schema: application/json

Details required to create and activate a card and link it to an EML whitelabel

client_tracking_id
required
string

A value assigned by the client that uniquely identifies the gaming account

first_name
required
string <= 50 characters

First name (alpha and space characters only)

middle_name
string <= 50 characters

Middle name (alpha and space characters only)

last_name
required
string <= 50 characters

Last name (alpha and space characters only)

date_of_birth
required
string <mm/dd/yyyy>

Account holder's date of birth (mm/dd/yyyy)

social_security_number
required
string

Account holder's full social security number (nnnnnnnnnn)

address1
required
string <= 255 characters

First address line

address2
string <= 255 characters

Second address line

city
required
string <= 255 characters

City

state
string

Required when country utilizes states. This is the state abbreviation as defined by ISO 3166-2.

province
string

Required when country utilizes provinces. This is the province abbreviation as defined by ISO 3166-2.

postal_code
string

Required when country utilizes postal codes

country
required
string

This is the country code as defined by ISO 3166-1 alpha-3 code

email
required
string <email>

Email Address. Format 'test@email.com'

phone
string

Account holder's phone number (nnnnnnnnnn). Required when CIP is required for the program AND when country = CAN.

occupation
string

Account holder's occupation. Required when CIP is required for the program AND when country = CAN.

card_design
string

Indicates the card design selected by the cardholder. Valid values are provided by EML.

merchant_group
string

This unique identifier is provided by EML

card_type
string

Indicates the type of card to be created; 'physical' or 'virtual'. If not defined in the call EML will default to physical.

third_line_emboss
string <= 22 characters

This gets printed on the third line of raised writing on the card.

fourth_line_emboss
string <= 22 characters

This gets printed on the fourth line of raised writing on the card.

shipping_carrier
string <= 2 characters

Identifies the partner that will ship the card, your implementation specialist will provide this value to you.

shipping_type
string <= 2 characters

Identifies the partner that will ship the card, your implementation specialist will provide this value to you.

object

Additional fields can be added to this object that can be passed through to the card manufacturer. Please consult with your implementation manager to define these fields for use.

Responses

Request samples

Content type
application/json
{
  • "client_tracking_id": "Your_Account_ID",
  • "first_name": "Test",
  • "last_name": "Testerson",
  • "date_of_birth": "01011960",
  • "social_security_number": "1234567890",
  • "address1": "123 Fake St.",
  • "city": "Kansas City",
  • "state": "MO",
  • "postal_code": "12345",
  • "country": "USA",
  • "email": "fake@fake.com",
  • "card_design": "Design1",
  • "third_line_emboss": "thirdline",
  • "fourth_line_emboss": "fourthline",
  • "shipping_carrier": "SC",
  • "shipping_type": "ST",
  • "additional_data": {
    }
}

Response samples

Content type
application/json
{
  • "client_tracking_id": "Your_Account_ID"
}

Partner Challenge Request

This API is used to provide EML with the outcome of the Partner Challenge Request.

Authorizations:
BasicAuth
Request Body schema: application/json

Details about the 3DS partner challenge

replyDate
required
string <unix-epoch>

The date of the reply

correlationID
required
string

A unique identifier assigned to this transaction. This value was provided in the Partner Challenge Request webhook.

authenticationStatus
required
string
Enum: "declined" "authenticated"

The status of the challenge.

Responses

Request samples

Content type
application/json
{
  • "replyDate": "string",
  • "correlationID": "string",
  • "authenticationStatus": "declined"
}

Request Card Origination Email

This API activates a virtual card and then sends a tokenized email to the specified address.

Authorizations:
BasicAuth
query Parameters
fields
string

A comma-separated list of the fields to include in the response. The special value "all" may be provided to return all response fields. The Default fields will be returned if this parameter is not specified and the Always fields will always be returned even if you specify or don't specify this parameter.

Request Body schema: application/json

The information required to request a plastic card.

amount
required
number <decimal>

The amount to load on the card.

merchant_group
required
string (MerchantGroup) = 10 characters

The Merchant Group Unique Tag associated with the card.

program
required
string

The unique tag of the program.

cardholder_email_address
required
string

Email address used by system to send activation email.

cardholder_user_id
required
string

Value used by client to identify cardholder.

client_security_code
required
string

Data user will use to verify identity and activate card.

currency
string

The ISO 4217 currency alpha code (i.e. “USD”; “EUR”;”GBP”; etc.). If the contact is associated to card orders in more than one currency; a value is required to determine which currency to use.

object
campaign
string

Campaign identifier used in reporting.

client_order_date
string <date-time>

A date created by the client for use in reporting.

client_reference_number
string

A reference number created by the client for use in reporting. Max length is 50 characters.

client_time
string <date-time>

Local time of the request.

client_tracking_id
string

Assigns a card identifier to the new card which can then be used with future API requests by making the request passing the value as the Card Identifier and the search_parameter as ClientTrackingId. Max length is 50 characters.

Responses

Request samples

Content type
application/json
{
  • "amount": 25,
  • "currency": "USD",
  • "program": "StoreFi123",
  • "merchant_group": "StoreFi987",
  • "location": {
    },
  • "client_time": "/Date(1224043200000)/",
  • "cardholder_user_id": "x12345rtrrfgrs12345",
  • "client_security_code": "ABC123",
  • "cardholder_email_address": "test@test.com",
  • "client_tracking_id": "SampleCTID-A-Virtual-2",
  • "client_reference_number": 12345,
  • "client_order_date": "/Date(1224043200000)/",
  • "campaign": "Holiday In-Store"
}

Response samples

Content type
application/json
{
  • "id": "Z43210987654321X",
  • "client_tracking_id": "SampleCTID-A",
  • "available_balance": 25.1,
  • "currency": "USD",
  • "can_activate": false,
  • "can_redeem": true,
  • "program_can_register": false,
  • "security_code": "123456",
  • "expiration_date": "/Date(1538369999999)/",
  • "account_expiration_date": "/Date(1477890000000)/",
  • "is_virtual": true,
  • "is_reloadable": false,
  • "actual_balance": 25,
  • "status": "Active",
  • "is_registered": false,
  • "activating_merchant_group_name": "EML Payments MG",
  • "activating_merchant_group_uniquetag": "EMLPay987",
  • "activation_country": "United States",
  • "activation_date": "/Date(1377624625133-0500)/",
  • "program_name": "EML",
  • "program_uniquetag": "EMLFi123",
  • "amf_start_date": "/Date(1419746400000-0600)/",
  • "amf_next_date": "/Date(1419746400000-0600)/",
  • "distributor_refund": false,
  • "card_type": "Regular",
  • "activation_transaction_id": 123456789,
  • "is_organization_registration": false,
  • "currency_info": {
    },
  • "adjusted_balance": 25,
  • "pin_enabled": true,
  • "has_pin": false
}

Request Plastic Card

Available

Initiates the process that will ship a plastic card to a cardholder. Only activated and registered cards may have plastic requested for them.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
program
required
string

When using the search_parameter of ClientTrackingId; this value will indicate which program the provided card_id belongs to. While other search_parameters are guaranteed to be unique across the system and are assigned by EML Payments; ClientTrackingId is assigned to the card by an integration client and there is no guarantee that it will be unique to the system.

search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

Request Body schema: application/json

The information required to request a plastic card.

card_design_id
string

Identifies the card design that was setup in Program Management. If not passed it will select the default card design.

third_line_emboss
string <= 22 characters

This gets printed on the third line of raised writing on the card.

fourth_line_emboss
string <= 22 characters

This gets printed on the fourth line of raised writing on the card.

shipping_carrier
string <= 2 characters

Identifies the partner that will ship the card. An implementation specialist will provide this value.

shipping_type
string <= 2 characters

Identifies the partner that will ship the card. An implementation specialist will provide this value.

activation_lock
boolean

Indicates whether an activation lock should be placed on the card. Once locked, a card can later be unlocked using Activation Unlock.

merchant_group_tag
string = 10 characters

The unique identifier of the merchant group to associate with the plastic request. The client must be associated with the merchant group if it is provided.

client_tracking_id
string <= 50 characters

A client-assigned value that uniquely identifies a card within the scope of a program. Only allowed if a card does not already have a client tracking id assigned.

object

Additional fields can be added to this object to be passed through to the card manufacturer. Please consult with an implementation manager to define these fields.

Responses

Request samples

Content type
application/json
{
  • "card_design_id": "a5d708d8-8437-4c09-9dae-2a1fa9a45750",
  • "third_line_emboss": "string",
  • "fourth_line_emboss": "string",
  • "shipping_carrier": "US",
  • "shipping_type": "ST",
  • "activation_lock": true,
  • "merchant_group_tag": "MercGrp123",
  • "client_tracking_id": "Client-Assigned-Id-1",
  • "additional_data": {
    }
}

Response samples

Content type
application/json
{
  • "id": "ZZ9DH4STVMX6XWMR",
  • "card_design_id": "a5d708d8-8437-4c09-9dae-2a1fa9a45750",
  • "third_line_emboss": "string",
  • "fourth_line_emboss": "string",
  • "shipping_carrier": "US",
  • "shipping_type": "ST",
  • "merchant_group_tag": "MercGrp123",
  • "additional_data": {
    },
  • "recipient": {
    }
}

Transfer Funds

Available

Transfers funds between owned disbursement accounts. Client needs write permission on the source and destination disbursement accounts to perform this action. The disbursement accounts need to exist under the same bank account. Overdraft limits are not taken into account.
There must be sufficient real funds in the source account to successfully complete the transfer.

Authorizations:
BasicAuth
Request Body schema: application/json

The details needed to transfer funds between disbursement accounts

source_account_id
integer >= 1

The ID of the disbursement account from which the funds will be withdrawn.

destination_account_id
integer >= 1

The ID of the disbursement account to which the funds will be credited.

amount
number <decimal> >= 0

The amount to transfer from the source account to the destination account.

Responses

Request samples

Content type
application/json
{
  • "source_account_id": 12345,
  • "destination_account_id": 98766,
  • "amount": 1250.32
}

Response samples

Content type
application/json
{
  • "code": 400,
  • "message": "Request missing description or invalid value provided"
}

Whitelist Merchant Groups

This API is used to associate a merchant group to an existing linked account

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

Request Body schema: application/json

Details required to associate a merchant group to an existing linked account

merchant_group
required
string

This unique identifier is provided by EML

Responses

Request samples

Content type
application/json
{
  • "merchant_group": "EMLFi987"
}

In App Provisioning

Current Support

Canada
• Apple Pay
• Google Pay
• Samsung Pay

Europe (United Kingdom)
• Apple Pay
• Google Pay
• Samsung Pay

United States
• Apple Pay
• Google Pay
• Samsung Pay – not currently supported (pending certification)

Apple Pay

Available

This API is used to perform in-app provisioning in mobile applications for Apple Pay.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

Request Body schema: application/json

Details required to perform in-app provisioning in mobile applications for Apple Pay.

base64_encoded_leaf_certificate
required
string

Base64 encoded bytes of a DER encoded X.509 certificate retrieved from the Apple device. The apple device will have two certificates. The first one is the leaf and should be assigned to this parameter.

base64_encoded_sub_ca_certificate
required
string

Base64 encoded bytes of a DER encoded X.509 certificate retrieved from the Apple device. The apple device will have two certificates. The second one is the sub-CA and should be assigned to this parameter.

nonce
required
string

A one time use nonce generated by Apple Servers; retrieved from the Apple device.

nonce_signature
required
string

The device and account specific signature of the nonce; retrieved from the Apple device.

Responses

Request samples

Content type
application/json
{
  • "base64_encoded_leaf_certificate": "MIID/TCCA6OgAwIBAgIIGM2CpiS9WyYwCgYIKoZIzj0EAwIwgYAxNDAyBgNVBAMMK0FwcGxlIFdvcmxkd2lkZSBEZXZlbG9wZXIgUmVsYXRpb25zIENBIC0gRzIxJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRMwEQYDVQQKDApBcHBsZSBJbmMuMQswCQYDVQQGEwJVUzAeFw0xODA2MDEyMjE0MTVaFw0yMDA2MzAyMjE0MTVaMGwxMjAwBgNVBAMMKWVjYy1jcnlwdG8tc2VydmljZXMtZW5jaXBoZXJtZW50X1VDNi1QUk9EMRQwEgYDVQQLDAtpT1MgU3lzdGVtczETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASzCVyQGX3syyW2aI6nyfNQe+vjjzjU4rLO0ZiWiVZZSmEzYfACFI8tuDFiDLv9XWrHEeX0/yNtGVjwAzpanWb/o4ICGDCCAhQwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBSEtoTMOoZichZZlOgao71I3zrfCzBHBggrBgEFBQcBAQQ7MDkwNwYIKwYBBQUHMAGGK2h0dHA6Ly9vY3NwLmFwcGxlLmNvbS9vY3NwMDMtYXBwbGV3d2RyY2EyMDUwggEdBgNVHSAEggEUMIIBEDCCAQwGCSqGSIb3Y2QFATCB/jCBwwYIKwYBBQUHAgIwgbYMgbNSZWxpYW5jZSBvbiB0aGlzIGNlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRlIHBvbGljeSBhbmQgY2VydGlmaWNhdGlvbiBwcmFjdGljZSBzdGF0ZW1lbnRzLjA2BggrBgEFBQcCARYqaHR0cDovL3d3dy5hcHBsZS5jb20vY2VydGlmaWNhdGVhdXRob3JpdHkvMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwuYXBwbGUuY29tL2FwcGxld3dkcmNhMi5jcmwwHQYDVR0OBBYEFI5aYtQKaJCRpvI1Dgh+Ra4x2iCrMA4GA1UdDwEB/wQEAwIDKDASBgkqhkiG92NkBicBAf8EAgUAMAoGCCqGSM49BAMCA0gAMEUCIAY/9gwN/KAAw3EtW3NyeX1UVM3fO+wVt0cbeHL8eM/mAiEAppLm5O/2Ox8uHkxI4U/kU5vDhJA21DRbzm2rsYN+EcQ=",
  • "base64_encoded_sub_ca_certificate": "MIIC9zCCAnygAwIBAgIIb+/Y9emjp+4wCgYIKoZIzj0EAwIwZzEbMBkGA1UEAwwSQXBwbGUgUm9vdCBDQSAtIEczMSYwJAYDVQQLDB1BcHBsZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMwHhcNMTQwNTA2MjM0MzI0WhcNMjkwNTA2MjM0MzI0WjCBgDE0MDIGA1UEAwwrQXBwbGUgV29ybGR3aWRlIERldmVsb3BlciBSZWxhdGlvbnMgQ0EgLSBHMjEmMCQGA1UECwwdQXBwbGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE3fC3BkvP3XMEE8RDiQOTgPte9nStQmFSWAImUxnIYyIHCVJhysTZV+9tJmiLdJGMxPmAaCj8CWjwENrp0C7JGqOB9zCB9DBGBggrBgEFBQcBAQQ6MDgwNgYIKwYBBQUHMAGGKmh0dHA6Ly9vY3NwLmFwcGxlLmNvbS9vY3NwMDQtYXBwbGVyb290Y2FnMzAdBgNVHQ4EFgQUhLaEzDqGYnIWWZToGqO9SN863wswDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS7sN6hWDOImqSKmd6+veuv2sskqzA3BgNVHR8EMDAuMCygKqAohiZodHRwOi8vY3JsLmFwcGxlLmNvbS9hcHBsZXJvb3RjYWczLmNybDAOBgNVHQ8BAf8EBAMCAQYwEAYKKoZIhvdjZAYCDwQCBQAwCgYIKoZIzj0EAwIDaQAwZgIxANmxxzHGI/ZPTdDZR8V9GGkRh3En02it4Jtlmr5s3z9GppAJvm6hOyywUYlBPIfSvwIxAPxkUolLPF2/axzCiZgvcq61m6oaCyNUd1ToFUOixRLal1BzfF7QbrJcYlDXUfE6Wg==",
  • "nonce": "9c023092",
  • "nonce_signature": "4082f883ae62d0700c283e225ee9d286713ef74456ba1f07376cf17d71bf0be013f926d486619394060ced56030f41f84df916eaab5504e456a8530dc9c821f6ed3e3af62b5d8f3e4a22ca2018670fee4e"
}

Response samples

Content type
application/json
{
  • "activation_data": "eyJ2ZXJzaW9uIjoiMyIsInNpZ25hdHVyZUFsZ29yaXRobSI6IlJTQS1TSEEyNTYiLCJkYXRhVmFsaWRVbnRpbFRpbWVzdGFtcCI6IjIwMTktMDMtMTJUMDE1NzQxWiIsImluY2x1ZGVkRmllbGRzSW5PcmRlciI6ImRhdGFWYWxpZFVudGlsVGltZXN0YW1wfGFjY291bnROdW1iZXJ8YWNjb3VudEV4cGlyeSIsInNpZ25hdHVyZSI6IlV6M1JzNjdHWVlRRStCM29Cb0VYeVU1ZHdoVHVIWThZbVZxc2xCRExDZFJHU3FBa3FaaDlYUmEvRGJ2L1M5RjZYaTdZZU5KajFMY0pTTzNNY3p2RllGSFlPbS9xSDdRcmhiVlduSFdlK1RpOFg5bWJXM2kvNnU3UGllVzRqRmhhak1UYVBuNlNhSks0UnZsVit0Z20veTZKdFoydVVuUm1paFE1QkgzOGxrYjU1eUtVY1pEckIwSHZBdFhaejI4alpVSWhOdWo4NDRKOVlmalE5NFdmU1RRNzc1YXlSdmczd1BZUUdhemd1ZzkxZW5uYnN3VTJUditNZ0gzZFlBZ0xwTUc4WG8zV0pubFF6MktydUpvSFFJYndTa2I0ZlU4L2h3NHU0MFdEVnFBbmF6bElta2FHQ3Y3VDFvZzlvY3FIcUxRUitxREtoNWxseVJsWnREOC9Gdz09In0=",
  • "encrypted_pass_data": "6S7BE6N/tM88Gi94b+YdS1z8ofiytkjVnhQQxz+PjSo9/Iqq2UjNQ+Or0fO/0Wos01i/ZlGUI/MhHkgJ96jtv1OTUGS9J0O3gaIRdkct9ZNGbIjl04GBvf9lTLRhUUtuuiIF6XHmJKTnI7TS8lNsAXcGu/xdqmOm7+0VjTtWSa0qb/6vAg4vuGhbLMG7Mh9HLYXMGdD5MDwDOf3B2h8mFhklQYFporlcr6ShjnyaXZoQoBxtKGlRU+rUsb/rAIyRmXXCfZdjEPKf8IW7gToPKvY4RDt+Qp71C7rjq2UNuLTrt2OQ9ie0UIRObJwfFUuP5jZZhVXULQjEtoQ5OOOETc0ZqFQaYZEJhqJ0P/eEfa9iunGd+q+Ew2HBQX14eIHfwFK0/dtT9ig0voW2qaF5DUT/SYND4C4x",
  • "ephemeral_public_key": "BOA6LSXoD1kgTKk3jptU0K/MqrJxVrWB0iX/iqF2kyXyJFUvafguizP8H+fm/yyzNkWsoRi/frCNShCrDpwbR08=",
  • "card_id": "A655616801003923",
  • "pan_last_four": "2077",
  • "cardholder_name": "WINDSOR CROSSING /GC",
  • "program_name": "Windsor Crossing Premium Outlets",
  • "payment_network": "MasterCard"
}

Get Tokens

Available

This API is used to perform in-app provisioning in mobile applications.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

Responses

Response samples

Content type
application/json
{
  • "card_id": "I265160701003923",
  • "tokens": [
    ]
}

Google Pay

Available

This API is used to perform in-app provisioning in mobile applications for Google Pay.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

Responses

Response samples

Content type
application/json
{
  • "issuer_payload": "eyJmdW5kaW5nQWNjb3VudEluZm8iOnsiZW5jcnlwdGVkUGF5bG9hZCI6IjdCMjI3MDc1NjI2QzY5NjM0QjY1Nzk0NjY5NkU2NzY1NzI3MDcyNjk2RTc0MjIzQTIyMzQzNjY0Mzk2MjY1MzM2NDM3MzkzMjMyMzIzNjY0MzIzMzMxNjY2NDM4MzA2NTM2NjUzNjM2MzYzMDM0MzI2MTYzNjE2MjM0NjU2MzM3NjIyMjJDMjI2NTZFNjM3Mjc5NzA3NDY1NjQ0QjY1NzkyMjNBMjIzNDQ2Mzk0MTM1MzI0MzQxMzI0NjM3MzUzMTM1NDIzMDM3Mzg0NTQyNDEzMzMwMzY0MzM4NDY0NjMzNDQzMTQ2MzIzMDQzMzEzNDM0MzYzMjMzNDQzMzMwNDEzNDQyMzUzNjM4MzE0MzMxMzkzMzQ1NDM0MjQ2NDQzMTM2MzgzOTM4MzEzNTQ2MzMzMzMyMzk0MjM3NDIzMDQ0NDIzOTM1MzYzNDMwNDYzODMxNDQ0NDQ0MzEzNDM3NDM0MjQyNDIzOTQ2MzMzODQyMzQ0NjQ0NDEzOTQ1NDE0MjMzMzMzMDMxMzEzNDQxNDQ0MzQzMzYzNzM2MzIzODQyMzQ0MzMxMzkzNTM1NDIzOTMzMzQ0MjQ2MzM0NDQyNDMzNDM1MzU0NTM4NDQ0NTM4MzEzNDQ1MzQzNzQ1NDQ0MjQ0MzQzNzQyNDQzMzM3MzI0MjM0MzI0MTQyMzAzNTQzNDEzMjMxNDIzNjM5NDM0NjM3MzQzNTMyNDMzMzM1MzY0MTM2MzkzNDM1MzEzMDQ0MzE0NDMyMzkzMzM1MzczMTM4MzQzMDQxNDIzNjMwMzQzMjM3MzU0NDMyNDEzNzQ1MzEzMjQ2NDE0NTMxMzEzOTM1NDY0MzM4NDYzNjMzMzQzNjQ2MzQ0NDQyNDE0NDMzMzY0NTM0NDMzNjQ0MzY0NTQyNDI0MTQzNDY0NDQ1MzIzMDMwNDE0MzQyMzIzODQ1MzYzMDMxMzQzMTMzMzIzMzM5MzQzMDQ2Mzk0MjQzMzkzMzQ1NDEzOTM2NDE0NTMyNDMzMzQxNDY0NTMzNDE0NDMyMzMzODM2MzkzMjQ2NDY0NjQ1MzEzODMzNDMzNzQ2NDEzNzQ2NDYzODQ2NDY0MjQxMzIzMTM0MzIzNzQxMzA0MjMxNDY0MjM4MzY0MjQ2NDI0MzQzNDY0NjMwMzAzNTM5MzI0NjQxMzA0NTMzMzQ0MjM5NDI0NTM0MzUzODM3Mzc0MzMzMzM0NDMxMzIzMjM5MzkzOTMzMzUzNzQ1MzEzMzQ2NDYzMDQyMzE0NDQxNDQzMDM0MzI0MTM4MzM0MTM3MzQ0NDQzMzQzMDQxMzI0NDM0MzI0NjMyMzIzNDMwMzEzNzM3MzM0NjMxNDU0NDMwNDM0NTQxNDE0MjMzNDUzNzM1NDYzNDMzMzc0NDQ0MzAzMzMwNDI0NTQyMzMzMzM3MzI0NTM3MzczMzQ1MzkzNDMzNDQ0NjMyNDE0NTQ2MzczODMxNDY0NjMzMzM0MTMyMzQzNDM2NDMzOTM1MzEzNzM1NDE0NTQyMzczMzQ2MzQ0NTM4MzkzMzM1MzIzNjQ0Mzg0NDMyMzM0NjQyMzY0NTMzNDUzMTMwNDMzNTQxMzkzMzQ1MjIyQzIyNkY2MTY1NzA0ODYxNzM2ODY5NkU2NzQxNkM2NzZGNzI2OTc0Njg2RDIyM0EyMjUzNDg0MTMyMzUzNjIyMkMyMjY5NzYyMjNBMjIzNzQxMzg0NDM0NDE0MjM4NDQzNzMzNDQzMTMzMzI0MTQ0MzY0MjMzNDUzOTMyMzkzODMxMzYzNjMzNDMzODMwMjIyQzIyNjU2RTYzNzI3OTcwNzQ2NTY0NDQ2MTc0NjEyMjNBMjI0MzMxMzI0NjM4MzYzMzM0MzMzMTQyMzA0NTMzNDMzMjMxNDEzMTM3NDMzMzMxNDUzNTQxNDMzMTQzNDM0NTQzMzUzODMwMzEzODMwMzUzMTQxMzE0NDM4MzczMDQ2MzQzMjM3NDIzNTQyMzQzMDQ0MzMzMzM3MzY0NDQyNDEzMDQ2MzEzODM4NDEzODQxMzg0MjMyNDYzNDMyNDQzNzM2NDEzODMwMzczODMxMzYzMjMzMzU0NjQzMzkzODMzMzk0MzQyMzAzMzMzMzA0NTMxNDQ0NDMyMzkzMTQyNDM0MzM5NDUzNDM3MzI0NjMyMzkzNzQyNDI0NjMzMzIzMTQyMzYzNzQ1MzAzOTM5MzM0NDM2MzEzODQxMzMzMjQ1NDQzNjM4MzMzNjM0MzE0MTM4MzIzMjQ0NDY0MzM5NDI0MzMyMzY0NjMwMzAzNzM5MzEzMjQ1MzEzNzQyNDEzNzM0NDM0MzMwMzIzODM3MzM0NTQxMzQ0MjMwMzgzODQ2MzMzMzMzNDQ0NTMxMzczNDMyMzU0NDMxMzI0MzMwMzUzMDM3NDY0MTM0MzMzNDQyNDEzODQxMzI0MjM5MzQzMDM3MzI0MzQxMzAzMDM5NDIzNzM4MzEzNzM1MzAzNTM1MzQ0NjM3NDUzMDQxMzY0MjM1NDYzMjM4MzEzMTQyMzEzOTQ0NDM0MTMxMzkzNTM1MzYzNDMyMzIzOTQzMzM0MjM3NDY0MTM5MzkzNjM5MzMzNzM0MzQ0NjM2NDMzNDQyMzYzMjMzNDIzOTM4MzczNDMyNDQ0NDMxMzkzNzM4NDE0NTM1MzE0NjQ2NDQzMTM2MzIzOTMyMzEzMzMxNDI0MTQ2MzUzNDMzMzQ0MjQ2MzczMjMyMzIzNzM5Mzk0NDMwNDYzOTQxMzQzODMwNDUzNDQxMzE0MzQ0MzkzNTQ0MzMzNjM5NDQzOTQ0MzQ0MjM5MzYzMTMyMzMzMTM0MzEzMDM0MzMzNTM4MzczMzQzNDE0MjMxNDMzNTM5MzAzNjQyMzQzMDM4MzIzOTQ1MzczOTMzMzY0MTM1NDMzNjM0NDMzNzQxNDUzMjMwMzIzMTQxNDUzNDQ2NDIzMTM2NDIzNDM0NDYzNzM1MzIzOTM0MzgzNTQ1MzEzMjM2NDEzNzM0MzU0NTQxMzQ0NTM1MzQ0MzM0NDQ0MTQ2MzE0MTM4MzQzODM4MzQ0MzQzNDU0NjM5NDQ0NDM2MzYzNjQ1MzkzOTQxNDEzNTM0NDUzMDQ1NDE0MjM5MzI0MzM3MzgzODMzMzcyMjdEIn0sInRva2VuaXphdGlvbkF1dGhlbnRpY2F0aW9uVmFsdWUiOiJleUoyWlhKemFXOXVJam9pTXlJc0luTnBaMjVoZEhWeVpVRnNaMjl5YVhSb2JTSTZJbEpUUVMxVFNFRXlOVFlpTENKa1lYUmhWbUZzYVdSVmJuUnBiRlJwYldWemRHRnRjQ0k2SWpJd01Ua3RNRE10TVRKVU1ESTBORFE1V2lJc0ltbHVZMngxWkdWa1JtbGxiR1J6U1c1UGNtUmxjaUk2SW1SaGRHRldZV3hwWkZWdWRHbHNWR2x0WlhOMFlXMXdmR0ZqWTI5MWJuUk9kVzFpWlhKOFlXTmpiM1Z1ZEVWNGNHbHllU0lzSW5OcFoyNWhkSFZ5WlNJNklraHFUVEYyTkZsS1VtMDJTVnBHWjFkTU9XSXlNa1p6ZUhwT1lYWllLemRtVjBGWGNVaGhiMVZwV2xFNWFtVnRUVEp0ZG1GR1FqZzJTRVJFVWt0d1NEYzFNV1IyUmpCRk1VcGlZMlpoV1RGbFNESkhiM0JRZWtkMGREQmpXRFpRYUVoUE16WTFTM2w1VjFkcFFYTjVkalUyZGs5NmFreGxWelprWkdoSVdHNUJNbk5qVEdORVZUWkZhMmgyYjBwQ2JDdHZlRkJ3T0ZadWFEWk1SbmcxY0U5VmNFMTJaMHh2TlhoS1pFRjRSVUlyY1dveFYxZE5VVzVWWmxaNlF6UnpXWFEzUzNObEsxSm1aMWMzYnpkUUx6VlhTRXRuZVZCV1IwTkRkbEZNZFU5a1QxcE1RU3RxZG5walIyVjROVzVNUkRsMVFrSXlhVTV0T1ROV09YVlNOMEU1VDBGU0wwMTJUbTE2V1hCcFluQjVNWHBvY1UxVGVpODNiSE5USzNSSVRWWk5VRlJYV1ZJMVRXNW1VVEIzZEcxWlFrNHJTaTl5Y2k5M1QyZDZaMnByZGpkV1ZEUnZNbVE0UkRodWVXcElWVmxGV0VkT1p6MDlJbjA9In0=",
  • "card_id": "A655616801003923",
  • "pan_last_four": "2077",
  • "cardholder_name": "WINDSOR CROSSING /GC",
  • "program_name": "Windsor Crossing Premium Outlets",
  • "payment_network": "MasterCard"
}

Samsung Pay

Available

This API is used to perform in-app provisioning in mobile applications for Samsung Pay.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

Responses

Response samples

Content type
application/json
{
  • "issuer_payload": "eyJmdW5kaW5nQWNjb3VudEluZm8iOnsiZW5jcnlwdGVkUGF5bG9hZCI6IjdCMjI3MDc1NjI2QzY5NjM0QjY1Nzk0NjY5NkU2NzY1NzI3MDcyNjk2RTc0MjIzQTIyMzQzNjY0Mzk2MjY1MzM2NDM3MzkzMjMyMzIzNjY0MzIzMzMxNjY2NDM4MzA2NTM2NjUzNjM2MzYzMDM0MzI2MTYzNjE2MjM0NjU2MzM3NjIyMjJDMjI2NTZFNjM3Mjc5NzA3NDY1NjQ0QjY1NzkyMjNBMjI0MjMzNDE0MjQzNDYzNTM4NDMzNjQ1NDI0MjM1NDI0MTQxNDMzNjQ2NDEzNTQzNDE0NTMzMzE0NjMwMzIzOTMxMzQzMDM5NDYzMTQzMzk0NjQ2MzczNDQ0NDIzMTQ1NDY0NDM2MzEzMTQyMzA0MzQ1MzgzNTQxMzc0NDM2MzkzNDM2MzIzMjQ2MzkzNDQxMzQzMzQyMzI0MzM2NDE0NDQzMzM0NTM2NDEzODQxNDMzMTQ0Mzc0MjM5MzE0NjQzMzIzNTQyMzIzNDM1MzY0NDM1MzgzNTQ0NDYzMDM0Mzc0NjM4MzkzMTQxNDUzMDM0NDEzODM4NDYzODM3MzczNjM0MzU0NTM1MzIzNDQ2MzgzNjQ1MzgzODMzMzYzNjQ0NDE0MTM0MzEzNDMwMzEzMjM3Mzc0MjQxMzU0NDM5NDUzOTM2NDU0NDQxMzkzODM2MzQzNTQzNDE0MzMzMzIzMzQ1NDE0MTM1MzIzNTQ0MzgzNzQzNDMzNjM0NDQzNTMyMzAzMTM5NDUzMDM0MzkzODQzMzk0MjQ2NDMzNDQxMzYzMDQ2Mzk0NjMwMzY0NjMyMzEzNzM2MzY0NjQ1MzQ0NjM3MzE0MjQzMzMzNzMzNDE0NjMzMzY0NTM5MzUzOTQxMzMzMjM3MzYzNzQ2MzEzMjM4Mzc0NTM4Mzk0NDM4MzEzNDQxMzAzOTM4MzgzMDMwMzczMTQ0NDQ0NTM2MzMzODQ2MzE0MTMwMzIzMzM0NDYzNDMyNDUzMjMyMzEzMTM2NDYzNjQ2NDM0MjM1NDUzNTM4MzA0NjM2MzQzMjQ0MzIzNTMyMzA0NjM2NDIzMDM0MzMzMzQzMzQzODMyMzQzNTMyNDUzNzM2MzYzMzMzMzA0MjQxNDQ0MjQ1MzQzNTQ1MzkzNDQyMzQzMjMwMzQ0NjM4MzYzMzMwMzczMTMxMzUzMDM1NDIzNzQxNDYzMTMyNDMzNjQ2Mzk0MzQ1NDUzNzM0NDM0MzMwMzEzMDMzMzEzOTM3NDE0MTM0NDYzMjM1Mzc0NTMzMzk0MjM0NDU0MzMzMzQzMDQzNDM0NTQzMzg0MjQxMzIzMjM2NDQzMzM4NDM0NTMwMzQzNzMwMzE0NTMwMzkzNDM5Mzk0MjM1NDM0MTQxMzMzMTQ2NDI0MTM4NDM0MjM2MzYzMTM0NDMzMTMwNDMzMjMyMzMzMTM0MzAzMDM2MzczNjM0MzkzMTMyMzczODM3MzgzNDMzMzMzMDMxNDUzNzMxMzkzNTMzNDI0MzQ2MzU0NjM1NDQzNjMxMzUzNDM4MzIzOTQ0MzMzNjM4NDMzNzQ0MzMzMzQ0MzkzMTQzMzg0MjMxMzE0NjM0NDU0NTM5MzU0MzM2NDEzMzQ0MjIyQzIyNkY2MTY1NzA0ODYxNzM2ODY5NkU2NzQxNkM2NzZGNzI2OTc0Njg2RDIyM0EyMjUzNDg0MTMyMzUzNjIyMkMyMjY5NzYyMjNBMjIzNDQ2MzEzMjQxMzg0NDM2MzYzNDM3MzUzMzQ1MzkzNzMyMzE0MzQ0MzQ0MzQyNDQzMTQ0Mzg0NTQ1MzI0NDMwMjIyQzIyNjU2RTYzNzI3OTcwNzQ2NTY0NDQ2MTc0NjEyMjNBMjI0NDQzMzM0NjM4NDEzOTM0MzQzNjQyNDE0MzQzNDYzMDM4NDQzMjQ2MzI0NjQxMzEzNzMyMzEzNzM1NDQzMjM0NDY0MTQzNDEzNDM5MzMzODMxMzk0MTMwMzYzNTM0MzkzMDMxMzgzNzQ1NDMzNDM3MzI0NDQ0NDM0NjM3MzE0MTM5MzAzNTM3NDI0MzM2Mzc0MjMzNDMzNjQ1MzEzNTM4NDM0NTM1MzIzODMwMzk0MjQ2NDMzMzM4NDIzODQzNDI0NDQxNDYzMDM1MzA0NTQzMzgzODQ1MzMzNzM5NDU0MTMyMzM0NjQyNDIzNDM1MzY0NTM4NDUzODMxNDQzOTMzNDQzMzQ2NDI0MzM5NDIzODM5MzgzMTMyNDQ0NjQ0MzQzOTM0NDYzNDQ1NDMzNjQzMzEzOTMwNDUzMTM4NDMzNTM1NDEzNzM0NDIzNDMyMzc0NDM1Mzk0NjM2MzgzODQ2NDYzNDMxNDQzMDM4MzQzNTMzMzk0NTM3NDMzNzM5MzgzMDQ1NDM0MTM0NDM0MzQyNDIzMTMzMzU0NDM5NDQzOTQxMzQzODQ2MzYzNjMzMzMzMTQyMzI0NDM4Mzg0NTMwNDEzNTQyMzEzMTQ1MzI0MTQ2NDMzNDMyNDU0MjM4MzE0MzM3MzA0NjQxNDI0MzM4NDEzMjMxMzA0NjMwMzYzNTQyNDY0NDMzMzY0MTMyMzEzMDMzNDQzODM2NDIzNTQ0NDEzNDMwMzIzNzM1NDY0MzM1MzI0NjM1MzczMTQyMzMzMzQ2NDU0MzMzMzUzMzQ2MzUzODQ0MzQ0MzQyMzk0NDQ0MzQzMDM2MzM0NjQ1NDI0MzQyMzMzOTQzMzc0NjQ2MzAzOTMwMzkzOTQ0MzgzMzQ0NDQzMTM0NDUzNDQxNDUzMjQ1MzkzODM2MzEzODM3NDYzNTMxMzkzNzMzMzU0MjQ0NDUzMDQyMzI0NjMzMzUzMDMxNDU0NjMzMzQzNTQ0MzYzNjM5MzE0NDQ0MzE0MzM3MzM0NTQ2MzIzMjQ2NDIzNzMzMzMzODQxMzEzNDM5NDU0NDM2Mzc0NjQ0MzQzOTQyMzQzMjM5MzIzODQ1NDU0MTQ2MzQ0NTQ2NDMzMTQyNDUzOTQxNDMzMTM4Mzc0NDM3Mzg0MzM2NDE0NjMyNDEzMDQ2MzIzOTQzMzczMjMzNDQzOTMzMzMzNjQ0NDQzMjQ0Mzk0MTQzMzM0MzQ2MzM0MzM4NDI0NjMwMzI0MTM0MzIzNTQyMzEzMTQ0NDIzMjM3NDUzOTQzNDEzMzQ0NDYyMjdEIn0sInRva2VuaXphdGlvbkF1dGhlbnRpY2F0aW9uVmFsdWUiOiJleUoyWlhKemFXOXVJam9pTXlJc0luTnBaMjVoZEhWeVpVRnNaMjl5YVhSb2JTSTZJbEpUUVMxVFNFRXlOVFlpTENKa1lYUmhWbUZzYVdSVmJuUnBiRlJwYldWemRHRnRjQ0k2SWpJd01Ua3RNRE10TVRKVU1ESTBPVFUwV2lJc0ltbHVZMngxWkdWa1JtbGxiR1J6U1c1UGNtUmxjaUk2SW1SaGRHRldZV3hwWkZWdWRHbHNWR2x0WlhOMFlXMXdmR0ZqWTI5MWJuUk9kVzFpWlhKOFlXTmpiM1Z1ZEVWNGNHbHllU0lzSW5OcFoyNWhkSFZ5WlNJNklsUldOWEp6YVRCRVNFcERkelJ5ZFVGemJXdGFia0Z2VTJSaFQzbFhkbk5aTDI1NllqVTFlbnA1YWsxc2VVOHpPRWxoU2sxcE9XeE1SRlIyT1N0S05FOTFhRzFDSzJ0WVRHcGtaMmhsZVhaRVMwUTVOWHBWT0VkWFlWUjVjblp5UzNKbmJFbzJSRzh6U0ZCQ2JrUk1jR05NU0M5d01UWmFTazgzUldaYVkzRm1ZM2xFTnpOTE0wRjVZak5OUmpGa1UxTlljVEJHZWpGaE9Ib3JRaXRyVjBwT2VIRmpkemhoYmxSMmQzSlRjV3A1WkdKdVMyRkhhek13TVdFMlIwUjJNaXR5V0c4d05rSnZjemh0TTFoWVZHWnRRVVI0V1U1TE5ISnJjMnBOYUdaemJHOWtNM1ZSYzNvelVrWk1jRmxxSzJ4SGEwOHJXV3AxZFZZNWVtTlVjM0pJT0hFeVV6bHpUVVJ0ZVVaUlpuSndWbm8yZUhReWQwRlhUalZGVmxkbFZuVmFObEJvZWpKb2RGbG5UbEJxYVhGSWFFbHZURFJDVjJKNmNuUkpjVFJCZG1GT1JVMUJPRWczWTFSNE4ydElObUpUYlRKQlp6MDlJbjA9In0=",
  • "card_id": "A655616801003923",
  • "pan_last_four": "2077",
  • "cardholder_name": "WINDSOR CROSSING /GC",
  • "program_name": "Windsor Crossing Premium Outlets",
  • "payment_network": "MasterCard"
}

Web Provisioning

Supported Web Provisioning Wallets

Available

This API is used to perform web provisioning in web applications for supported wallets. The response includes a list of supported wallet names.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

Responses

Response samples

Content type
application/json
{
  • "supported_wallets": [
    ]
}

Apple Pay JWS

Available

This API is used by the Apple Pay web provisioning process. When the user clicks the Add to Apple Wallet button on the Issuer webpage, the JavaScript library calls the then() method of the Promise object. The call must resolve to a Token object. This API generates and returns the token object. The object is fully composed and base64 encoded. Consumers will need to decode the value and use it with Apple's JS library.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

client_language
string
Example: client_language=en-US

A language tag as described by IETF RFC 5646, for example, en-US.

Responses

Response samples

Content type
application/json
{
  • "jws_payload_base64": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}

Apple Pay Complete

Available

This API is used by the Apple Pay web provisioning process. As a part of the Web Provisioning confirmation experience, the Issuer receives a result object in the resultResolver. The state property of the result object should be sent to this API to mark the provisioning process as completed.

Authorizations:
BasicAuth
path Parameters
state
required
string

The state property obtained during the Web Provisioning confirmation.

Responses

Google Pay

Available

This API is used to perform web provisioning in web applications for Google Pay, returning the paymentCredentials object required to provision a card into Google Pay.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

Request Body schema: application/json

Details required to perform web provisioning in web applications for Google Pay.

server_session_id
required
string

The session identifier provided by Google.

client_device_id
required
string

The identifier for the client device initiating the request, provided by Google.

client_wallet_account_id
required
string

The wallet account ID of the client, provided by Google.

include_token_credentials
required
boolean

A flag indicating whether to include tokenization credentials (to tokenize the card into the user's Google wallet) in the response.

include_card_credentials
required
boolean

A flag indicating whether to include card credentials (to add the PAN and details to the user's Google account) in the response.

Responses

Request samples

Content type
application/json
{
  • "server_session_id": "1a8c8317-2113-49a9-beb9-aaccecf245b4",
  • "client_device_id": "6zQQYPbV34jfUSGFIO74bOmf",
  • "client_wallet_account_id": "4Jdc0nd7iK1vDE45hzFD4GIV"
}

Response samples

Content type
application/json
{
  • "payment_credentials_payload_base64": "eyJwYXltZW50Q3JlZGVudGlhbHMiOiB7IC4uLiB9"
}

Mobile Wallets & Tokens

Activate Token

Available

The Activate Token API can be used to manually complete tokenization of a card.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

token_id
required
string

The external token reference.

query Parameters
search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

Request Body schema: application/json

Details required to activate a token.

reason
required
string
Enum: "Authenticated" "CustomerServiceAuthenticated"

The reason for activating a token. Please refer the following table for the reason decsriptions

Reason Description
Authenticated The cardholder was already successfully verified prior to activation.
CustomerServiceAuthenticated The cardholder was already successfully verified by a customer service agent prior to activation.
comment
string

An optional comment describing the activation.

Responses

Request samples

Content type
application/json
{
  • "reason": "Authenticated",
  • "comment": "test comment"
}

Response samples

Content type
application/json
{
  • "code": 400,
  • "message": "The provided reason was not a valid value."
}

Delete Token

Available

The Delete Token API can be used to remove an existing token.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

token_id
required
string

The external token reference.

query Parameters
search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

Request Body schema: application/json

Details required to delete a token.

reason
required
string
Enum: "DeviceLost" "DeviceStolen" "Fraud" "AccountClosed" "Other"

The reason for deleting a token. Please refer the following table for the reason decsriptions.

Reason Description
DeviceLost The cardholder confirmed that their device was lost.
DeviceStolen The cardholder confirmed that their device was stolen.
Fraud The issuer or cardholder confirmed that a token was used for fraudulent transactions.
AccountClosed The cardholder's account has been closed.
Other The token is being deleted for some other reason.
comment
string

An optional comment describing the activation.

Responses

Request samples

Content type
application/json
{
  • "reason": "DeviceLost",
  • "comment": "test comment"
}

Response samples

Content type
application/json
{
  • "code": 400,
  • "message": "The provided reason was not a valid value."
}

Get Token Activation Methods

Available

The Get Token Activation Methods API retrieves the methods that can be used to verify a cardholder during tokenization. Usually these are a means to communicate with a customer for confirmation that they are the cardholder.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

token_id
required
string

The external token reference.

query Parameters
search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

Responses

Response samples

Content type
application/json
{
  • "activation_methods": [
    ]
}

Get Token Transactions

Available

The Get Token Transactions API retrieves the last 30 days of transactions for a token.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

token_id
required
string

The external token reference.

query Parameters
search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

Responses

Response samples

Content type
application/json
{
  • "tokens": [
    ]
}

Get Tokens

Available

The Get Tokens API retrieves tokens that have been created for a card. A token is a unique identifier corresponding to a digital PAN (DPAN) that has been provisioned as an alternate to the PAN of the card, typically onto the cardholder's mobile device. This endpoint retrieves all of the associated tokens that have been created for a given card/PAN.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

Responses

Response samples

Content type
application/json
{
  • "tokens": [
    ]
}

Resend Activation Code

Available

The Resend Activation Code API can be used to trigger retransmission of a verification code to the cardholder so that tokenization may be completed.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

token_id
required
string

The external token reference.

query Parameters
search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

Request Body schema: application/json

Details required to resend activation code.

activation_method
required
string

The method that should be used to resend the activation code. This should be one of the methods returned from the Get Token Activation Methods API.

Responses

Request samples

Content type
application/json
{
  • "activation_method": "SMS"
}

Response samples

Content type
application/json
{
  • "code": 400,
  • "message": "The token either had no activation methods or the requested activation method was not valid."
}

Suspend Token

Available

The Suspend Token API can be used to suspend an existing token.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

token_id
required
string

The external token reference.

query Parameters
search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

Request Body schema: application/json

Details required to suspend a token.

reason
required
string
Enum: "DeviceLost" "DeviceStolen" "Fraud" "Other"

The reason for suspending a token. Please refer the following table for the reason decsriptions

Reason Description
DeviceLost The cardholder reported that their device was lost.
DeviceStolen The cardholder reported that their device was stolen.
Fraud The issuer or cardholder reported that a token was used for fraudulent transactions.
Other The token is being suspended for some other reason.
comment
string

An optional comment describing the activation.

Responses

Request samples

Content type
application/json
{
  • "reason": "DeviceStolen",
  • "comment": "test comment"
}

Response samples

Content type
application/json
{
  • "code": 400,
  • "message": "The provided reason was not a valid value."
}

Unsuspend Token

Available

The Unsuspend Token API can be used to release a suspension placed on the token. This action does not release suspensions placed by other entities.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

token_id
required
string

The external token reference.

query Parameters
search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

Request Body schema: application/json

Details required to unsuspend a token.

reason
required
string
Enum: "DeviceFound" "NoFraud" "Other"

The reason for unsuspending a token. Please refer the following table for the reason decsriptions

Reason Description
DeviceFound The cardholder reported that their device was recovered.
NoFraud The issuer or cardholder confirmed that a token was not used for fraudulent transactions.
Other The token is being unsuspended for some other reason.
comment
string

An optional comment describing the activation.

Responses

Request samples

Content type
application/json
{
  • "reason": "NoFraud",
  • "comment": "test comment"
}

Response samples

Content type
application/json
{
  • "code": 400,
  • "message": "The provided reason was not a valid value."
}

Moving Funds

Adjust Funds

This API is used to adjust funds on a Card. If the request is valid then a 202-status code will be returned. If the request is invalid a 400-status code will be returned.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

Request Body schema: application/json

Details required to add funds onto an active card

amount
required
number <decimal>

Dollar amount of funds to either add to or remove from the card. Amount can be either negative or positive.

location
required
string

Used to look up the softwareclientinstance and associates it to the systemtransaction.

merchant_group
required
string

This unique identifier is provided by EML.

note
string

A value provided by the client; usually descriptive.

Responses

Request samples

Content type
application/json
{
  • "amount": 5,
  • "location": "test",
  • "merchant_group": "EMLFi987",
  • "note": "Add 5 dollars"
}

Response samples

Content type
application/json
{
  • "status": "Passed",
  • "reason": "Verified",
  • "currency": "USD",
  • "available_balance": 100,
  • "system_transaction_id": 123456789
}

Direct Pay

This API is used to initiate a DirectPay transaction against a card. The DirectPay API is nearly identical to the Unload Card API except for the endpoint uri and system transaction type that is reported upon transaction completion.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
program
required
string

When using the search_parameter of ClientTrackingId; this value will indicate which program the provided card_id belongs to. While other search_parameters are guaranteed to be unique across the system and are assigned by EML Payments; ClientTrackingId is assigned to the card by an integration client and there is no guarantee that it will be unique to the system.

search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

Request Body schema: application/json

Details required for direct pay

amount
required
number <decimal>

Dollar amount of funds to remove from the card

merchant_group
required
string (MerchantGroup) = 10 characters

The Merchant Group Unique Tag associated with the card.

note
required
string

A value provided by the client: usually descriptive

object
client_time
string <unix-epoch>

Local time of the request

Responses

Request samples

Content type
application/json
{
  • "amount": 5,
  • "merchant_group": "EMLFi987",
  • "location": {
    },
  • "note": "Unload 5 dollars"
}

Response samples

Content type
application/json
{
  • "currency": "USD",
  • "available_balance": "113.80",
  • "system_transaction_id": 123456789
}

Refund a Card

This API is used to request a card refund and prevents the card from being used for payments. The card balance will be refunded through separate refund processing.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
program
required
string

When using the search_parameter of ClientTrackingId; this value will indicate which program the provided card_id belongs to. While other search_parameters are guaranteed to be unique across the system and are assigned by EML Payments; ClientTrackingId is assigned to the card by an integration client and there is no guarantee that it will be unique to the system.

search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

Request Body schema: application/json

Details required for refund card

merchant_group
required
string (MerchantGroup) = 10 characters

The Merchant Group Unique Tag associated with the card.

note
required
string

A value provided by the client: usually descriptive

Responses

Request samples

Content type
application/json
{
  • "note": "Refund to customer",
  • "merchant_group": "EMLFi987"
}

Response samples

Content type
application/json
{
  • "code": 400,
  • "message": "The required parameter 'refund' is missing or invalid."
}

Reload a Card

This API is used to add funds onto an active card, provided the amount does not violate the existing regulations.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
program
required
string

When using the search_parameter of ClientTrackingId; this value will indicate which program the provided card_id belongs to. While other search_parameters are guaranteed to be unique across the system and are assigned by EML Payments; ClientTrackingId is assigned to the card by an integration client and there is no guarantee that it will be unique to the system.

search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

Request Body schema: application/json

Details required to add funds onto an active card

amount
required
number <decimal>

Dollar amount of funds to remove from the card

merchant_group
required
string (MerchantGroup) = 10 characters

The Merchant Group Unique Tag associated with the card.

object
client_time
string <unix-epoch>

Local time of the request

note
string

A value provided by the client: usually descriptive.

reconciliation_ID
string <= 32 characters

A value provided by the client. Must be 32 characters or less.

load_type
string
Default: "Standard"
Enum: "Standard" "Cash"

This field determines the type of load that we will do.

  • Standard - The same as current functionality. Standard transaction type and limits will be used.
  • Cash - This will create a CashLoad transaction and be subject to CashLoad limits.

Responses

Request samples

Content type
application/json
{
  • "amount": "5.00",
  • "merchant_group": "EMLEUSi362",
  • "location": {
    },
  • "client_time": "string",
  • "note": "Reload 5 dollary-doos",
  • "reconciliation_ID": "string",
  • "load_type": "Cash"
}

Response samples

Content type
application/json
{
  • "currency": "USD",
  • "available_balance": "123.80",
  • "system_transaction_id": 123456789,
  • "adjusted_balance": "123.80",
  • "Itempotency-Key": "123456789",
  • "X-Eml-Duplicate": true
}

Reverse Card Refund

This API is used to reverse a previously posted card refund, provided the refund has not been processed. A refund reversal restores the card to a state where redemptions may occur for the remaining card balance.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
program
required
string

When using the search_parameter of ClientTrackingId; this value will indicate which program the provided card_id belongs to. While other search_parameters are guaranteed to be unique across the system and are assigned by EML Payments; ClientTrackingId is assigned to the card by an integration client and there is no guarantee that it will be unique to the system.

search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

Request Body schema: application/json

Details required for reverse card refund

merchant_group
required
string (MerchantGroup) = 10 characters

The Merchant Group Unique Tag associated with the card.

note
required
string

A value provided by the client: usually descriptive

Responses

Request samples

Content type
application/json
{
  • "note": "Reverse the refund request",
  • "merchant_group": "EMLFi987"
}

Response samples

Content type
application/json
{
  • "code": 400,
  • "message": "The required parameter 'merchant_group' is missing or invalid."
}

Unload Card Funds

This API is used to unload, or remove, funds from a card.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
program
required
string

When using the search_parameter of ClientTrackingId; this value will indicate which program the provided card_id belongs to. While other search_parameters are guaranteed to be unique across the system and are assigned by EML Payments; ClientTrackingId is assigned to the card by an integration client and there is no guarantee that it will be unique to the system.

search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

Request Body schema: application/json

Details about unload, or remove funds from a card

amount
required
number <decimal>

Dollar amount of funds to remove from the card

merchant_group
required
string (MerchantGroup) = 10 characters

The Merchant Group Unique Tag associated with the card.

note
required
string

A value provided by the client: usually descriptive

load_type
string
Default: "Standard"
Enum: "Standard" "Cash"

This field determines the type of unload that we will do.

  • Standard - The same as current functionality. Standard transaction type and limits will be used.
  • Cash - This will create a CashUnload transaction and be subject to CashUnload limits.
location
any (Location)
client_time
string <unix-epoch>

Local time of the request

reconciliation_ID
string <= 32 characters

A value provided by the client. Must be 32 characters or less.

Responses

Request samples

Content type
application/json
{
  • "amount": "5.00",
  • "merchant_group": "EMLEUSi362",
  • "note": "Unload five buckaroos",
  • "load_type": "Cash",
  • "location": null,
  • "client_time": "string",
  • "reconciliation_ID": "string"
}

Response samples

Content type
application/json
{
  • "currency": "USD",
  • "available_balance": "113.80",
  • "system_transaction_id": 123456789,
  • "Itempotency-Key": "123456789",
  • "X-Eml-Duplicate": true
}

Notifications

3DS Enrollment Added Webhook

A message published when a card is enrolled in 3DS.

Authorizations:
BasicAuth
Request Body schema: application/json
type
required
string

The webhook message type.

Value: "3dsEnrollmentAdded"
timestamp
required
string <date-time>

The date and time in ISO 8601 standard format at which the card was enrolled.

correlationId
required
string

An identifier that may be used to query webhook messages. In this case, it is the same as 'cardholderId'.

programTag
required
string

The unique tag of the program associated with the enrolled card.

merchantGroupTag
string

The unique tag of the activating merchant group associated with the enrolled card.

cardholderId
required
string

A value that uniquely identifies the registered cardholder for the enrolled card.

languages
required
Array of strings

The enrollment languages.

phoneNumbers
required
Array of strings

The enrollment phone numbers.

challengeMethods
required
Array of strings

The enrollment challenge methods.

externalId
required
string

A value that uniquely identifies the enrolled card.

clientTrackingId
string

A client provided identifier that uniquely identifies a card within a program.

carrierNumber
string

The enrolled card's carrier number.

bankId
required
string

The enrolled card's bank identification number.

Request samples

Content type
application/json
{
  • "type": "3dsEnrollmentAdded",
  • "timestamp": "2021-07-09T17:22:00+00:00",
  • "correlationId": "3865956",
  • "programTag": "prog012",
  • "merchantGroupTag": "mg034",
  • "cardholderId": "3865956",
  • "languages": [
    ],
  • "phoneNumbers": [
    ],
  • "challengeMethods": [
    ],
  • "externalId": "ZZ9DH4STVMX6XWMR",
  • "clientTrackingId": "CTID-Testing-10000",
  • "carrierNumber": "1234567890123456",
  • "bankId": "123456"
}

3DS Enrollment Updated Webhook

A message published when a card's 3DS enrollment is updated.

Authorizations:
BasicAuth
Request Body schema: application/json
type
required
string

The webhook message type.

Value: "3dsEnrollmentUpdated"
timestamp
required
string <date-time>

The date and time in ISO 8601 standard format at which the enrollment was updated.

correlationId
required
string

An identifier that may be used to query webhook messages. In this case, it is the same as 'cardholderId'.

programTag
required
string

The unique tag of the program associated with the enrolled card.

merchantGroupTag
string

The unique tag of the activating merchant group associated with the enrolled card.

cardholderId
required
string

A value that uniquely identifies the registered cardholder for the enrolled card.

languages
required
Array of strings

The updated enrollment languages.

phoneNumbers
required
Array of strings

The updated enrollment phone numbers.

challengeMethods
required
Array of strings

The updated enrollment challenge methods.

externalId
required
string

A value that uniquely identifies the enrolled card.

clientTrackingId
string

A client provided identifier that uniquely identifies a card within a program.

carrierNumber
string

The enrolled card's carrier number.

bankId
required
string

The enrolled card's bank identification number.

Request samples

Content type
application/json
{
  • "type": "3dsEnrollmentUpdated",
  • "timestamp": "2021-07-09T17:30:00+00:00",
  • "correlationId": "3865956",
  • "programTag": "prog012",
  • "merchantGroupTag": "mg034",
  • "cardholderId": "3865956",
  • "languages": [
    ],
  • "phoneNumbers": [
    ],
  • "challengeMethods": [
    ],
  • "externalId": "ZZ9DH4STVMX6XWMR",
  • "clientTrackingId": "CTID-Testing-10000",
  • "carrierNumber": "1234567890123456",
  • "bankId": "123456"
}

3DS Challenge Request Received Webhook

A message published when a card is enrolled in 3DS.

Authorizations:
BasicAuth
Request Body schema: application/json
merchantID
string

Merchant identifier defined by the acquirer

merchantName
string

Name of the merchant

merchantCountry
string

The merchant's country represented as an ISO 3166-1 alpha-3 code

programTag
string

A value assigned by EML that it uses to identify the program commonly referred to as the program unique tag

transactionDate
string <unix-epoch>

The date of the transaction

challengedAt
string <unix-epoch>

The date of the challenge

challengeExpiry
string <unix-epoch>

The time the challenge request expires. If the request is not responded to within the timeframe specified in this field, the challenge is cancelled.

challengeMethod
string
Enum: "PUSH" "SMS"

The challenge method supplied during 3D Secure enrollment.

transactionAmount
number <decimal>

Purchase amount in minor units of currency with all units removed

currencyCode
string

The ISO 4217 alphabetic code associated to currency.

externalID
string

A unique randomly generated alphanumeric identifier for the card

clientTrackingID
string <= 50 characters

A unique value assigned by the client. It is used in reporting to further filter metadata

correlationID
text

A unique identifier assigned to this transaction

Request samples

Content type
application/json
{
  • "merchantID": "string",
  • "merchantName": "string",
  • "merchantCountry": "string",
  • "programTag": "string",
  • "transactionDate": "string",
  • "challengedAt": "string",
  • "challengeExpiry": "string",
  • "challengeMethod": "PUSH",
  • "transactionAmount": 0,
  • "currencyCode": "string",
  • "externalID": "string",
  • "clientTrackingID": "string",
  • "correlationID": null
}

Account Created Webhook

This message will be posted to a configurable URL using configurable Basic Authentication when a user is either successfully created or the user fails to be validated.

Authorizations:
BasicAuth
Request Body schema: application/json
client_tracking_id
string

A value assigned by the client that uniquely identifies the gaming account.

validation_result
string

A message describing any validation problems with the request. This will be present only if the request fails validation.

linked_account_id
string

An id used by EML to identify the account. Only included if the request succeeds.

merchant_group
string

A value used by EML to identify the merchant group that a linked account was associated to upon creation.

pseudo_account_number
string

The pseudo account number associated with this card.

routing_number
string

The routing number associated with this card.

origination_link
string

The tokenized link that is created when an associated white label account is created.

Responses

Request samples

Content type
application/json
{
  • "client_tracking_id": "string",
  • "validation_result": "string",
  • "linked_account_id": "string",
  • "merchant_group": "string",
  • "pseudo_account_number": "string",
  • "routing_number": "string",
  • "origination_link": "string"
}

Card Status Changed Webhook

A message published when a card status is changed to Account Expired/Closed/Locked/Developer Refunded.

Authorizations:
BasicAuth
Request Body schema: application/json
type
string

The webhook message type.

Value: "CardStatusChanged"
system_transaction_id
integer <int64>

The unique identifier associated to the transaction.

transaction_time
string <date-time>

A Date Time when the transaction occurred in ISO 8601 format.

note
string

A client-provided description of the transaction that caused the status change.

Array of objects

Responses

Request samples

Content type
application/json
{
  • "type": "CardStatusChanged",
  • "system_transaction_id": 123456789,
  • "transaction_time": "2018-05-17T15:02:09+06",
  • "note": "test note",
  • "cards": [
    ]
}

Cards Activated Webhook

A message published when a new card is activated.

Authorizations:
BasicAuth
Request Body schema: application/json
required
Array of objects

Request samples

Content type
application/json
{
  • "Transactions": [
    ]
}

Cards Loaded Webhook

A message published when a card is loaded.

Authorizations:
BasicAuth
Request Body schema: application/json
required
Array of objects

Request samples

Content type
application/json
{
  • "Transactions": [
    ]
}

Cardholder Fee Applied Webhook

A message published when a cardholder fee is charged or reversed.

Authorizations:
BasicAuth
Request Body schema: application/json
type
string

The webhook message type.

Value: "CardholderFeeApplied"
system_transaction_id
integer <int64>

The unique identifier associated to the transaction.

transaction_time
string <date-time>

A Date Time when the transaction occurred in ISO 8601 format.

transaction_currency
string = 3 characters

The ISO 4217 currency code of the transaction.

transaction_description
string

The transaction description.

note
string

A client-provided description of the transaction that applied the fee.

program
string = 10 characters

The Program Unique Tag associated with the cards.

eml_id
integer <int64>

Unique ID assigned to tie together all related network transactions.

Array of objects

List of cards with one or more fees applied.

Responses

Request samples

Content type
application/json
{
  • "type": "CardholderFeeApplied",
  • "system_transaction_id": 123456789,
  • "transaction_time": "2018-05-17T15:02:09+06",
  • "transaction_currency": "GBP",
  • "transaction_description": "ATM Balance Inquiry",
  • "note": "test note",
  • "program": "EMLEUIn248",
  • "eml_id": 123456789,
  • "cards": [
    ]
}

Cards Unloaded Webhook

A message published when a card is unloaded.

Authorizations:
BasicAuth
Request Body schema: application/json
required
Array of objects

Request samples

Content type
application/json
{
  • "Transactions": [
    ]
}

Cardholder Contact Information Added Webhook

A message published when a cardholder's contact information is added.

Authorizations:
BasicAuth
Request Body schema: application/json
Any of
type
required
string

The webhook message type.

Value: "CardholderContactAdded"
timestamp
required
string <date-time>

The date and time in ISO 8601 standard format at which the contact was added.

correlationId
required
string

An identifier that may be used to query webhook messages. In this case, it is the same as 'cardholderId'.

programTag
required
string

The unique tag of the program associated with the cardholder's card.

merchantGroupTag
string

The unique tag of the activating merchant group associated with the cardholder's card.

cardholderId
required
string

A value that uniquely identifies the cardholder.

firstName
required
string

The cardholder's first name.

lastName
required
string

The cardholder's last name.

phoneNumber
required
string

The cardholder's phone number.

emailAddress
string <email>

The cardholder's email address.

externalId
required
string

A value that uniquely identifies the cardholder's card.

clientTrackingId
string

A client provided identifier that uniquely identifies a card within a program.

carrierNumber
string

The cardholder card's carrier number.

bankId
required
string

The cardholder card's bank identification number.

Responses

Request samples

Content type
application/json
{
  • "type": "CardholderContactAdded",
  • "timestamp": "2021-07-09T12:00:00+00:00",
  • "correlationId": "3865956",
  • "programTag": "prog012",
  • "merchantGroupTag": "mg034",
  • "cardholderId": "3865956",
  • "firstName": "John",
  • "lastName": "Doe",
  • "phoneNumber": "555-2424",
  • "emailAddress": "john.doe@example.com",
  • "externalId": "ZZ9DH4STVMX6XWMR",
  • "clientTrackingId": "CTID-Testing-10000",
  • "carrierNumber": "1234567890123456",
  • "bankId": "123456"
}

Cardholder Contact Information Updated Webhook

A message published when a cardholder's contact information is modified.

Authorizations:
BasicAuth
Request Body schema: application/json
Any of
type
required
string

The webhook message type.

Value: "CardholderContactUpdated"
timestamp
required
string <date-time>

The date and time in ISO 8601 standard format at which the contact was updated.

correlationId
required
string

An identifier that may be used to query webhook messages. In this case, it is the same as 'cardholderId'.

programTag
required
string

The unique tag of the program associated with the cardholder's card.

merchantGroupTag
string

The unique tag of the activating merchant group associated with the cardholder's card.

cardholderId
required
string

A value that uniquely identifies the cardholder.

firstName
required
string

The cardholder's first name.

lastName
required
string

The cardholder's last name.

phoneNumber
required
string

The cardholder's phone number.

emailAddress
string <email>

The cardholder's email address.

externalId
required
string

A value that uniquely identifies the cardholder's card.

clientTrackingId
string

A client provided identifier that uniquely identifies a card within a program.

carrierNumber
string

The cardholder card's carrier number.

bankId
required
string

The cardholder card's bank identification number.

Responses

Request samples

Content type
application/json
{
  • "type": "CardholderContactUpdated",
  • "timestamp": "2021-07-09T12:05:00+00:00",
  • "correlationId": "3865956",
  • "programTag": "prog012",
  • "merchantGroupTag": "mg034",
  • "cardholderId": "3865956",
  • "firstName": "John",
  • "lastName": "Doe",
  • "phoneNumber": "555-2424",
  • "emailAddress": "john.doe@example.com",
  • "externalId": "ZZ9DH4STVMX6XWMR",
  • "clientTrackingId": "CTID-Testing-10000",
  • "carrierNumber": "1234567890123456",
  • "bankId": "123456"
}

Card IBANs Updated Webhook

A message published when the IBANs associated with a card have changed. To retrieve the latest IBANs assigned to the card after receiving this message, call the Get IBANs API.

Authorizations:
BasicAuth
Request Body schema: application/json
type
required
string

The webhook message type.

Value: "Cards.Ibans.Updated"
timestamp
required
string <date-time>

The date and time in ISO 8601 standard format at which the IBANs were updated.

programTag
required
string

The unique tag of the program associated with the card.

merchantGroupTag
string

The unique tag of the activating merchant group associated with the card.

externalId
required
string

A value that uniquely identifies a card.

clientTrackingId
string

A client provided identifier that uniquely identifies a card within a program.

Responses

Request samples

Content type
application/json
{
  • "type": "Cards.Ibans.Available",
  • "timestamp": "2024-10-01T12:05:00+00:00",
  • "programTag": "prog012",
  • "merchantGroupTag": "mg034",
  • "externalId": "ZZ9DH4STVMX6XWMR",
  • "clientTrackingId": "CTID-Testing-10000"
}

CIP Activation Webhook

This message will be posted to a configurable URL using configurable Basic Authentication when a card is either successfully activated or the user fails to be validated.

Authorizations:
BasicAuth
Request Body schema: application/json
transaction_description
string

The webhook message type.

Value: "CardholderContactAdded"
card_identifier
string <date-time>

The date and time in ISO 8601 standard format at which the contact was added.

success
string

An identifier that may be used to query webhook messages. In this case, it is the same as 'cardholderId'.

error_message
string

The unique tag of the program associated with the cardholder's card.

Responses

Request samples

Content type
application/json
{
  • "transaction_description": "CardholderContactAdded",
  • "card_identifier": "2019-08-24T14:15:22Z",
  • "success": "string",
  • "error_message": "string"
}

Disbursement Account Funded Webhook

A message published when a disbursement account has had funding activity.

Authorizations:
BasicAuth
Request Body schema: application/json
type
string

The webhook message type.

Value: "DisbursementAccounts.Funded"
disbursementAccountId
integer

The id of the disbursement account that had funding activity.

ledgerEntryId
integer

The id of the ledger entry created by the funding activity.

creationDate
string <date-time>

The date and time in ISO 8601 standard format at which a ledger entry was created.

amount
number <decimal>

The amount of the funding activity.

clientTrackingId
string <= 50 characters

The client-provided identifier for the funding activity.

Responses

Request samples

Content type
application/json
{
  • "type": "DisbursementAccounts.Funded",
  • "disbursementAccountId": 0,
  • "ledgerEntryId": 0,
  • "creationDate": "2019-08-24T14:15:22Z",
  • "amount": 0,
  • "clientTrackingId": "string"
}

Money Transferred Webhook

This message will be posted to a configurable URL using configurable Basic Authentication when a user transfers money from their EML account to their partner gaming account.

Authorizations:
BasicAuth
Request Body schema: application/json
client_tracking_id
string

A value assigned by the client that uniquely identifies the gaming account.

amount
string <decimal>

The amount that is to be transferred into the gaming account.

transaction_id
string

A unique identifier that can be used to identify this transaction.

merchant_group
string

A value used by EML to identify the merchant group to which funds were transferred.

Responses

Request samples

Content type
application/json
{
  • "client_tracking_id": "string",
  • "amount": "string",
  • "transaction_id": "string",
  • "merchant_group": "string"
}

Partner Challenge Request Webhook

This message will be posted to a configurable URL using configurable Basic Authentication when a challenge request is received.

Authorizations:
BasicAuth
Request Body schema: application/json
merchantID
string

Merchant identifier defined by the acquirer. This data element is provided by the acquirer.

merchantName
string

Name of the merchant. This data element is provided by the acquirer.

merchantCountry
string

The merchant's country represented as a ISO 3166-1 alpha-3 code. This data element is provided by the acquirer.

programTag
string

A value assigned by EML that it uses to identify the program commonly referred to as the program unique tag.

transactionDate
string <date-time>

The date of the transaction. This data element is provided by the acquirer.

challengedAt
string

The date of the challenge. This data element is provided by the acquirer.

challengeExpiry
string

The time the challenge request expires. If the request is not responded to within the timeframe specified in this field; the challenge is

challengeMethod
string

The challenge method supplied during 3D Secure enrollment. Valid values are PUSH; SMS.

transactionAmount
string

Purchase amount in minor units of currency with all units removed. This data element is provided by the acquirer.

currencyCode
string

The ISO 4217 alphabetic code associated to currency. This data element is provided by the acquirer.

externalID
string

A unique; randomly generated alphanumeric identifier for the card.

clientTrackingID
string

A unique value assigned by the client; used in reporting to further filter metadata.

correlationID
string

A unique identifier assigned to this transaction

Responses

Request samples

Content type
application/json
{
  • "merchantID": "string",
  • "merchantName": "string",
  • "merchantCountry": "string",
  • "programTag": "string",
  • "transactionDate": "2019-08-24T14:15:22Z",
  • "challengedAt": "string",
  • "challengeExpiry": "string",
  • "challengeMethod": "string",
  • "transactionAmount": "string",
  • "currencyCode": "string",
  • "externalID": "string",
  • "clientTrackingID": "string",
  • "correlationID": "string"
}

Transaction Authorized Webhook

Transmits details about an authorized transaction.

Authorizations:
BasicAuth
Request Body schema: application/json

Details about an authorized transaction.

required
Array of objects

Responses

Request samples

Content type
application/json
{
  • "Transactions": [
    ]
}

Transaction Settled Webhook

Transmits details about a settled transaction.

Authorizations:
BasicAuth
Request Body schema: application/json

Details about a settled transaction.

required
Array of objects

Responses

Request samples

Content type
application/json
{
  • "Transactions": [
    ]
}

PINs & Security

Change PIN

This API is used to change the PIN associated to a card.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

Request Body schema: application/json
current_pin
required
string

The PIN currently associated to the card.

new_pin
required
string

The PIN to associated to the card

Responses

Request samples

Content type
application/json
{
  • "current_pin": 8239,
  • "new_pin": 2561
}

Get PIN

This API is used to get a 4-digit PIN on PIN-eligible cards.

Authorizations:
BasicAuth
query Parameters
search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

program
required
string

When using the search_parameter of ClientTrackingId; this value will indicate which program the provided card_id belongs to. While other search_parameters are guaranteed to be unique across the system and are assigned by EML Payments; ClientTrackingId is assigned to the card by an integration client and there is no guarantee that it will be unique to the system.

Request Body schema: application/json

Details required to get tax receipt for transfer.

card_id
required
string

The identifier of the card for which the pin is being requested. Which identifier to use is determined by the search_parameter.

security_code
string

The security code from the card.

dob
string

The date of birth for the cardholder in ‘mmddyyyy’ format.

Responses

Request samples

Content type
application/json
{
  • "card_id": 1234567891234567,
  • "security_code": 340759,
  • "dob": 2271975
}

Response samples

Content type
application/json
{
  • "pin": 1256
}

PIN Mailer Request

This API is used to submit a request to mail a PIN to the cardholder.

Authorizations:
BasicAuth
Request Body schema: application/json
client_tracking_id
required
string

The client tracking identifier. This needs to be associated with the program in order to find a valid card that can be placed in the pinmailer queue.

program
required
string

This unique identifier is provided by EML.

data_field1
string

The stock code. This value will be inserted into the encoding file when the pinmailers are processed.

Responses

Request samples

Content type
application/json
{
  • "client_tracking_id": "01-03-135228",
  • "program": "EMLFi123",
  • "data_field1": 1
}

Public Encryption Certificate

Available

Returns a public key used to encrypt sensitive data before sending to EML. Endpoints that require this key will reference back to this endpoint.

Authorizations:
BasicAuth

Responses

Response samples

Content type
application/json
{
  • "certificate": "-----BEGIN CERTIFICATE-----\r\nwDQYJKoZIhvcNAQENgkmPX6DnooVPAHvaXVhPjizA....\r\n-----END CERTIFICATE-----\r\n",
  • "certificate_id": "abc123"
}

Set PIN

This API is used to set a 4-digit PIN on PIN-eligible cards.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

query Parameters
search_parameter
string
Default: "PrintText"
Enum: "ActualCardNumber" "CarrierNumber" "ClientTrackingId" "ExternalId" "PaymentTrackingId" "PrintText"

Indicates the unique value identifier used to identify the card. When not specified; system assumes unique value identifier is PrintText.

Request Body schema: application/json
new_pin
required
string

The value of the new pin to be set on the card.

Responses

Request samples

Content type
application/json
{
  • "new_pin": 2561
}

Verify PIN

Available

Requires a user has the GetPIN permission.

Verifies an encrypted ISO 9564 Format 0 PIN Block for a given card.

The PIN block is created by the client and then encrypted using AES and a 256-bit key and initialization vector that are also provided by the client. The key should then be encrypted using the EML public key. That value, along with the initialization vector and the EML provided ID of the public key should be packaged into the request.

The EML public key is obtained using the Public encryption certificate endpoint. This service should be called each time a PIN verification is needed, rather than storing the key and ID for reuse. If the EML key is replaced, only the current key and the key immediately preceeding it are allowed. Older keys cannot be used.

Authorizations:
BasicAuth
path Parameters
id
required
string

Card ID

Request Body schema: application/json
certificate_id
required
string

The id of the certificate that was used to encrypt the key. This value is provided by EML along with a public key.

encrypted_pin_block
required
string <base64>

The ISO 9564 Format 0 PIN block. This value must be encrypted using the client provided key and initialization vector.

encrypted_key
required
string <base64>

The key used to encrypt the PIN block. This value is client provided, and must be encrypted using the EML provided public key.

initialization_vector
required
string <base64>

The initialization vector used to encrypt the PIN block. This value is not encrypted.

Responses

Request samples

Content type
application/json
{
  • "certificate_id": "july-12-2021",
  • "encrypted_key": "WLXO2aNnTytWVPAHvaXVhPjizAs2jq0zRoCYyDJELVhQuK45kOyNhUmk034GbwlyAirmBHRB2WI8WRR...",
  • "encrypted_pin_block": "3TrWXV0u9vtw/C0mNhyKNhQrL1/WXmYPgTwQylUKs=",
  • "initialization_vector": "9hBr6hLExHeb1Vmo1LjDkw=="
}

Response samples

Content type
application/json
{
  • "code": 400,
  • "message": "Bad request"
}

Program Information

Merchant Group Details

This API is used to look up single Merchant Group's details. This endpoint requires the ManagePrograms permission.

Authorizations:
BasicAuth
path Parameters
merchantGroupTag
required
string

A 10-character unique identifier used to identify which Merchant Group’s details should be retrieved.

Responses

Response samples

Content type
application/json
{
  • "Id": 317,
  • "Name": "EML Test Merchant Group 123",
  • "Address": {
    }
}

Merchant Groups Lookup

This API is used to look up a listing of Merchant Groups associated to a given Program. It can be optionally filtered by either Merchant Group Name or Merchant Group Unique Tag. If no search term is provided; then a full list of Merchant Groups associated to the Program is returned. This endpoint requires the ManagePrograms permission.

Authorizations:
BasicAuth
query Parameters
searchTerm
string

Optional filter parameter to search for specific Merchant Groups. The filter is applied to either the Merchant Group Name or the Merchant Group unique tag; The filter is a contains; and not a starts with.

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Programs Cardholder Fees

This API is used to look up a listing of a Program’s cardholder fees. It will return an array of cardholder fees that have been set up for a Program. The collection returned can be filtered by optionally providing a list of fee types that the consuming client desires to be returned.

Authorizations:
BasicAuth
path Parameters
programTag
required
string

A 10-character unique identifier used to identify which Program’s details should be retrieved.

query Parameters
feeTypes
string
Enum: "ForeignExchangeFee" "AtmCashWithdrawalFeeDomestic" "PinReIssueFee" "AtmBalanceInquiryFeeDomestic" "AtmDeclineFeeDomestic" "AtmCashWithdrawalFeeForeign" "AtmBalanceInquiryFeeForeig" "AtmDeclineFeeForeign" "ForeignExchangeFeeAdjustment" "PosTransactionFee" "CardHolderFeeReversal" "ExtendAccountExpirationFeeFixed" "ExtendAccountExpirationFeePercent" "CardMediumTransferFee"

Optional value used to filter the fees being returned.

Responses

Response samples

Content type
application/json
{
  • "program": "EMLFi123",
  • "program_fees": [
    ]
}

Programs Details

This API is used to look up a single Program’s details. This endpoint requires the ManagePrograms permission.

Authorizations:
BasicAuth
path Parameters
programTag
string

A 10-character unique identifier used to identify which Program’s details should be retrieved.

Responses

Response samples

Content type
application/json
{
  • "Id": 1,
  • "DeveloperId": 1,
  • "Name": "EML Test Program 123",
  • "LaunchDate": "/Date(1387432800000-0600)/",
  • "UseRandomAuthId": false,
  • "InternalFlag": false,
  • "AVSHandlingMethod": "NotSupported",
  • "DisplayFeeBasedSignageMessage": true,
  • "UniqueTag": "EMLFi123",
  • "RegisterFlag": true,
  • "GeographicUsageRestrictionFlag": false,
  • "SupportsPOSActivation": false,
  • "ReportDerecognition": false,
  • "PlasticExpirationDurationMonths": 6,
  • "SupportsVirtualCards": true,
  • "SupportsCardReload": true,
  • "AutoRegisterDuringBulkActivation": false,
  • "FundingLimitLevelType": "Program",
  • "RequiresManualApprovalForBulkFiles": false,
  • "ReloadWithoutRegistration": false,
  • "RequiresManualActivation": false,
  • "AutomaticallyApproveBatchFiles": false,
  • "AutomaticallyLockBatch": false,
  • "SupportsExpirationDateValidation": false,
  • "AllowCardNumberRandomization": false,
  • "RequiresCip": false,
  • "AutoSubmitEncodingFiles": false,
  • "AutomaticallyApproveReplacementFiles": false,
  • "RestrictRedemptionToActivationAmount": false,
  • "AllowRecurringPayment": false,
  • "SendPinLockNotification": false,
  • "SuppressBalance": false,
  • "RestrictAccountNumberEntryModeToRegistration": false,
  • "SupportsTransactionEvents": true,
  • "EmlSubsidiary": "EML US",
  • "SupportsAutomaticBillingUpdates": false,
  • "SupportsTokenization": false,
  • "ThreeDsEnabled": false,
  • "NetSuiteClass": "Reloadable",
  • "SupportsPeriodicStatements": true,
  • "Supports3PDActivationLock": false,
  • "CheckCardMerchantGroupWhitelist": false,
  • "SupportsBalanceInquiryTransactions": true
}

Programs Funding Limits

This API is used to look up a listing of a Program’s configured funding limits. It will return an array of funding limits, and their associated limits amounts. The collection returned can be optionally filtered to return specific funding limit types by providing the desired funding limit type in the optional querystring parameter.

Authorizations:
BasicAuth
path Parameters
programTag
required
string

A 10-character unique identifier used to identify which Program’s details should be retrieved.

query Parameters
fundingLimitTypes
string
Enum: "TotalBalance" "MaxIssueAmount" "MinIssueAmount" "MaxPerReloadAmount" "DailyMaxReloadAmount" "DailyMaxReloadCount" "DailyMaxRedemptionAmount" "AccessToFundsLoadAmount" "AccessToFundsRedemptionAmount" "DailyCardHolderActivationAmount" "DailyMaxCashBackAmount" "TransactionMinCashBackAmount" "TransactionMaxCashBackAmount" "DailyMaxNumberOfCashBackTransactions" "MonthlyMaxRedemptionAmount" "YearlyMaxRedemptionAmount" "TransactionMaxRedemptionAmount" "MonthlyMaxFundCount" "MonthlyMaxFundAmount" "YearlyMaxFundAmount"

Optional value used to filter the fees being returned.

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    }
]

Programs Lookup

This API is used to look up a listing of Programs. It can be optionally filtered by either Program Name or Program Unique Tag. If no search term is provided; then a full list of Programs is returned. This endpoint requires the ManagePrograms permission.

Authorizations:
BasicAuth
query Parameters
searchTerm
string

Optional filter parameter to search for specific Programs. The filter is applied to either the Program Name or the Program unique tag; The filter is a contains; and not a starts with.

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Program Merchant Group Default Disbursement Account

This API is used to look up a default disbursement account configured for either a Program or a Program Merchant Group. It will return an object containing disbursement account information. The endpoint takes in a Program Unique Tag as a mandatory parameter, and a Merchant Group Unique Tag as an optional parameter. If both parameters are provided, the endpoint will return the default disbursement account configured for the Program and Merchant Group. If no account is found, it will fallback and attempt to return the default disbursement account configured for the Program. This endpoint requires the AccessFundsManagement permission.

Authorizations:
BasicAuth
path Parameters
programTag
required
string

A 10-character unique identifier used to identify which Program’s details should be retrieved.

query Parameters
merchantGroupTag
string

Optional Merchant Group Unique Tag value. If provided, the endpoint will first attempt to retrieve the default disbursement account configured for the Merchant Group, and if no account is found, it will then fall back and attempt to retrieve the default disbursement account configured for the Program.

Responses

Response samples

Content type
application/json
{
  • "Id": 1,
  • "References": {
    },
  • "BankAccountId": 1,
  • "BankAccountName": "EMLPooledAccount",
  • "BankAccountIca": "Test ICA",
  • "Description": "Test Disbursement Account",
  • "Enabled": true,
  • "OverdraftLimit": 1000,
  • "Balance": 999897,
  • "AvailableBalance": 999897,
  • "ProgramClaims": [ ],
  • "ReferenceNumber": 1,
  • "IsInternalAccount": false,
  • "Ibans": [
    ]
}

Test Environment

Advices-Reversal

This API is utilized to simulate a reversal advice

Authorizations:
OAuth2
Request Body schema: application/json

Details required to simulate a reversal advice

CardExternalId
string <= 16 characters

The card's external Id

OriginalNetworkTransactionId
string <= 9 characters

Network transaction id (tracking id) from the authorization to be reversed

Responses

Request samples

Content type
application/json
{
  • "CardExternalId": "E987654321012345",
  • "OriginalNetworkTransactionId": "EML999999"
}

Response samples

Content type
application/json
{
  • "NetworkTransactionId": "EML000123",
  • "ResponseCode": "00",
  • "ResponseMessage": "Approved"
}

Advices-Settlement

This API is utilized to simulate a purchase financial transaction, i.e. a purchase and settlement.

Authorizations:
OAuth2
Request Body schema: application/json

Details required to simulate a purchase financial transaction

CardExternalId
string <= 16 characters

The card's external Id

AcquirerId
string <= 11 characters

Identifies the acquiring institution

OriginalNetworkTransactionId
string <= 9 characters

Network transaction id (tracking id) from the authorization to be reversed

object (MerchantProperties)
object (PoSDeviceProperties)
object (TransactionProperties)
object (ReconciliationProperties)

Responses

Request samples

Content type
application/json
{
  • "CardExternalId": "E987654321012345",
  • "AcquirerId": "001234",
  • "OriginalNetworkTransactionId": "EML999999",
  • "Merchant": {
    },
  • "PosDevice": {
    },
  • "TransactionDetail": {
    }
}

Response samples

Content type
application/json
{
  • "NetworkTransactionId": "EML000123",
  • "ResponseCode": "null",
  • "ResponseMessage": "Acknowledgement received"
}

Authorizations-ATM Withdrawal

This API is utilized to simulate an ATM withdrawal

Authorizations:
OAuth2
Request Body schema: application/json

Details required to simulate an ATM withdrawal

CardExternalId
string <= 16 characters

The card's external Id

AcquirerId
string <= 11 characters

Identifies the acquiring institution

object (MerchantProperties)
object (PoSDeviceProperties)
object (TransactionProperties)

Responses

Request samples

Content type
application/json
{
  • "CardExternalId": "E987654321012345",
  • "AcquirerId": "001234",
  • "Merchant": {
    },
  • "PosDevice": {
    },
  • "TransactionDetail": {
    }
}

Response samples

Content type
application/json
{
  • "NetworkTransactionId": "EML000123",
  • "ResponseCode": "00",
  • "ResponseMessage": "Approved",
  • "AuthorizationAmount": 2.03
}

Authorizations-Preauthorization Request

This API is utilized to simulate a preauthorization request

Authorizations:
OAuth2
Request Body schema: application/json

Details required to simulate a preauthorization request

CardExternalId
string <= 16 characters

The card's external Id

AcquirerId
string <= 11 characters

Identifies the acquiring institution

object (MerchantProperties)
object (PoSDeviceProperties)
object (TransactionProperties)

Responses

Request samples

Content type
application/json
{
  • "CardExternalId": "E987654321012345",
  • "AcquirerId": "001234",
  • "Merchant": {
    },
  • "PosDevice": {
    },
  • "TransactionDetail": {
    }
}

Response samples

Content type
application/json
{
  • "NetworkTransactionId": "EML000123",
  • "ResponseCode": "00",
  • "ResponseMessage": "Approved",
  • "AuthorizationAmount": 2.03
}

Authorizations-Purchase Request

This API is utilized to simulate a purchase authorization request

Authorizations:
OAuth2
Request Body schema: application/json

Details required to simulate a purchase authorization request

CardExternalId
string <= 16 characters

The card's external Id

AcquirerId
string <= 11 characters

Identifies the acquiring institution

object (MerchantProperties)
object (PoSDeviceProperties)
object (TransactionProperties)

Responses

Request samples

Content type
application/json
{
  • "CardExternalId": "E987654321012345",
  • "AcquirerId": "001234",
  • "Merchant": {
    },
  • "PosDevice": {
    },
  • "TransactionDetail": {
    }
}

Response samples

Content type
application/json
{
  • "NetworkTransactionId": "EML000123",
  • "ResponseCode": "00",
  • "ResponseMessage": "Approved",
  • "AuthorizationAmount": 2.03
}

Authorizations-Purchase Return

This API is utilized to simulate a purchase return request

Authorizations:
OAuth2
Request Body schema: application/json

Details required to simulate a purchase return request

CardExternalId
string <= 16 characters

The card's external Id

AcquirerId
string <= 11 characters

Identifies the acquiring institution

object (MerchantProperties)
object (PoSDeviceProperties)
object (TransactionProperties)

Responses

Request samples

Content type
application/json
{
  • "CardExternalId": "E987654321012345",
  • "AcquirerId": "001234",
  • "Merchant": {
    },
  • "PosDevice": {
    },
  • "TransactionDetail": {
    }
}

Response samples

Content type
application/json
{
  • "NetworkTransactionId": "EML000123",
  • "ResponseCode": "00",
  • "ResponseMessage": "Approved",
  • "AuthorizationAmount": 2.03
}

Financial Transactions-Purchase

This API is utilized to simulate a purchase financial transaction, i.e. a purchase and settlement.

Authorizations:
OAuth2
Request Body schema: application/json

Details required to simulate a a purchase financial transaction

CardExternalId
string <= 16 characters

The card's external Id

AcquirerId
string <= 11 characters

Identifies the acquiring institution

object (MerchantProperties)
object (PoSDeviceProperties)
object (TransactionProperties)
object (ReconciliationProperties)

Responses

Request samples

Content type
application/json
{
  • "CardExternalId": "E987654321012345",
  • "AcquirerId": "001234",
  • "Merchant": {
    },
  • "PosDevice": {
    },
  • "TransactionDetail": {
    },
  • "ReconciliationDetail": {
    }
}

Response samples

Content type
application/json
{
  • "NetworkTransactionId": "EML000123",
  • "ResponseCode": "00",
  • "ResponseMessage": "Approved",
  • "AuthorizationAmount": 2.03
}

Token API

The Token API is used to generate the bearer token.

Request Body schema: application/json
username
string [ 1 .. 16 ] characters

Provided by EML representative.

password
string [ 5 .. 11 ] characters

Password associated with the username.

client_id
string
Value: "com.storefinancial.isosimulatorreverseproxy"
grant_type
string
Value: "password"

Responses

Request samples

Content type
application/json
{
  • "username": "providedByEml",
  • "password": "myPassword",
  • "client_id": "com.storefinancial.isosimulatorreverseproxy",
  • "grant_type": "password"
}

Response samples

Content type
application/json
{
  • "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1laWQiOiJqbmFpciIsInVuaXF1ZV9uYW1lIjoiam5haXIiLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2FjY2Vzc2NvbnRyb2xzZXJ2aWNlLzIwMTAvMDcvY2xhaW1zL2lkZW50aXR5cHJvdmlkZXIiOiJBU1AuTkVUIElkZW50aXR5IiwiaHR0cHM6Ly9zdG9yZWZpbmFuY2lhbC5uZXQvc2Vzc2lvbklkIjoid2N3a3k1dGJrYm1uYXVsYWRtYmcxYnMxc2wxYnJucDMiLCJodHRwczovL3N0b3JlZmluYW5jaWFsLm5ldC9jb250YWN0SWQiOiIxNTAwMjIiLCJodHRwczovL3N0b3JlZmluYW5jaWFsLm5ldC9wZXJtaXNzaW9uIjpbIklzb1NpbXVsYXRvcl9BdXRob3JpemF0aW9uc19QdXJjaGFzZSIsIklzb1NpbXVsYXRvcl9BdXRob3JpemF0aW9uc19QcmVhdXRob3JpemUiLCJJc29TaW11bGF0b3JfQXV0aG9yaXphdGlvbnNfV2l0aGRyYXciLCJJc29TaW11bGF0b3JfQXV0aG9yaXphdGlvbnNfUHVyY2hhc2VSZXR1cm4iLCJJc29TaW11bGF0b3JfRmluYW5jaWFsVHJhbnNhY3Rpb25zX1B1cmNoYXNlIiwiSXNvU2ltdWxhdG9yX1JldmVyc2Fsc19SZXZlcnNlIiwiSXNvU2ltdWxhdG9yX1NldHRsZW1lbnRzX1NldHRsZSJdLCJpc3MiOiJodHRwczovL3dlYnNlcnZpY2VzLnN0b3JlZmluYW5jaWFsLm5ldC9vYXV0aCIsImF1ZCI6ImNvbS5zdG9yZWZpbmFuY2lhbC5pc29zaW11bGF0b3JyZXZlcnNlcHJveHkiLCJleHAiOjE2MTU5MjI1NzcsIm5iZiI6MTYxNTgzNjE3N30.jDpSHHQPhhGLzDwdp-gjJwox6rHNE6mdes6BMQXvwes",
  • "token_type": "bearer",
  • "expires_in": 86399
}