PayFacto API v2.1.1 (Secure Payment) - Android - App-to-App - Additional Data

PayFacto API v2.1.1 (Secure Payment) - Android - App-to-App - Additional Data

PayFacto API v2.1.1 (Secure Payment) - Android - App-to-App - Additional Data

Complete reference for all extra parameters accepted by the PayFacto Secure Payment Android Intent. Each transaction type requires a specific subset — refer to the transaction type descriptions for the exact required and optional fields.

ℹ️

All parameters are passed using intent.putExtra("KEY", value) on an Android Intent. Use one intent line per parameter. Send the intent with startActivityForResult(intent, 0).

🔄

TRANSACTION

Transaction type to be processed.

📘

Usage

intent.putExtra("TRANSACTION", "Possible Values")

Use an individual intent line for each separate transaction.

❗️

One intent Line Per Transaction

You cannot use multiple intent lines for a single transaction

Usage Examples

  • A sales transaction uses the intent.putExtra("TRANSACTION", "SALE"); line
  • A refund transaction uses the intent.putExtra("TRANSACTION", "REFUND"); line
  • A cash transaction uses the intent.putExtra("TRANSACTION", "CASH"); line

Possible Extra String Label Values

Possible Values Description Usage
SALE Purchase / sale intent.putExtra("TRANSACTION", "SALE");
REFUND Refund intent.putExtra("TRANSACTION", "REFUND");
081 Settlement intent.putExtra("TRANSACTION", "081");
AUTOSETTLE Auto settlement intent.putExtra("TRANSACTION", "AUTOSETTLE");
005 Credit preauthorization intent.putExtra("TRANSACTION", "005");
002 Forced post intent.putExtra("TRANSACTION", "002");
001 Verify credit account intent.putExtra("TRANSACTION", "001");
015 Completion of a previous preauthorization intent.putExtra("TRANSACTION", "015");
VOID Void of a previous transaction intent.putExtra("TRANSACTION", "VOID");
COMPLWOPA Completion of a preauthorization without using data from a previous preauthorization intent.putExtra("TRANSACTION", "COMPLWOPA");
CASH Cash intent.putExtra("TRANSACTION", "CASH");
REPRINT Reprint a transaction.
Using invoice number or sequence number is possible.
If no invoice and sequence number is sent, the last transaction process will be reprint.
If no transaction found return -4 in terminal error code
intent.putExtra("TRANSACTION", "REPRINT");
REPORT Print report either detail or summuary or both, see "REPORTTYPE" intent.putExtra("TRANSACTION", "REPORT");
TRXDATA Return all of of a transaction using invoice number or sequence number is possible.
If no invoice and sequence number is sent, the last transaction process will be reprint.
If no transaction found return -4 in terminal error code
intent.putExtra("TRANSACTION", "TRXDATA");
REPRINTSETTLEMENT Reprint the latest settlement printed intent.putExtra("TRANSACTION", "REPRINTSETTLEMENT");
REPRINTDETAIL Reprint the latest detail report printed intent.putExtra("TRANSACTION", "REPRINTDETAIL");
REPRINTSUMMARY Reprint the latest summary report printed intent.putExtra("TRANSACTION", "REPRINTSUMMARY");
CONNECTIONTEST Test internet connection
Result return in terminal ErrorCode
0 = success
1 = connectivity issue
2 = internet issue
3 = Payfacto issue
intent.putExtra("TRANSACTION", "CONNECTIONTEST");
💰

AMOUNT

Amount of the transaction, expressed with a positive integer value without a decimal sign.

📘

Usage

intent.putExtra("AMOUNT", "Possible Values");

Usage Examples

  • For a $0 transaction (when using the 001/verify credit account transaction type), use intent.putExtra("AMOUNT", "0");
  • For a $10.00 transaction, use intent.putExtra("AMOUNT", "1000");

Possible Extra String Label Values

Possible Values Description Usage
100 $1.00 transaction intent.putExtra("AMOUNT", "100");
1550 $15.50 transaction intent.putExtra("AMOUNT", "1550");
22599 $225.99 transaction intent.putExtra("AMOUNT", "22599");
💵

TIP

Tip amount added to a purchase/sale transaction, expressed with a positive integer value without a decimal sign.

A negative integer value will be considered as $0 for the tip amount.

If tip value is added on the request and the payment application tip feature is disabled, it will be automatically enabled.

📘

Usage

intent.putExtra("TIP", "Possible Values");

Usage Examples

  • For a $1.75 tip, use intent.putExtra("TIP", "175");
  • For a $7.65 tip, use intent.putExtra("TIP", "765");
  • For a $10.25 tip, use intent.putExtra("TIP", "1025");

Possible Extra String Label Values

Possible Values Description Usage
-1 No tip intent.putExtra("TIP", "-1");
200 $2.00 tip intent.putExtra("TIP", "200");
1550 $15.50 tip intent.putExtra("TIP", "1550");
22200 $222.00 tip intent.putExtra("TIP", "22599");
🧾

INVOICE

Invoice number used for transaction processing.

When processing Completion and Void transactions, the invoice is used to recover the previous transaction to complete or void.

The maximum length for the invoice number is 6 alphanumeric characters.

If the invoice number value was previously used on an authorized transaction still in the open batch for the terminal, a response code of -4 will be returned.

📘

Usage

intent.putExtra("INVOICE", "Possible Values");

Usage Examples

  • If the invoice number is 123ABC, use intent.putExtra("INVOICE", "123ABC");
  • If the invoice number is 123456, use intent.putExtra("INVOICE", "123456");
  • If the invoice number is 1A2B, use intent.putExtra("INVOICE", "1A2B");

Possible Extra String Label Values

Possible Values Description Usage
123 Invoice number 123 intent.putExtra("INVOICE", "123");
ABCD Invoice number ABCD intent.putExtra("INVOICE", "ABCD");
98765 Invoice number 98765 intent.putExtra("INVOICE", "98765");
12CD5F Invoice number 12CD5F intent.putExtra("INVOICE", "12CD5F");
👤

CLERK

Operator identification (ID) used for the transaction.

  • Maximum length is 15 numerical characters
  • If the ID doesn't exist in payfacto it will be created
📘

Usage

intent.putExtra("CLERK", "Possible Values");

Usage Examples

  • For an operator/clerk with the ID 1234, use intent.putExtra("CLERK", "1234");
  • If the operator/clerk ID is 7, use intent.putExtra("CLERK", "7");

Possible Extra String Label Values

Possible Values Description Usage
1ID with a single digitintent.putExtra("CLERK", "1");
22ID with two digitsintent.putExtra("CLERK", "22");
333ID with three digitsintent.putExtra("CLERK", "333");
4444ID with four digitsintent.putExtra("CLERK", "4444");
55555ID with five digitsintent.putExtra("CLERK", "55555");
666666ID with six digitsintent.putExtra("CLERK", "666666");
7777777ID with seven digitsintent.putExtra("CLERK", "7777777");
88888888ID with eight digitsintent.putExtra("CLERK", "88888888");
999999999ID with nine digitsintent.putExtra("CLERK", "999999999");
1234567890ID with ten digitsintent.putExtra("CLERK", "1234567890");
12345678901ID with eleven digitsintent.putExtra("CLERK", "12345678901");
123456789012ID with twelve digitsintent.putExtra("CLERK", "123456789012");
1234567890123ID with thridteen digitsintent.putExtra("CLERK", "1234567890123");
12345678901234ID with fourteen digitsintent.putExtra("CLERK", "12345678901234");
123456789012345ID with fifteen digits (maximum allowed)intent.putExtra("CLERK", "123456789012345");
🔐

AUTHCODE

Mandatory information required for force post transactions, where the authorisation code obtained from a source other than the host server. The code provided must be entered on the terminal to ensure that the transactions on the terminal and host server match.

  • Maximum length is 8 alphanumerical characters (letters and numbers)
📘

Usage

intent.putExtra("AUTHCODE", "Possible Values");

Usage Examples

  • If the offline authorization code is 12345678, use intent.putExtra("AUTHCODE", "12345678");
  • If the offline authorization code is R2D2C3P0, use intent.putExtra("AUTHCODE", "R2D2C3P0");

Possible Extra String Label Values

Possible Values Description Usage
98765432 8 numeric characters intent.putExtra("AUTHCODE", "98765432");
A1B2C3 Less than 8 alphanumeric characters intent.putExtra("AUTHCODE", "A1B2C3");
1234DCBA 8 alphanumeric characters intent.putExtra("AUTHCODE", "1234DCBA");
🔑

API

Mandatory information with a unique value required to pass on each intent.

📘

Usage

intent.putExtra("API", "Possible Values");

Usage Examples

  • If the API value is 1A2B3C, use intent.putExtra("API", "1A2B3C");

Possible Extra String Label Values

Possible Values Description Usage
987654321ABCDE The unique value for the API to pass on each intent intent.putExtra("API", "987654321ABCDE");
🌐

MERCHLANG

Merchant language to use when displaying information on the terminal.

Currently, the PayFacto API only supports two languages: English and French.

📘

Usage

intent.putExtra("MERCHLANG", "Possible Values");

Usage Examples

  • To display terminal messages in English, use intent.putExtra("MERCHLANG", "E");
  • To display terminal messages in French, use intent.putExtra("MERCHLANG", "F");

Possible Extra String Label Values

Possible Values Description Usage
E English intent.putExtra("MERCHLANG", "E");
F French intent.putExtra("MERCHLANG", "F");
💲

ORIGINALAMOUNT

Mandatory original amount used on completion without preauthorization, expressed with a positive integer value without a decimal sign.

📘

Usage

intent.putExtra("ORIGINALAMOUNT", "Possible Values");

Usage Examples

  • For an original $10.00 transaction amount, use intent.putExtra("ORIGINALAMOUNT", "1000");

Possible Extra String Label Values

Possible Values Description Usage
100 $1.00 original transaction intent.putExtra("ORIGINALAMOUNT", "100");
1550 $15.50 original transaction intent.putExtra("ORIGINALAMOUNT", "1550");
22575 $225.75 original transaction intent.putExtra("ORIGINALAMOUNT", "22575");
🖨️

PRINTDETAIL

Usage is intent.putExtra("TRANSACTION", "Possible Values"); with an intent line for each value you want to use.

Possible Extra String Label Values

Determines if the automatic settlement process prints the detailed report, expressed using a Boolean value.

📘

Usage

intent.putExtra("PRINTDETAIL", "Possible Values");

Usage Examples

  • To print the detailed report after the automatic settlement, use intent.putExtra("PRINTDETAIL", "true");
  • To not print the detailed report after the automatic settlement, use intent.putExtra("PRINTDETAIL", "false");

Possible Extra String Label Values

Possible Values Description Usage
true Detailed report prints intent.putExtra("PRINTDETAIL", "true");
false Detailed report does not print intent.putExtra("PRINTDETAIL", "false");
📋

PRINTSUMMARY

Determines if the automatic settlement process prints the summary report, expressed using a Boolean value.

📘

Usage

intent.putExtra("PRINTSUMMARY", "Possible Values");

Usage Examples

  • To print the summary report after the automatic settlement, use intent.putExtra("PRINTSUMMARY", "true");
  • To not print the summary report after the automatic settlement, use intent.putExtra("PRINTSUMMARY", "false");

Possible Extra String Label Values

Possible Values Description Usage
true Summary report prints intent.putExtra("PRINTSUMMARY", "true");
false Summary report does not print intent.putExtra("PRINTSUMMARY", "false");
🔗

SEQ

Transaction number (as a UUID representing a string, not an invoice number) representing a previous transaction to be voided provided by the host server.

Only used on void / completion / reprint / TRXDATA transactions.

📘

Usage

intent.putExtra("SEQ", "Possible Values");

Usage Examples

  • The transaction number is UUID as a string, use intent.putExtra("SEQ", "150e8430-e29b-41f4-a716-446655440010");

Possible Extra String Label Values

Possible Values Description Usage
"150e8430-e29b-41f4-a716-446655440010" The transaction number from the previous transaction you want to void, complete a preauth, or to reprint intent.putExtra("SEQ", "150e8430-e29b-41f4-a716-446655440010");
⚙️

SETTINGTIP

Indicates if the tip option will be activated. Possible values are:

  • 1: activates the tip option
  • 0: deactivates the tip option

Any other value than 0 or 1 results in no change to the current tip settings

📘

Usage

intent.putExtra("SETTINGTIP", "Possible Values");

Usage Examples

  • To activate the tip, use intent.putExtra("SETTINGTIP", "1");
  • To deactivate the tip, use intent.putExtra("SETTINGTIP", "0");

Possible Extra String Label Values

Possible Values Description Usage
1 Activates the tip option intent.putExtra("SETTINGTIP", "1");
0 Deactivates the tip option intent.putExtra("SETTINGTIP", "0");
4 No change to the current tip option intent.putExtra("SETTINGTIP", "4");
⚙️

SETTINGCASHBACK

Indicates if the cashback option will be activated on a debit sale transaction. Possible values are:

  • 1: activates the cashback option
  • 0: deactivates the cashback option

Any other value than 0 or 1 results in no change to the current cashback settings

📘

Usage

intent.putExtra("SETTINGCASHBACK", "Possible Values");

Usage Examples

  • To activate cashback, use intent.putExtra("SETTINGCASHBACK", "1");
  • To deactivate cashback, use intent.putExtra("SETTINGCASHBACK", "0");

Possible Extra String Label Values

Possible Values Description Usage
1 Activates the cashback option intent.putExtra("SETTINGCASHBACK", "1");
0 Deactivates the cashback option intent.putExtra("SETTINGCASHBACK", "0");
4 No change to the current cashback option intent.putExtra("SETTINGCASHBACK", "4");
⚙️

SETTINGPRINTECR

Indicates if printing of the transaction receipt will be activated in an ECR (semi-integrated) environment. Possible values are:

  • 1: activates the ECR printing option
  • 0: deactivates the ECR printing option

Any other value than 0 or 1 results in no change to the current ECR printing settings

📘

Usage

intent.putExtra("SETTINGPRINTECR", "Possible Values");

Usage Examples

  • To activate ECR printing, use intent.putExtra("SETTINGPRINTECR", "1");
  • To deactivate ECR printing, use intent.putExtra("SETTINGPRINTECR", "0");

Possible Extra String Label Values

Possible Values Description Usage
1 Activates ECR printing intent.putExtra("SETTINGPRINTECR", "1");
0 Deactivates ECR printing intent.putExtra("SETTINGPRINTECR", "0");
4 No change to the ECR printing settings intent.putExtra("SETTINGPRINTECR", "4");
⚙️

SETTINGCASHORCARD

Indicates if "cash or card" question appears on the terminal for a sale transaction. Possible values are:

  • 1: enables the "cash or card" question
  • 0: disables the "cash or card" question

Any other value than 0 or 1 results in no change to the current enables the "cash or card" question settings

📘

Usage

intent.putExtra("SETTINGCASHORCARD", "Possible Values");

Usage Examples

  • To activate the "cash or card" question, use intent.putExtra("SETTINGCASHORCARD", "1");
  • To deactivate the "cash or card" question, use intent.putExtra("SETTINGCASHORCARD", "0");

Possible Extra String Label Values

Possible Values Description Usage
1 Activates the "cash or card" question intent.putExtra("SETTINGCASHORCARD", "1");
0 Deactivates the "cash or card" question intent.putExtra("SETTINGCASHORCARD", "0");
4 No change to the "cash or card" question settings intent.putExtra("SETTINGCASHORCARD", "4");
📊

REPORTTYPE

Indicates the type of report to print when the transaction type is report (intent.putExtra("TRANSACTION", "REPORT");). Possible values are:

  • 1: prints the summary report
  • 2: prints the detail report
  • 3: prints both reports
📘

Usage

intent.putExtra("REPORTYPE", "Possible Values");

Usage Examples

  • To print the summary report, use intent.putExtra("REPORTYPE", "1");
  • To print the detail report, use intent.putExtra("REPORTYPE", "2");
  • To print both reports (summary and detail), use intent.putExtra("REPORTYPE", "3");

Possible Extra String Label Values

Possible Values Description Usage
1 Prints the summary report intent.putExtra("REPORTYPE", "1");
2 Prints the detail report intent.putExtra("REPORTYPE", "2");
3 Prints both the summary and detail report intent.putExtra("REPORTYPE", "3");
🏷️

TAXAMOUNT

The calculated tax amount (for all applicable jurisdictions), included in the AMOUNT field. The development partner's application calculates the total tax amount and passes that amount as the TAXAMOUNT value.

Must be:

  • Less than the AMOUNT field
  • A positive integer for a tax calculation or 0 for a non-taxable amount
📘

Usage

intent.putExtra("TAXAMOUNT", "Possible Values");

Usage Examples

  • For a taxable total sale of $11.50 where there is $1.50 in tax ($10 pre-tax amount), use intent.putExtra("TAXAMOUNT", "150");
  • For a tax-exempt total sale of $7.65, use intent.putExtra("TAXAMOUNT", "0");

Possible Extra String Label Values

Possible Values Description Usage
0 No tax on the purchase intent.putExtra("TAXAMOUNT", "0");
345 $3.45 of calculated tax intent.putExtra("TAXAMOUNT", "345");
15500 $155 of calculated tax intent.putExtra("TAXAMOUNT", "15500");
🎁

DISABLEGIFT

Setting to disable transaction to be paid via gift card. Default value is false.

📘

Usage

intent.putExtra("DISABLEGIFT", Boolean);

Usage Examples

  • For a transaction, useintent.putExtra("DISABLEGIFT", true);to disable the "Gift card" payment method;

Possible Extra String Label Values

Possible Values Description Usage
TRUE True will disable the gift option in the card reader screen intent.putExtra("DISABLEGIFT", true);