### Get BIN Info Response Source: https://docs.zeamster.com/developers/api/endpoints/accountvaults This is an example response for the Get BIN Info endpoint, providing details about the card's BIN. ```json { "bininfo": { "issuer_bank_name": "Cartasi S.P.A.", "country_code": "ITA", "detail_card_product": "V", "detail_card_indicator": "X", "fsa_indicator": "", "prepaid_indicator": "", "product_id": "G", "regulator_indicator": "N", "visa_product_sub_type": "", "visa_large_ticket_indicator": "", "account_fund_source": "C", "card_class": "B", "token_ind": "", "issuing_network": null } } X ``` -------------------------------- ### Authentication Header Example Source: https://docs.zeamster.com/developers/quick-start/mobile Provides an example of the authentication header structure required for API requests. ```json { "header": { "protocol": "https", "hostname": "api.sandbox.zeamster.com", "apiEndpoint": "/v2/transactions", "developerId": "**********", "userId": "**********************", "userAPIKey": "*******************", "userHashKey": "*********************", "username": "*********************", "password": "***************", "domain": "******************", "authType": "apikey" } } ``` -------------------------------- ### Install Fortis Payment SDK Source: https://docs.zeamster.com/developers/quick-start/mobile Use this command to install the SDK via npm. Ensure you are using the specified registry. ```bash install fortis-payment-sdk --registry=https://artifact.fortis.tech/repository/npm-group/ ``` -------------------------------- ### SDK Installation Source: https://docs.zeamster.com/developers/quick-start/mobile Install the Fortis Payment SDK using npm. Ensure you are using the specified registry for the correct artifact. ```APIDOC npm install fortis-payment-sdk --registry=https://artifact.fortis.tech/repository/npm-group/ ``` -------------------------------- ### Example Contact Expand Request Source: https://docs.zeamster.com/developers/api/endpoints/transactions Illustrates a GET request to expand the 'contact' related record for transactions. This snippet is useful for retrieving contact information associated with transactions. ```HTTP GET /v2/transactions?expand=contact ``` -------------------------------- ### Example Form URL Source: https://docs.zeamster.com/developers/quick-start/payform-accountform This is an example of a fully constructed URL used to retrieve a form. It includes all necessary parameters for authentication and data transmission. ```url https://api.sandbox.domain.com/v2/payform?developer-id=b1111111&hash-key=c7fbcad5d892de8d16d94545216cb29c0951b8ae4eec35af7e7674cd25454c01f&user-id=11e7e1b2531a187a87647ed8×tamp=1513362490&data=7b227472616e73616374696f6e22... ``` -------------------------------- ### Get BIN Info Response Source: https://docs.zeamster.com/developers/api/accountvaults This is an example response for retrieving BIN (Bank Identification Number) information for an account vault. It includes details about the card issuer, country, and product type. ```json { "bininfo": { "issuer_bank_name": "Cartasi S.P.A.", "country_code": "ITA", "detail_card_product": "V", "detail_card_indicator": "X", "fsa_indicator": "", "prepaid_indicator": "", "product_id": "G", "regulator_indicator": "N", "visa_product_sub_type": "", "visa_large_ticket_indicator": "", "account_fund_source": "C", "card_class": "B", "token_ind": "", "issuing_network": null } } ``` -------------------------------- ### OAuth Authentication Example Source: https://docs.zeamster.com/developers/api/endpoints/authentication This example demonstrates how to use an acquired OAuth token as a bearer token in the Authorization header for API requests. ```APIDOC ## GET /v2/contacts/{{contact_id}} ### Description This endpoint retrieves contact information using an OAuth bearer token for authentication. ### Method GET ### Endpoint https://{{host}}/v2/contacts/{{contact_id}} ### Headers - **developer-id** (string) - Required - Your developer ID. - **Authorization** (string) - Required - Bearer token acquired via OAuth. Format: 'Bearer {{access-token}}' ### Request Example ```javascript var request = require("request"); var options = { method: 'GET', url: 'https://{{host}}/v2/contacts/{{contact_id}}', headers: { 'developer-id': '{{developer_id}}', 'Authorization': 'Bearer {{access-token}}', } }; request(options, function (error, response, body) { if (error) throw new Error(error); console.log(body); }); ``` ### Response #### Success Response (200) - **body** (JSON) - The contact information. #### Response Example ```json { "example": "response body" } ``` ``` -------------------------------- ### ksnpin Encryption Example Source: https://docs.zeamster.com/developers/api/endpoints/transactions Example of data encrypted using the ksnpin format. This format is used when submitting transactions. ```text %*5428********0254^YOU/A GIFT FOR^*******************************?*;5428********0254=********************?*|41110C1670EC146DC3970151CE0BC0385CD59CA04D798B9D325A3638237240B35DA7309EEBF35CC9CAC92AB6B3CC5BBCB542CE2075094542393CA4A7EF1320E094EA5A1A1829D619|208540237170186B1A2E0DC26CFA29B42CEE62DA313C6EFCD11227456599FBBAFAA8C64311B296D8 ``` -------------------------------- ### Pagination Example Source: https://docs.zeamster.com/developers/api/pagination-sorting Demonstrates how to retrieve specific pages of results with a defined number of items per page. ```APIDOC ## GET /v2/accountvaults/ ### Description Retrieves a specific page of account vaults with a specified number of items per page. ### Method GET ### Endpoint /v2/accountvaults/ ### Query Parameters - **page_size** (integer) - Optional - The number of records to include per page. Maximum is 5000. - **page** (integer) - Optional - The current page number to retrieve. ### Request Example #### Example 1: Showing the 3rd page of Account Vaults for a location, showing 10 per page ``` GET /v2/accountvaults/?page_size=10&page=3 ``` #### Example 2: Showing the 5th page of Account Vaults for a location, showing 20 per page ``` GET /v2/accountvaults/?page_size=20&page=5 ``` ### Response #### Success Response (200) - **meta.pagination.totalCount** (integer) - The total number of records available. - **meta.pagination.perPage** (integer) - How many records to include per "page". - **meta.pagination.pageCount** (integer) - Number of Pages needed to display all records based on perPage. - **meta.pagination.currentPage** (integer) - The current page number being returned. - **meta.sort.attributes** (object) - Contains the field used to sort by with the direction as value (e.g., `{"created_ts": "desc"}`). ``` -------------------------------- ### ksn Encryption Example Source: https://docs.zeamster.com/developers/api/endpoints/transactions Example of data encrypted using the ksn format. This format is used when submitting transactions. ```text %*5428********0254^YOU/A GIFT FOR^*******************************?*;5428********0254=********************?*|11B25549D1CCD691EC3061E18D673F06689B6A778B8EA8329B3D54C2AB9D7C13DCBBFA52C32BC677433B9FE645DFFCB75A5436DF46E45552EE60DDB582757C73CE6F20F262DE2B9D|02AEF88E39C7C22FD64D97A76A82DA6E885AA58BCB11218675ECB88D7FA521258A72293D8C752105 ``` -------------------------------- ### Create Contact Postback Config Source: https://docs.zeamster.com/developers/api/endpoints/postbackconfigs Example of a request payload to create a postback configuration for the 'contact' resource. ```json { "postbackconfig": { "attempt_interval": 300, "basic_auth_username": null, "basic_auth_password": null, "expands": "", "format": "api-default", "is_active": "1", "location_id": "11e7a84525008da8960b72e7", "number_of_attempts": 1, "on_create": "1", "on_delete": "1", "on_update": "1", "resource": "contact", "url": "https://127.0.0.1/receiver" } } ``` -------------------------------- ### Expand Related Record Example Source: https://docs.zeamster.com/developers/api/endpoints/tags Example of how to use the 'expand' query parameter to include related records, such as the location, in the API response. ```http GET /v2/tags/xxxxxxxxxxxxxxxxxxxxxxxx?expand=location ``` -------------------------------- ### Combined Pagination and Sorting Example Source: https://docs.zeamster.com/developers/api/pagination-sorting Shows how to combine pagination and sorting parameters in a single request. ```APIDOC ## GET /v2/accountvaults/ ### Description Retrieves a specific page of account vaults, sorted by a field, with a defined number of items per page. ### Method GET ### Endpoint /v2/accountvaults/ ### Query Parameters - **sort** (string) - Optional - The field name to sort by. Prepend with '-' for descending order (e.g., `created_ts` for ascending, `-created_ts` for descending). - **page_size** (integer) - Optional - The number of records to include per page. Maximum is 5000. - **page** (integer) - Optional - The current page number to retrieve. ### Request Example #### Retrieve the 2nd page (10 records per page) of the most recent Account Vaults: ``` GET /v2/accountvaults/?sort=-created_ts&page_size=10&page=2 ``` #### Retrieve the 2nd page (10 records per page) of the oldest Account Vaults: ``` GET /v2/accountvaults/?sort=created_ts&page_size=10&page=2 ``` ### Response #### Success Response (200) - **meta.pagination.totalCount** (integer) - The total number of records available. - **meta.pagination.perPage** (integer) - How many records to include per "page". - **meta.pagination.pageCount** (integer) - Number of Pages needed to display all records based on perPage. - **meta.pagination.currentPage** (integer) - The current page number being returned. - **meta.sort.attributes** (object) - Contains the field used to sort by with the direction as value (e.g., `{"created_ts": "desc"}`). ``` -------------------------------- ### Sorting Example Source: https://docs.zeamster.com/developers/api/pagination-sorting Illustrates how to sort results by a specific field in ascending or descending order. ```APIDOC ## GET /v2/accountvaults/ ### Description Retrieves account vaults sorted by a specified field. ### Method GET ### Endpoint /v2/accountvaults/ ### Query Parameters - **sort** (string) - Optional - The field name to sort by. Prepend with '-' for descending order (e.g., `created_ts` for ascending, `-created_ts` for descending). ### Request Example #### Sort by creation timestamp (ascending) ``` GET /v2/accountvaults/?sort=created_ts ``` #### Sort by creation timestamp (descending) ``` GET /v2/accountvaults/?sort=-created_ts ``` ### Response #### Success Response (200) - **meta.pagination.totalCount** (integer) - The total number of records available. - **meta.pagination.perPage** (integer) - How many records to include per "page". - **meta.pagination.pageCount** (integer) - Number of Pages needed to display all records based on perPage. - **meta.pagination.currentPage** (integer) - The current page number being returned. - **meta.sort.attributes** (object) - Contains the field used to sort by with the direction as value (e.g., `{"created_ts": "desc"}`). ``` -------------------------------- ### Get Files Source: https://docs.zeamster.com/download_file/52/0 Retrieves a list of all files. ```APIDOC ## GET /files ### Description Retrieves a list of all files. ### Method GET ### Endpoint https://{{host}}/{{namespace}}/files ``` -------------------------------- ### Contact Creation Postback Data Source: https://docs.zeamster.com/developers/api/endpoints/postbackconfigs Example of a postback payload for creating a contact resource. ```json { "type":"CREATE", "resource":"contact", "number_of_attempts":1, "data":"{\"id\":\"11e66c8a943ff4b2bf1b2102\",\"location_id\":\"23948sdnfia1129i9asf92\",\"account_number":null,\"contact_api_id\":null,\"company_name\":null,\"first_name\":null,\"last_name\":\"Lue\",\"email\":null,\"address\":null,\"city\":null,\"state\":null,\"zip\":null,\"home_phone\":null,\"cell_phone\":null,\"office_phone\":null,\"office_ext_phone\":null,\"email_trx_receipt\":false,\"created_ts\":1472325312,\"modified_ts\":1472325312,\"date_of_birth\":null,\"header_message\":null,\"header_message_type_id\":0,\"contact_c1\":null,\"contact_c2\":null,\"contact_c3\":null,\"contact_balance\":null}" } ``` -------------------------------- ### Make Authenticated GET Request with OAuth Token Source: https://docs.zeamster.com/developers/api/endpoints/authentication This snippet demonstrates how to make a GET request to retrieve contact information using an OAuth access token. Ensure the 'request' module is installed. The access token should be included in the 'Authorization' header as a Bearer token. ```javascript var request = require("request"); var options = { method: 'GET', url: 'https://{{host}}/v2/contacts/{{contact_id}}', headers: { 'developer-id': '{{developer_id}}', 'Authorization': 'Bearer {{access-token}}', } }; request(options, function (error, response, body) { if (error) throw new Error(error); console.log(body); }); ``` -------------------------------- ### Override HPP Transaction Action Source: https://docs.zeamster.com/developers/quick-start/hosted-payment-page Pass a hidden 'action' field in the data to the HPP to overwrite the default action setup for a product. This example sets the action to 'avsonly'. ```json { "id": "xxxxxxxxxxxxxxxxxxxxxxxx", "field_configuration": { "body": { "fields": [ { "id": "transaction_amount", "value": "0", "label": "Amount", "readonly": true, "visible": false }, { "id": "action", "value": "avsonly", "visible": false } ] } } } ``` -------------------------------- ### Create QuickInvoice with File Attachments (PHP) Source: https://docs.zeamster.com/developers/api/endpoints/quickinvoices Use this PHP example to create a QuickInvoice and attach files using multipart/form-data encoding. It includes fields for title, due date, items, location ID, and file attachments. ```php addForm( [ 'quickinvoice[title]' => ' quickinvoice_123', 'quickinvoice[due_date]' => '{due_date}', 'quickinvoice[location_id]' => '{location_id}', 'quickinvoice[attach_files_to_email]' => '1', 'quickinvoice[item_list][item1]' => '1', 'quickinvoice[item_list][item2]' => '1', 'quickinvoice[send_email]' => '1', 'quickinvoice[email]' => 'test@email.com', 'quickinvoice[tags][0]' => 'Test tag1', 'quickinvoice[tags][1]' => 'Test tag2' ], [ [ 'name' => 'quickinvoice[files][0]', 'type' => null, 'file' => '{source_file_path}', 'data' => null ], [ 'name' => 'quickinvoice[files][1]', 'type' => null, 'file' => '{source_file2_path}', 'data' => null ] ] ); $request->setRequestUrl('https://{domain}/v2/quickinvoices'); $request->setRequestMethod('POST'); $request->setBody($body); $request->setHeaders([ 'Content-Type' => 'multipart/form-data', 'developer-id' => '{developer_id}', 'user-api-key' => '{user_api_key}', 'user-id' => '{user_id}' ]); $client->enqueue($request)->send(); $response = $client->getResponse(); echo $response->getBody(); ``` -------------------------------- ### Encrypted iFrame URL Example Source: https://docs.zeamster.com/developers/quick-start/marketplace Sample iFrame URL using AES-256 encrypted parameters for secure data transmission. The encryption seed is a shared secret provided during application setup. ```url https://yourapp.com/redirection?data=U2FsdGVkX1%2Fj9Je0wTkvYSRUOGvJoFya6GchJVNcIkILOeJsp5wEtvbWqQkcdV%2BvgnmdA%2BvK0EO8UXkakPhzMQk0bAowaYFth%2F6oIJKMOj1u0DUq%2B97nT9e62sO9entYd6UjIqkMlU4Cps%2BuUwaHOWerjvvKC3xbCZNIHVVHiYSRiZlgszF0w72ph5Gd75EyQcY5d2QDvgtgOGRgx1khQzxy8zealC2wbZ0Yp6HVjzwq3%2FUb92sXsJ9FRaxrWzko ``` -------------------------------- ### Implement EMV Card Reader Callbacks Source: https://docs.zeamster.com/developers/quick-start/mobile Implement the ICallbackEMV interface for card reader status messages and logs. Ensure the import statement is included. ```java import com.zeamster.paymentsdk.transaction.ICallbackEMV; @Override public void deviceScanResponse(String deviceId, String deviceName) {    //Add code to hold all the scanned devices. } @Override public void deviceScanCompleted() {    //Add code to hold result once scan complete. } @Override public void deviceConnected(String status) {    //Add code to show the device is connected. } @Override public void deviceDisconnected(String status) {    //Add code to show the current connect device got disconnected  } @Override public void deviceMessage(final String message) {    //Add code to show the device message on app screen. } @Override public void outputLogs(final String log) {     //Add code to show transaction output logs } ``` -------------------------------- ### idtech Encryption Example Source: https://docs.zeamster.com/developers/api/endpoints/transactions Example of data encrypted using the idtech format. This format is used when submitting transactions. ```text 02BD01801F432800039B%*5428********0254^YOU/A GIFT FOR^*******************************?*;5428********0254=********************?*11B25549D1CCD691EC3061E18D673F06689B6A778B8EA8329B3D54C2AB9D7C13DCBBFA52C32BC677433B9FE645DFFCB75A5436DF46E45552EE60DDB582757C73CE6F20F262DE2B9D02AEF88E39C7C22FD64D97A76A82DA6E885AA58BCB11218675ECB88D7FA521258A72293D8C7521054EAA426941F43C98573456204A48E08B40853A0701F062422FE5656423AFA9F3011E17E8101FB9396299490073000420000232B603 ``` -------------------------------- ### Initialize EMVTransaction with Mock Terminal Source: https://docs.zeamster.com/developers/quick-start/mobile Instantiate the EMVTransaction class with DeviceType.MOCK_TERMINAL to enable mock transactions for testing purposes. ```APIDOC ## Initialize EMVTransaction with Mock Terminal ### Description Instantiate the EMVTransaction class with DeviceType.MOCK_TERMINAL to enable mock transactions for testing purposes. ### Code Example ```java emvTransaction = new EMVTransaction(restServiceClient, act, act, DeviceType.MOCK_TERMINAL); ``` ``` -------------------------------- ### Perform EMV Sale with Auth Deferred Enabled Source: https://docs.zeamster.com/developers/quick-start/mobile A full example demonstrating how to perform an EMV sale with auth deferred transactions enabled. This includes setting transaction parameters and calling the PerformEMVSale method. ```swift transactionParamDict = ["action": "sale", "enable_auth_deferred": "true", "payment_method": "cc", "transaction_type": "sale", "location_id": "11ec1234abcd1234abcd1234", "transaction_amount": "9.55" ] emvTransaction.PerformEMVSale(jsonPayload: transactionParamDict) ``` -------------------------------- ### Magnasafe Encryption Example Source: https://docs.zeamster.com/developers/api/endpoints/transactions Example of data encrypted using the Magnasafe format. This format is used when submitting transactions. ```text %*5428********0254^YOU/A GIFT FOR^*******************************?*;5428********0254=********************?*|1|41110C1670EC146DC3970151CE0BC0385CD59CA04D798B9D325A3638237240B35DA7309EEBF35CC9CAC92AB6B3CC5BBCB542CE2075094542393CA4A7EF1320E094EA5A1A1829D619|208540237170186B1A2E0DC26CFA29B42CEE62DA313C6EFCD11227456599FBBAFAA8C64311B296D8|1|1|1|1|1|62994900730004200002 ``` -------------------------------- ### Create User Source: https://docs.zeamster.com/download_file/52/0 Creates a new user within the system. ```APIDOC ## POST /users ### Description Creates a new user within the system. ### Method POST ### Endpoint https://{{host}}/{{namespace}}/users ### Request Body - **user** (object) - Required - The user object containing details for the new user. - **primary_location_id** (string) - Required - The primary location ID for the user. - **domain_id** (string) - Required - The domain ID for the user. - **first_name** (string) - Required - The first name of the user. - **last_name** (string) - Required - The last name of the user. - **email** (string) - Required - The email address of the user. - **username** (string) - Required - The username for the user. - **password** (string) - Required - The password for the user. - **user_type_id** (string) - Required - The ID of the user type. - **account_number** (string) - Required - The account number associated with the user. ### Request Example ```json { "user":{ "primary_location_id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "domain_id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "first_name":"test", "last_name":"dummy", "email":"support@saveme.com", "username":"testdummy1", "password":"Password!987", "user_type_id":"2", "account_number":"12345" } } ``` ``` -------------------------------- ### Get Transaction Batches Source: https://docs.zeamster.com/developers/api/endpoints/transactionbatches Retrieves a list of transaction batches. Consider using `sort=-created_ts` to get the most recent batches first. ```json { "transactionbatches": [ { "id": "11ex83jf7skd04fxxxbd0efc", "batch_num": 3, "product_transaction_id": "11e85xx83gh75js8863c14ea", "created_ts": 1526051483, "processing_status_id": 1, "is_open": 1, "batch_close_ts": null }, { "id": "11e85xx883ng0sdaac9814db", "batch_num": 2, "product_transaction_id": "11e855xx93jf03jd863c14ea", "created_ts": 1526048228, "processing_status_id": 2, "is_open": 0, "batch_close_ts": 1526051458 }, { "id": "11e85xx093jd7gj2b3eff99b", "batch_num": 1, "product_transaction_id": "11e85fhg903jf0aklb8863c14ea", "created_ts": 1526047654, "processing_status_id": 2, "is_open": 0, "batch_close_ts": 1526047665 } ], "meta": { "pagination": { "links": { "self": { "href": "https://api.domain.com/v2/transactionbatches" } }, "totalCount": 3, "pageCount": 1, "currentPage": 0, "perPage": 15 }, "sort": { "attributes": { "created_ts": "desc" } } } } ``` -------------------------------- ### Create Account Vault Postback Config Source: https://docs.zeamster.com/developers/api/endpoints/postbackconfigs Example of a request payload to create a postback configuration for the 'accountvault' resource. ```json { "postbackconfig": { "attempt_interval": 300, "basic_auth_username": null, "basic_auth_password": null, "expands": null, "format": "api-default", "is_active": "1", "location_id": "11ecf7be71106330c00017e9", "product_transaction_id": null, "number_of_attempts": 1, "on_create": "1", "on_delete": "1", "on_update": "1", "resource": "accountvault", "url": "https://test.com" } } ``` -------------------------------- ### Location Response with Expands Source: https://docs.zeamster.com/developers/api/endpoints/locations Example JSON response when using multiple expands, showing nested objects for branding_domain, parent, and developer_company. ```json { "locations": [ { "id": "{location_id}", "name": "Sample Company Location", "...": "// Other Location properties", "branding_domain": { "...": "// Branding domain properties" }, "parent": { "...": "// Parent properties" }, "developer_company": { "...": "// Developer Company properties" } } ] } ``` -------------------------------- ### Retrieve Location with Expands Source: https://docs.zeamster.com/developers/api/endpoints/locations Demonstrates how to fetch location details and include related data such as branding, parent information, and developer company details by using the `expand` query parameter with multiple values. ```APIDOC ## GET /v2/locations/{id}?expand=branding_domain,developer_company,parent ### Description Retrieves a specific location's details, allowing for the inclusion of related resources like branding, developer company, and parent location information. ### Method GET ### Endpoint /v2/locations/{id} ### Parameters #### Query Parameters - **expand** (string) - Optional - A comma-separated list of related resources to include in the response. Supported values include `branding_domain`, `developer_company`, and `parent`. ### Response #### Success Response (200) - **locations** (array) - An array containing the location object(s). - **id** (string) - The unique identifier for the location. - **name** (string) - The name of the location. - **branding_domain** (object) - Details about the location's branding domain. - **parent** (object) - Information about the parent location. - **developer_company** (object) - Details about the developer company associated with the location. ### Response Example ```json { "locations": [ { "id": "{location_id}", "name": "Sample Company Location", "branding_domain": { ... }, "parent": { ... }, "developer_company": { ... } } ] } ``` ``` -------------------------------- ### Get Transaction Batches Source: https://docs.zeamster.com/developers/api/endpoints/transactionbatches Retrieves a list of transaction batches. It is recommended to include `sort=-created_ts` as a query parameter to get the most recent batches first. ```APIDOC ## GET /v2/transactionbatches ### Description Retrieves a list of transaction batches. You can sort the results by creation timestamp in descending order. ### Method GET ### Endpoint /v2/transactionbatches #### Query Parameters - **sort** (string) - Optional - Parameter to sort the results, e.g., `sort=-created_ts` for most recent first. ### Response #### Success Response (200) - **transactionbatches** (array) - A list of transaction batch objects. - **meta** (object) - Metadata about the response, including pagination and sorting information. ### Response Example ```json { "transactionbatches": [ { "id": "11ex83jf7skd04fxxxbd0efc", "batch_num": 3, "product_transaction_id": "11e85xx83gh75js8863c14ea", "created_ts": 1526051483, "processing_status_id": 1, "is_open": 1, "batch_close_ts": null } ], "meta": { "pagination": { "links": { "self": { "href": "https://api.domain.com/v2/transactionbatches" } }, "totalCount": 3, "pageCount": 1, "currentPage": 0, "perPage": 15 }, "sort": { "attributes": { "created_ts": "desc" } } } } ``` ``` -------------------------------- ### Create Postback Config Source: https://docs.zeamster.com/developers/api/endpoints/postbackconfigs Creates a new postback configuration for a specified resource. Supports different resources like Contact, Transaction, Transaction Batch, and Account Vault. ```APIDOC ## POST /v2/postbackconfigs ### Description Creates a new postback configuration. This endpoint allows setting up callbacks for various resource events. ### Method POST ### Endpoint /v2/postbackconfigs ### Request Body - **postbackconfig** (object) - Required - The configuration details for the postback. - **attempt_interval** (integer) - Optional - The interval in seconds between retry attempts. - **basic_auth_username** (string) - Optional - Username for basic authentication. - **basic_auth_password** (string) - Optional - Password for basic authentication. - **expands** (string) - Optional - Comma-separated list of related resources to expand. - **format** (string) - Optional - The format for the postback data (e.g., "api-default"). - **is_active** (string) - Optional - "1" to enable, "0" to disable. - **location_id** (string) - Required - The ID of the location associated with the configuration. - **number_of_attempts** (integer) - Optional - The maximum number of retry attempts. - **on_create** (string) - Optional - "1" to trigger on resource creation, "0" otherwise. - **on_delete** (string) - Optional - "1" to trigger on resource deletion, "0" otherwise. - **on_update** (string) - Optional - "1" to trigger on resource update, "0" otherwise. - **resource** (string) - Required - The resource type for which the postback is configured (e.g., "contact", "transaction"). - **url** (string) - Required - The URL to send the postback request to. - **product_transaction_id** (string) - Optional - Identifier for product transactions. ### Request Example ```json { "postbackconfig": { "attempt_interval": 300, "basic_auth_username": null, "basic_auth_password": null, "expands": "", "format": "api-default", "is_active": "1", "location_id": "11e7a84525008da8960b72e7", "number_of_attempts": 1, "on_create": "1", "on_delete": "1", "on_update": "1", "resource": "contact", "url": "https://127.0.0.1/receiver" } } ``` ### Response (Success response details not provided in source) ``` -------------------------------- ### SSO GET Request with HEX-Encoded Data Source: https://docs.zeamster.com/developers/quick-start/sso Demonstrates how the JSON data is converted to a hexadecimal string and included as a 'data' parameter in an SSO GET request URL. ```HTTP GET /custom/sso?developer-id=xxxxxxxx&data=7b0d0a20202020202020202274696d657374616d70223a203135313039343835 34362c0d0a202020202020202022757365725f6964223a2022313131313131313131313131313131313131313131313131222c0d0a2 02020202020202022757365725f6170695f6b6579223a2022323232323232323232323232323232323232323232323232222c0d0a20 20202020202020226c6f636174696f6e5f6964223a2022787878787878787878787878787878787878787878787878222c0d0a20202 0202020202022726f75746522203a20227669727475616c7465726d696e616c222c0d0a202020202020202022706172616d73223a20 7b0d0a202020202020202020202020227472616e73616374696f6e5f616d6f756e74223a20312e30302c0d0a2020202020202020202 020202262696c6c696e675f61646472657373223a2022313233204d61696e2053747265657422202c0d0a2020202020202020202020 2022726f6f6d5f72617465223a20302e38302c0d0a20202020202020202020202022636865636b696e5f64617465223a22323031372 d31302d3031222c0d0a20202020202020202020202022636865636b6f75745f64617465223a22323031372d31302d3032220d0a2020 2020202020207d0d0a7d ``` -------------------------------- ### Prepare Transaction Parameters for iOS SDK Source: https://docs.zeamster.com/developers/quick-start/mobile Create a dictionary containing all fields required for the POST body of the transaction request. ```swift var transactionParamDict : [String : String]! = [: ] transactionParamDict["param1"]="Value1"; transactionParamDict["param2"]="Value2"; transactionParamDict["param3"]="Value3"; ``` -------------------------------- ### GET Request with Encryption Source: https://docs.zeamster.com/developers/quick-start/sso Use this URL format for GET requests when sending encrypted data via the 'e_data' parameter. The encoded string will be significantly longer than shown. ```url https://{domain}/custom/contactsso?developer-id=xxxxxxx&e_data=BD68908FB617CD45130B… ``` -------------------------------- ### Skip Recurring Payment Source: https://docs.zeamster.com/developers/api/endpoints/recurrings Skips a specified number of upcoming recurring payments without altering the end date. For installment recurrings, the total installment count is reduced. ```APIDOC ## POST /v2/recurrings/{id}/skipPayment ### Description Skips the next specified number of regularly scheduled recurring payment(s). Skipping a payment will not change the recurring end date. For recurrings with an installment count, the number of total installments collected will be reduced with each payment that is skipped. ### Method POST ### Endpoint /v2/recurrings/{id}/skipPayment ### Parameters #### Path Parameters - **id** (string) - Required - The ID of the recurring transaction. #### Query Parameters - **skip_count** (integer) - Required - The number of payments to skip. ``` -------------------------------- ### Initialize RestServiceClient for iOS SDK Source: https://docs.zeamster.com/developers/quick-start/mobile Create an instance of RestServiceClient with your API details. Ensure apiProtocol, apiHostName, and apiEndpointPath are correctly configured. ```swift let restServiceClient = RestServiceClient(apiProtocol:apiProtocol, apiHostName:apiHostName, apiEndpointPath:apiEndpointPath) ``` -------------------------------- ### Create Transaction Batch Postback Config Source: https://docs.zeamster.com/developers/api/endpoints/postbackconfigs Example of a request payload to create a postback configuration for the 'transactionbatch' resource. ```json { "postbackconfig": { "location_id": "111111111111111111", "resource": "transactionbatch", "url": "https://127.0.0.1/v2/public/ping?developer-id=11111", "basic_auth_username": "testuname", "basic_auth_password": "Test@522", "product_transaction_id": "222222222222222222", "expands": "changelogs", "on_create": 1, "on_update": 0, "on_delete": 1, "is_active": 1 } } ``` -------------------------------- ### API Error Response Payload Example Source: https://docs.zeamster.com/developers/api/error-handling This is an example of an error response payload returned by the API when submitted data is invalid. It indicates which fields have errors and provides human-readable messages. ```json { "errors": { "location_id": [ "location_id provided is not valid" ], "product_transaction_id": [ "Product Transaction Id cannot be blank." ] } } ``` -------------------------------- ### Setup Platform-Specific Event Emitter Source: https://docs.zeamster.com/developers/quick-start/mobile Set up listeners to receive responses from the SDK. Use NativeEventEmitter for iOS and DeviceEventEmitter for Android. ```javascript import { DeviceEventEmitter, NativeEventEmitter, Platform } from 'react-native'; import PaymentSDKPlugin from 'fortis-payment-sdk'; const emitter = Platform.OS === 'ios' ? new NativeEventEmitter(PaymentSDKPlugin) : DeviceEventEmitter; emitter.addListener('actionName', (event) => { console.log(event); }); ``` -------------------------------- ### Mobile Transaction Response Example Source: https://docs.zeamster.com/developers/quick-start/mobile This is an example of the JSON response received from the Fortis Gateway after a mobile transaction. It includes transaction details, status, and other relevant information. A status_id of 101 indicates success. ```json { "transaction" : { "type_id" : 20, "id" : "1234567890abcdef12345678", "is_accountvault" : false, "customer_ip" : null, "terminal_serial_number" : "********", "avs_enhanced" : "V", "notification_phone" : null, "status_id" : 101, "reason_code_id" : 1000, "is_recurring" : false, "hosted_payment_page_id" : null, "notification_email_sent" : true, "billing_state" : null, "currency" : "USD", "routing" : null, "account_vault_id" : null, "custom_data" : null, "transaction_settlement_status" : null, "description" : null, "cvv_response" : "N", "billing_phone" : null, "terminal_id" : "********************", "installment_counter" : null, "transaction_batch_id" : "1234567890abcdef12345678", "location_id" : "1234567890abcdef12345678", "transaction_code" : null, "notification_email_address" : null, "modified_user_id" : "1234567890abcdef12345678", "first_six" : "123456", "account_type" : "amex", "trx_source_id" : 12, "charge_back_date" : null, "entry_mode_id" : "P", "installment_total" : null } } ``` -------------------------------- ### Mobile Transaction Request Example Source: https://docs.zeamster.com/developers/quick-start/mobile This is an example of the JSON request structure sent to the Fortis Gateway during a mobile transaction. It includes essential details like transaction type, amount, and location ID. ```json { "transaction": { "kernel_version": "12345678901234567890", "payment_method": "cc", "device_serial_number": "1234abc", "emv_request": "***************************************************************", "e_serial_number": "1234567890abcdef12345678", "entry_mode_id": "P", "transaction_type": "sale", "action": "sale", "location_id": "1234567890abcdef12345678", "transaction_amount": "135.00", "e_format": "**********" } } ``` -------------------------------- ### Set Up Environment Variables for Zeamster API Source: https://docs.zeamster.com/developers/quick-start Configure your API environment variables for sandbox and production. This includes setting the base URL and developer ID, which are crucial for authenticating your requests. ```csharp // Define everything initially as sandbox environment bool isProduction = false; var url = "https://api.sandbox.server.com"; var developer_id = "12345678"; // If it is production, update the variables if (isProduction) {     url = "https://api.server.com";     developer_id = "87654321"; } // Setup url scheme var router_transaction_endpoint = url + "/v2/routertransactions"; var transaction_endpoint = url + "/v2/transactions"; var contact_endpoint = url + '/v2/contacts'; ``` -------------------------------- ### GET Request with Hex Encoding Source: https://docs.zeamster.com/developers/quick-start/sso Use this URL format for GET requests when sending data encoded using the hex method via the 'data' parameter. The hex string will be significantly longer than shown. ```url https://{domain}/custom/contactsso?developer-id=xxxxxxx&data=A62B12C31FD34F… ``` -------------------------------- ### Add FortisPaymentSDK via CocoaPods Source: https://docs.zeamster.com/developers/quick-start/mobile Include this line in your Podfile to integrate the SDK using CocoaPods. ```ruby pod 'FortisPaymentSDK' ```