- Authorizes a transaction
POST {{baseURL}}/pay-api/v1/transactions/auth
This endpoint authorizes a payment transaction.
This verifies that the customer's payment method is valid and that sufficient funds or credit are available.
See Also:
To capture or complete a transaction, see POST {/pay-api/v1/transactions/capture
To settle a transaction, see POST /pay-api/v1/transactions/settle
Specifies the Flute currency identifier.
Always set to 1.
Example: 1
Specifies the expiration month of the card.
Example: 7
Specifies the expiration year of the card.
Example: 2032
Specifies the customer payment method identifier.
We recommend using paymentMethodId instead of accountNumber.
Example: b4c48037-4c5d-4e6f-7a8b-9c0d1e2f3a69
Specifies the card number used for the transaction.
This field may contain a token issued against a card number. This is de-tokenized by TransIT to process the transaction.
We recommend using paymentMethodId instead of accountNumber.
Example: 4111111111111111
Specifies the card data source.
Possible values:
| Value | Name | Description |
|---|---|---|
| 1 | Internet | Virtual Terminal, ISV API |
| 2 | Swipe | Track1, Track2 |
| 3 | NFC | EMV Tags, Track2 |
| 4 | EMV | EMV Tags |
| 5 | EMVContactless | EMV Tags |
| 6 | FallbackSwipe | Track 2 |
| 7 | Manual | Card present keyed transaction |
Example: 2
Specifies the device when using the Flute mobile app.
If this value is included, the user is linked to that device. This stores their name as the transaction creator createdBy.
Example: a30f9b66-b2f0-4b18-a03a-b861b00afa8b
Specifies the payment processor identifier.
Example: 37bd9ccb-2c9d-45cf-a65f-c9a224bdeaeb
Specifies the customer identifier.
This is used when saving the payment method.
If this value is provided, the payment method is saved to the specified customer.
If this value is not provided, a new customer record is created.
Example: fd9198a4-eb6f-4620-9603-4f4638289de5
Specifies the absolute amount (in USD) of the tip to be added.
This amount adds to the number included in the field amount earlier. For example if amount is $100 and this tipAmount is $10, the authorize amount is $110.
No additional tip amount or tip rate is required to be added, such as from POST {{baseURL}}/pay-api/v1/transactions/tip-adjustment
Example: 14.50
Specifies the tip rate as a percentage of the base amount to be added.
This amount adds to the number included in the field amount earlier. For example if amount is $100 and this tipRate is 10, the authorize amount is $110.
No additional tip amount or tip rate is required to be added, such as from POST {{baseURL}}/pay-api/v1/transactions/tip-adjustment
Example: 15 (as 15%)
The percent of the base amount to be discounted.
Example:
8.25 (as 8.25%)
12 (as 12%)
The percent of transaction amount to be added to the amount after percentageOffRate is applied.
Example:
8.25 (as 8.25%)
12 (as 12%)
Parameter is mandatory when merchant has ZeroCostProcessingOption == Dual Pricing.
Parameter must be null when merchant has other ZeroCostProcessingOption.
For Dual Pricing, amount should be the card price and useCardPrice should be true, or amount should be the cash price and useCardPrice should be false.
Specifies the version of the mobile app.
This value is stored on the transaction. It is visible in the transaction details. The appVersion value takes priority over the sdkVersion if both are present.
Example: 10.413.01
Specifies the version of the Flute SDK.
This value is stored on the transaction. It is visible in the transaction details. The appVersion value takes priority over the sdkVersion if both are present.
Example: 8.61.01
Information stored on the magnetic stripe of a credit or debit card, including the card number, expiration date, and cardholder's name.
Possible values:
| Value | Name |
|---|---|
| 0 | ICCTerminalError |
| 1 | NoCandidateList |
Example: 2
Possible values:
| Value | Name |
|---|---|
| 0 | Successful |
| 1 | Failed |
| 2 | NotAChipTransaction |
| 3 | Unknown |
Example: 1
Specifies an external transaction identifier for client-side tracking.
Also used in duplicate control validation. A unique value allows similar transactions to process as distinct, bypassing duplicate blocking when needed.
- Mock serverhttps://developer.flute.com/_mock/api-reference/pay-api/v1/transactions/auth
- Sandbox environmenthttps://sandbox.api.flute.com/pay-api/v1/transactions/auth
- Production environmenthttps://api.flute.com/pay-api/v1/transactions/auth
- Card not present Auth
- Swipe Auth
- NFC Auth
- EMV auth
- EMV contactless auth
- Fallback swipe Auth
- Level 2-3 data
curl -i -X POST \
https://developer.flute.com/_mock/api-reference/pay-api/v1/transactions/auth \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"cardDataSource": 1,
"deviceid": "a30f9b66-b2f0-4b18-a03a-b861b00afa8b",
"paymentProcessorId": "37bd9ccb-2c9d-45cf-a65f-c9a224bdeaeb",
"customerId": null,
"paymentMethodId": "d6e6a259-6e7f-4a8b-9c0d-1e2f3a4b5c81",
"accountNumber": null,
"amount": 123.45,
"tipAmount": 1,
"tipRate": null,
"currencyId": 1,
"percentageOffRate": 3,
"surchargeRate": 4,
"useCardPrice": null,
"appVersion": "10.413.01",
"sdkVersion": "8.61.01",
"billingAddress": {
"city": "Phoenix",
"countryId": 1,
"line1": "21 E. Main Street",
"line2": "Office 7",
"postalCode": "85099",
"stateName": "Arizona",
"stateId": 4
},
"shippingAddress": {
"city": "Phoenix",
"countryId": 1,
"line1": "21 E. Main Street",
"line2": null,
"postalCode": "85099",
"stateName": "Arizona",
"stateId": 4
},
"contactInfo": {
"firstName": "John",
"lastName": "Smith",
"companyName": "Flute",
"email": "j.smith29f@example.com",
"mobileNumber": "+1415558787",
"smsNotification": true
},
"securityCode": "123",
"expirationMonth": 12,
"expirationYear": 24,
"track1": null,
"track2": null,
"emvTags": null,
"emvPaymentAppVersion": null,
"pin": null,
"pinKsn": null,
"emvFallbackCondition": null,
"emvFallbackLastChipRead": null,
"referenceId": null,
"l2": null,
"l3": null,
"customerInitiatedTransaction": false
}'OK
Identifies the transaction identifier.
Example: c7c15dd0-03e7-4e55-917c-54bedafba5e7
Specifies the date and time (in an ISO 8601 date-time UTC format) of the transaction execution.
Examples: 2026-02-19T20:24:52.934Z
Indicates an object describing the transaction receipt. The transaction receipt will be null or empty before the transaction is completed. After the completed transaction, it be filled out.
Indicates which amount is authorized. The amount may differ from the amount in the request.
- Authorization response
- Partial authorization response
- Sale response
{ "processedAmount": 10, "avsResponse": { "actionId": 1, "action": "Allow", "responseCode": "0", "groupId": 5, "group": "ValidGroup", "resultId": 1, "result": "Passed", "codeDescription": "Street Address and ZIP Code Match the information on file." }, "transactionReceipt": null, "transactionId": "e5f6a7b8-c9d0-4e1f-2a3b-4c5d6e7f8a14", "transactionDateTime": "2025-12-16T10:35:52.4081694Z", "typeId": 1, "type": "Authorization", "statusId": 1, "status": "Authorized", "details": { "hostResponseCode": "00", "hostResponseMessage": "APPROVAL", "hostResponseDefinition": "Approved and completed", "code": "Approve", "message": "Success", "processorResponseCode": null, "authCode": "VTLMC1", "maskedPan": null } }