Airline & Travel Data
POST https://gateway-api.paycertify.com/api/transactions/auth
POST https://gateway-api.paycertify.com/api/transactions/sale
PayCertify Gateway™ has some built-in features for the Airline and Travel industries. Whenever submitting a transaction for those industries, you can pass additional information which will both populate on our Gateway’s user interface and also on the customer’s credit card statement, besides sending additional data to the processors which help on reconciliation, dispute, risk, fraud mitigation and chargeback representment processes. This data includes:
- Passenger name and ticket details such as ticket number, issuing city, carrier and date;
- Restricted ticket indicators (for tickets that cannot be refunded);
- Leg information such as carrier code, service class, departure and destination airports and fares;
For each passenger you want to use the reporting capabilities, you should be submitting an object under the passenger_transport
field. As for each leg, you should be submitting information under the passenger record, even if all passengers are doing the same itinerary.
Parameter | Type | Length | Presence | Description | Example |
---|---|---|---|---|---|
amount [1] |
number |
0.01-9999999 | Required | Total transaction amount | 3.50 |
passenger_transport.*.ticket_number |
number |
1-13 | Required (for A&TD) | The ticket number for this passenger | AAL1234567890 |
passenger_transport.*.ticket_issuing_carrier_name [2] |
string |
1-25 | Required (for A&TD) | The name of carrier that generated the tickets for airline travel | American Airlines |
passenger_transport.*.ticket_issuing_carrier_code [2] |
string |
2 | Required (for A&TD) | The IATA code for the carrier that issued the ticket | AA |
passenger_transport.*.ticket_issuing_city [3] |
string |
1-18 | Required (for A&TD) | The city where the ticket has been issued | Los Gatos |
passenger_transport.*.ticket_issuing_date [4] |
string |
10 | Required (for A&TD) | The date the ticket was issued in Y-m-d format, with trailing zeros |
2025-05-01 (May 1st 2025) |
passenger_transport.*.passenger_name |
string |
1-20 | Required (for A&TD) | Passenger’s name | John Doe |
passenger_transport.*.restricted_ticket_indicator |
boolean |
- | Required (for A&TD) | If the ticket can be refundable or not. Defaults to false | false |
passenger_transport.*.legs.*.carrier_code |
string |
2 | Required (for A&TD) | The carrier’s IATA code for the leg | AA |
passenger_transport.*.legs.*.service_class |
string |
1 | Required (for A&TD) | The service class for the leg | F |
passenger_transport.*.legs.*.departure_airport |
string |
3 | Required (for A&TD) | The departure airport’s IATA code | SFO |
passenger_transport.*.legs.*.destination_airport |
string |
3 | Required (for A&TD) | The destination airport’s IATA code | LAX |
passenger_transport.*.legs.*.departure_date |
string |
10 | Required (for A&TD) | The departure date in Y-m-d format, with trailing zeros |
2025-05-01 (May 1st 2025) |
passenger_transport.*.legs.*.flight_number [4] |
string |
4 | Optional | The flight number for the leg | 1234 |
passenger_transport.*.legs.*.fare_basis |
string |
1-15 | Required | The fare basis for the leg | VLW4MQC1 |
passenger_transport.*.legs.*.fare [1] |
number |
0.01-9999999 | Required | The total fare for the leg | 1.50 |
[1] The amount
provided should match the sum of passenger_transport.*.legs.*.fare
records.
[2] Whenever the issuing carrier is not available, use the carrier that has the majority of legs on this trip.
[3] Whenever the issuing city is not available, use the merchant’s headquarters city.
[4] The dates should be supplied on the first leg departure airport timezone.
Parameter | Type | Length | Description | Example |
---|---|---|---|---|
transaction.id |
uuid |
36 | This transaction’s ID | 41f00869-d7b3-413e-9476-9ef1a8bc2f28 |
transaction.merchant_id |
uuid |
36 | The user’s merchant ID | 41f00869-d7b3-413e-9476-9ef1a8bc2f28 |
transaction.user_id |
uuid |
36 | The user’s ID | 41f00869-d7b3-413e-9476-9ef1a8bc2f28 |
transaction.processor_id |
uuid |
36 | The processor’s ID | 41f00869-d7b3-413e-9476-9ef1a8bc2f28 |
transaction.merchant_transaction_id |
string |
1-255 | The merchant assigned identifier | my-order-id-0001 |
transaction.updated_at |
datetime |
- | Last time this transaction was updated, on ISO 8601 UTC | 2018-02-16T16:33:40+00:00 |
transaction.created_at |
datetime |
- | Time that transaction was created, on ISO 8601 UTC | 2018-02-16T16:33:40+00:00 |
transaction.events.*.id |
uuid |
36 | This event’s ID | 41f00869-d7b3-413e-9476-9ef1a8bc2f28 |
transaction.events.*.success |
boolean |
- | If the event was a successful event or not | true |
transaction.events.*.event_type |
string |
4-10 | The type of event being performed | auth, capture, sale, void, refund |
transaction.events.*.amount |
number |
0.01-9999999 | Total event amount | 3.56 |
transaction.events.*.processor_code |
string |
2-10 | The processor response code | 00 |
transaction.events.*.processor_message |
string |
1-255 | A human readable message from the processor | APPROVAL V12341 |
transaction.events.*.processor_transaction_id |
string |
1-255 | A processor assigned identifier | 00000000143242 |
transaction.events.*.updated_at |
datetime |
- | Last time this event was updated, on ISO 8601 UTC | 2018-02-16T16:33:40+00:00 |
transaction.events.*.created_at |
datetime |
- | Time that event was created, on ISO 8601 UTC | 2018-02-16T16:33:40+00:00 |
PS: All fields that are included on the authorization message are also echoed back.
curl --request POST \
--url https://gateway-api.paycertify.com/api/transactions/auth \
--header 'Authorization: Bearer YOUR_API_TOKEN' \
--form 'amount=100' \
--form 'card_number=4111111111111111' \
--form 'card_expiry_month=01' \
--form 'card_expiry_year=2021' \
--form 'card_cvv=999' \
--form 'merchant_transaction_id=W1F3D4' \
--form 'passenger_transport[0][ticket_number]=AAL1231231231' \
--form 'passenger_transport[0][ticket_issuing_carrier_name]=American Airlines' \
--form 'passenger_transport[0][ticket_issuing_carrier_code]=AA' \
--form 'passenger_transport[0][ticket_issuing_city]=Los Angeles' \
--form 'passenger_transport[0][ticket_issuing_date]=2018-01-01' \
--form 'passenger_transport[0][passenger_name]=Mary Doe' \
--form 'passenger_transport[0][legs][0][carrier_code]=AA' \
--form 'passenger_transport[0][legs][0][service_class]=F' \
--form 'passenger_transport[0][legs][0][departure_airport]=LAX' \
--form 'passenger_transport[0][legs][0][destination_airport]=SFO' \
--form 'passenger_transport[0][legs][0][flight_number]=1234' \
--form 'passenger_transport[0][legs][0][fare_basis]=Y' \
--form 'passenger_transport[0][legs][0][fare]=10.00' \
--form 'passenger_transport[0][legs][0][departure_date]=2018-01-30' \
--form 'passenger_transport[0][legs][1][carrier_code]=DL' \
--form 'passenger_transport[0][legs][1][service_class]=F' \
--form 'passenger_transport[0][legs][1][departure_airport]=SFO' \
--form 'passenger_transport[0][legs][1][destination_airport]=EWR' \
--form 'passenger_transport[0][legs][1][flight_number]=2345' \
--form 'passenger_transport[0][legs][1][fare_basis]=J' \
--form 'passenger_transport[0][legs][1][fare]=20.00' \
--form 'passenger_transport[0][legs][1][departure_date]=2018-01-30' \
--form 'passenger_transport[1][ticket_number]=AAL1212123434' \
--form 'passenger_transport[1][ticket_issuing_carrier_name]=American Airlines' \
--form 'passenger_transport[1][ticket_issuing_carrier_code]=AA' \
--form 'passenger_transport[1][ticket_issuing_city]=Los Angeles' \
--form 'passenger_transport[1][ticket_issuing_date]=2018-01-06' \
--form 'passenger_transport[1][passenger_name]=John Doe' \
--form 'passenger_transport[1][legs][0][service_class]=F' \
--form 'passenger_transport[1][legs][0][departure_airport]=LAX' \
--form 'passenger_transport[1][legs][0][destination_airport]=SFO' \
--form 'passenger_transport[1][legs][0][flight_number]=1234' \
--form 'passenger_transport[1][legs][0][fare_basis]=Y' \
--form 'passenger_transport[1][legs][0][fare]=30.00' \
--form 'passenger_transport[1][legs][0][departure_date]=2018-01-30' \
--form 'passenger_transport[1][legs][1][carrier_code]=DL' \
--form 'passenger_transport[1][legs][1][service_class]=F' \
--form 'passenger_transport[1][legs][1][departure_airport]=SFO' \
--form 'passenger_transport[1][legs][1][destination_airport]=EWR' \
--form 'passenger_transport[1][legs][1][flight_number]=2345' \
--form 'passenger_transport[1][legs][1][fare_basis]=J' \
--form 'passenger_transport[1][legs][0][carrier_code]=AA' \
--form 'passenger_transport[1][legs][1][departure_date]=2018-01-30' \
--form 'passenger_transport[1][legs][1][fare]=40.00'
Responds with:
{
"transaction": {
"id": "14d5c6ac-856c-47aa-b39e-e44b815ff3a6",
"merchant_id": "455a1c64-385b-41b2-a56f-34bf6c5c5335",
"user_id": "6e064bf5-0e18-466b-811b-f967e8d73b9f",
"processor_id": "1f7e5551-bddb-4c72-ab33-818a1860e69a",
"merchant_transaction_id": "W1F3D4",
"card_number": "401200******5439",
"card_brand": "visa",
"card_expiry_month": "01",
"card_expiry_year": "2021",
"updated_at": "2018-02-19T02:22:14+00:00",
"created_at": "2018-02-19T02:22:12+00:00",
"events": [
{
"id": "ddff299c-c6d4-4917-864c-bea03a52eb1a",
"success": true,
"threeds_response": null,
"avs_response": "exact_match",
"event_type": "auth",
"amount": "100.00",
"ip_address": "127.0.0.1",
"processor_code": "00",
"processor_message": "EXACT MATCH ",
"processor_transaction_id": "000000000297324",
"processor_threeds_response": null,
"processor_avs_response": "Y",
"updated_at": "2018-02-19T02:22:14+00:00",
"created_at": "2018-02-19T02:22:12+00:00"
}
],
"passengers": [
{
"id": "88e057c7-3d95-428f-b7c2-183b46aab443",
"passenger_name": "Mary Doe",
"ticket_number": "AAL1231231231",
"ticket_issuing_carrier_name": "American Airlines",
"ticket_issuing_carrier_code": "AA",
"ticket_issuing_city": "Los Angeles",
"ticket_issuing_date": "2018-01-01",
"restricted_ticket_indicator": false,
"legs": [
{
"carrier_code": "AA",
"service_class": "F",
"departure_airport": "LAX",
"destination_airport": "SFO",
"departure_date": "2018-01-30",
"flight_number": "1234",
"fare_basis": "Y",
"fare": "10.00"
},
{
"carrier_code": "DL",
"service_class": "F",
"departure_airport": "SFO",
"destination_airport": "EWR",
"departure_date": "2018-01-30",
"flight_number": "2345",
"fare_basis": "J",
"fare": "20.00"
}
]
},
{
"id": "35563a54-3c9f-4872-9735-4b6b1f99573f",
"passenger_name": "John Doe",
"ticket_number": "AAL1212123434",
"ticket_issuing_carrier_name": "American Airlines",
"ticket_issuing_carrier_code": "AA",
"ticket_issuing_city": "Los Angeles",
"ticket_issuing_date": "2018-01-06",
"restricted_ticket_indicator": false,
"legs": [
{
"carrier_code": "AA",
"service_class": "F",
"departure_airport": "LAX",
"destination_airport": "SFO",
"departure_date": "2018-01-30",
"flight_number": "1234",
"fare_basis": "Y",
"fare": "30.00"
},
{
"carrier_code": "DL",
"service_class": "F",
"departure_airport": "SFO",
"destination_airport": "EWR",
"departure_date": "2018-01-30",
"flight_number": "2345",
"fare_basis": "J",
"fare": "40.00"
}
]
}
]
}
}
Capture, void and refunds for Airline & Travel Data
POST https://gateway-api.paycertify.com/api/transactions/{transaction_id}/capture
POST https://gateway-api.paycertify.com/api/transactions/{transaction_id}/void
POST https://gateway-api.paycertify.com/api/transactions/{transaction_id}/refund
For Airline & Travel, whenever running a capture
, void
or refund
event, you need to reference which passenger you are authorizing / voiding / refunding. In order to do that, whenever running an auth you need to store the passenger IDs sent back on the auth
or sale
event. You can run any of these events for multiple passenger at a time, as long as you reference the proper amounts / passenger_id pairs.
Parameter | Type | Length | Presence | Description | Example |
---|---|---|---|---|---|
amount |
number |
0.01-9999999 | Required | Total transaction amount | 3.50 |
passenger_transport.*.passenger_id |
uuid |
36 | Required (for A&TD) | The Passenger ID | 88e057c7-3d95-428f-b7c2-183b46aab443 |
passenger_transport.*.amount [1] |
uuid |
36 | Required (for A&TD) | The event amount associated to this passenger | 3.50 |
[1] The amount
provided should match the sum of passenger_transport.*.amount
records.
Parameter | Type | Length | Description | Example |
---|---|---|---|---|
id |
uuid |
36 | This transaction’s ID | 41f00869-d7b3-413e-9476-9ef1a8bc2f28 |
merchant_id |
uuid |
36 | The user’s merchant ID | 41f00869-d7b3-413e-9476-9ef1a8bc2f28 |
user_id |
uuid |
36 | The user’s ID | 41f00869-d7b3-413e-9476-9ef1a8bc2f28 |
processor_id |
uuid |
36 | The processor’s ID | 41f00869-d7b3-413e-9476-9ef1a8bc2f28 |
merchant_transaction_id |
string |
1-255 | The merchant assigned identifier | my-order-id-0001 |
updated_at |
datetime |
- | Last time this transaction was updated, on ISO 8601 UTC | 2018-02-16T16:33:40+00:00 |
created_at |
datetime |
- | Time that transaction was created, on ISO 8601 UTC | 2018-02-16T16:33:40+00:00 |
events.*.id |
uuid |
36 | This event’s ID | 41f00869-d7b3-413e-9476-9ef1a8bc2f28 |
events.*.success |
boolean |
- | If the event was a successful event or not | true |
events.*.event_type |
string |
4-10 | The type of event being performed | auth, capture, sale, void, refund |
events.*.amount |
number |
0.01-9999999 | Total event amount | 3.56 |
events.*.processor_code |
string |
2-10 | The processor response code | 00 |
events.*.processor_message |
string |
1-255 | A human readable message from the processor | APPROVAL V12341 |
events.*.processor_transaction_id |
string |
1-255 | A processor assigned identifier | 00000000143242 |
events.*.updated_at |
datetime |
- | Last time this event was updated, on ISO 8601 UTC | 2018-02-16T16:33:40+00:00 |
events.*.created_at |
datetime |
- | Time that event was created, on ISO 8601 UTC | 2018-02-16T16:33:40+00:00 |
curl --request POST \
--url https://gateway-api.paycertify.com/api/transactions/28c7cfcf-fa2a-49c6-8860-98515407b3c5/refund \
--header 'Authorization: Bearer YOUR_API_TOKEN' \
--header 'Cache-Control: no-cache' \
--form 'amount=3' \
--form 'passenger_transport[1][passenger_id]=9dfe59a6-2173-4778-9fbd-4ce2e8b6d9e3' \
--form 'passenger_transport[1][amount]=0.50'
Responds with:
{
"id": "3410596f-d596-42d4-9811-41d43868e984",
"merchant_id": "455a1c64-385b-41b2-a56f-34bf6c5c5335",
"user_id": "6e064bf5-0e18-466b-811b-f967e8d73b9f",
"processor_id": "30ff7682-6ec7-48f3-8d7a-62319a9c3c59",
"merchant_transaction_id": "my-order-id-0001",
"card_number": "411111******1111",
"card_brand": "visa",
"card_expiry_month": "01",
"card_expiry_year": "2021",
"first_name": "John",
"last_name": "Doe",
"street_address_1": "59 N Santa Cruz Avenue",
"street_address_2": "Suite M",
"city": "Los Gatos",
"state": "CA",
"country": "US",
"zip": "95030",
"email": "[email protected]",
"mobile_phone": "+11231231234",
"updated_at": "2018-02-16T16:33:40+00:00",
"created_at": "2018-02-16T16:33:39+00:00",
"events": [
{
"id": "84a8ab86-ee0e-47d4-8686-4e42fa58355e",
"success": true,
"threeds_response": null,
"avs_response": null,
"event_type": "void",
"amount": "0.50",
"ip_address": "127.0.0.1",
"processor_code": "00",
"processor_message": "APPROVAL TAS123 ",
"processor_transaction_id": "000000000252618",
"processor_threeds_response": null,
"processor_avs_response": "0",
"updated_at": "2018-02-16T16:35:40+00:00",
"created_at": "2018-02-16T16:35:39+00:00"
},
{
"id": "84a8ab86-ee0e-47d4-8686-4e42fa58355e",
"success": true,
"threeds_response": null,
"avs_response": null,
"event_type": "auth",
"amount": "1.00",
"ip_address": "127.0.0.1",
"processor_code": "00",
"processor_message": "APPROVAL TAS656 ",
"processor_transaction_id": "000000000252616",
"processor_threeds_response": null,
"processor_avs_response": "0",
"updated_at": "2018-02-16T16:33:40+00:00",
"created_at": "2018-02-16T16:33:39+00:00"
}
],
"passengers": [
{
"id": "88e057c7-3d95-428f-b7c2-183b46aab443",
"passenger_name": "Mary Doe",
"ticket_number": "AAL1231231231",
"ticket_issuing_carrier_name": "American Airlines",
"ticket_issuing_carrier_code": "AA",
"ticket_issuing_city": "Los Angeles",
"ticket_issuing_date": "2018-01-01",
"restricted_ticket_indicator": false,
"legs": [
{
"carrier_code": "AA",
"service_class": "F",
"departure_airport": "LAX",
"destination_airport": "SFO",
"departure_date": "2018-01-30",
"flight_number": "1234",
"fare_basis": "Y",
"fare": "10.00"
},
{
"carrier_code": "DL",
"service_class": "F",
"departure_airport": "SFO",
"destination_airport": "EWR",
"departure_date": "2018-01-30",
"flight_number": "2345",
"fare_basis": "J",
"fare": "20.00"
}
]
},
{
"id": "35563a54-3c9f-4872-9735-4b6b1f99573f",
"passenger_name": "John Doe",
"ticket_number": "AAL1212123434",
"ticket_issuing_carrier_name": "American Airlines",
"ticket_issuing_carrier_code": "AA",
"ticket_issuing_city": "Los Angeles",
"ticket_issuing_date": "2018-01-06",
"restricted_ticket_indicator": false,
"legs": [
{
"carrier_code": "AA",
"service_class": "F",
"departure_airport": "LAX",
"destination_airport": "SFO",
"departure_date": "2018-01-30",
"flight_number": "1234",
"fare_basis": "Y",
"fare": "30.00"
},
{
"carrier_code": "DL",
"service_class": "F",
"departure_airport": "SFO",
"destination_airport": "EWR",
"departure_date": "2018-01-30",
"flight_number": "2345",
"fare_basis": "J",
"fare": "40.00"
}
]
}
]
}