//native
type Square = {
token: string;
};
/**
* CreateTerminalCheckout
* Creates a Terminal checkout request and sends it to the specified device to take a payment
for the requested amount.
*/
export async function main(
auth: Square,
body: {
idempotency_key: string;
checkout: {
id?: string;
amount_money: {
amount?: number;
currency?:
| "UNKNOWN_CURRENCY"
| "AED"
| "AFN"
| "ALL"
| "AMD"
| "ANG"
| "AOA"
| "ARS"
| "AUD"
| "AWG"
| "AZN"
| "BAM"
| "BBD"
| "BDT"
| "BGN"
| "BHD"
| "BIF"
| "BMD"
| "BND"
| "BOB"
| "BOV"
| "BRL"
| "BSD"
| "BTN"
| "BWP"
| "BYR"
| "BZD"
| "CAD"
| "CDF"
| "CHE"
| "CHF"
| "CHW"
| "CLF"
| "CLP"
| "CNY"
| "COP"
| "COU"
| "CRC"
| "CUC"
| "CUP"
| "CVE"
| "CZK"
| "DJF"
| "DKK"
| "DOP"
| "DZD"
| "EGP"
| "ERN"
| "ETB"
| "EUR"
| "FJD"
| "FKP"
| "GBP"
| "GEL"
| "GHS"
| "GIP"
| "GMD"
| "GNF"
| "GTQ"
| "GYD"
| "HKD"
| "HNL"
| "HRK"
| "HTG"
| "HUF"
| "IDR"
| "ILS"
| "INR"
| "IQD"
| "IRR"
| "ISK"
| "JMD"
| "JOD"
| "JPY"
| "KES"
| "KGS"
| "KHR"
| "KMF"
| "KPW"
| "KRW"
| "KWD"
| "KYD"
| "KZT"
| "LAK"
| "LBP"
| "LKR"
| "LRD"
| "LSL"
| "LTL"
| "LVL"
| "LYD"
| "MAD"
| "MDL"
| "MGA"
| "MKD"
| "MMK"
| "MNT"
| "MOP"
| "MRO"
| "MUR"
| "MVR"
| "MWK"
| "MXN"
| "MXV"
| "MYR"
| "MZN"
| "NAD"
| "NGN"
| "NIO"
| "NOK"
| "NPR"
| "NZD"
| "OMR"
| "PAB"
| "PEN"
| "PGK"
| "PHP"
| "PKR"
| "PLN"
| "PYG"
| "QAR"
| "RON"
| "RSD"
| "RUB"
| "RWF"
| "SAR"
| "SBD"
| "SCR"
| "SDG"
| "SEK"
| "SGD"
| "SHP"
| "SLL"
| "SLE"
| "SOS"
| "SRD"
| "SSP"
| "STD"
| "SVC"
| "SYP"
| "SZL"
| "THB"
| "TJS"
| "TMT"
| "TND"
| "TOP"
| "TRY"
| "TTD"
| "TWD"
| "TZS"
| "UAH"
| "UGX"
| "USD"
| "USN"
| "USS"
| "UYI"
| "UYU"
| "UZS"
| "VEF"
| "VND"
| "VUV"
| "WST"
| "XAF"
| "XAG"
| "XAU"
| "XBA"
| "XBB"
| "XBC"
| "XBD"
| "XCD"
| "XDR"
| "XOF"
| "XPD"
| "XPF"
| "XPT"
| "XTS"
| "XXX"
| "YER"
| "ZAR"
| "ZMK"
| "ZMW"
| "BTC"
| "XUS";
};
reference_id?: string;
note?: string;
order_id?: string;
payment_options?: {
autocomplete?: false | true;
delay_duration?: string;
accept_partial_authorization?: false | true;
delay_action?: "CANCEL" | "COMPLETE";
};
device_options: {
device_id: string;
skip_receipt_screen?: false | true;
collect_signature?: false | true;
tip_settings?: {
allow_tipping?: false | true;
separate_tip_screen?: false | true;
custom_tip_field?: false | true;
tip_percentages?: number[];
smart_tipping?: false | true;
};
show_itemized_cart?: false | true;
};
deadline_duration?: string;
status?: string;
cancel_reason?: "BUYER_CANCELED" | "SELLER_CANCELED" | "TIMED_OUT";
payment_ids?: string[];
created_at?: string;
updated_at?: string;
app_id?: string;
location_id?: string;
payment_type?:
| "CARD_PRESENT"
| "MANUAL_CARD_ENTRY"
| "FELICA_ID"
| "FELICA_QUICPAY"
| "FELICA_TRANSPORTATION_GROUP"
| "FELICA_ALL"
| "PAYPAY"
| "QR_CODE";
team_member_id?: string;
customer_id?: string;
app_fee_money?: {
amount?: number;
currency?:
| "UNKNOWN_CURRENCY"
| "AED"
| "AFN"
| "ALL"
| "AMD"
| "ANG"
| "AOA"
| "ARS"
| "AUD"
| "AWG"
| "AZN"
| "BAM"
| "BBD"
| "BDT"
| "BGN"
| "BHD"
| "BIF"
| "BMD"
| "BND"
| "BOB"
| "BOV"
| "BRL"
| "BSD"
| "BTN"
| "BWP"
| "BYR"
| "BZD"
| "CAD"
| "CDF"
| "CHE"
| "CHF"
| "CHW"
| "CLF"
| "CLP"
| "CNY"
| "COP"
| "COU"
| "CRC"
| "CUC"
| "CUP"
| "CVE"
| "CZK"
| "DJF"
| "DKK"
| "DOP"
| "DZD"
| "EGP"
| "ERN"
| "ETB"
| "EUR"
| "FJD"
| "FKP"
| "GBP"
| "GEL"
| "GHS"
| "GIP"
| "GMD"
| "GNF"
| "GTQ"
| "GYD"
| "HKD"
| "HNL"
| "HRK"
| "HTG"
| "HUF"
| "IDR"
| "ILS"
| "INR"
| "IQD"
| "IRR"
| "ISK"
| "JMD"
| "JOD"
| "JPY"
| "KES"
| "KGS"
| "KHR"
| "KMF"
| "KPW"
| "KRW"
| "KWD"
| "KYD"
| "KZT"
| "LAK"
| "LBP"
| "LKR"
| "LRD"
| "LSL"
| "LTL"
| "LVL"
| "LYD"
| "MAD"
| "MDL"
| "MGA"
| "MKD"
| "MMK"
| "MNT"
| "MOP"
| "MRO"
| "MUR"
| "MVR"
| "MWK"
| "MXN"
| "MXV"
| "MYR"
| "MZN"
| "NAD"
| "NGN"
| "NIO"
| "NOK"
| "NPR"
| "NZD"
| "OMR"
| "PAB"
| "PEN"
| "PGK"
| "PHP"
| "PKR"
| "PLN"
| "PYG"
| "QAR"
| "RON"
| "RSD"
| "RUB"
| "RWF"
| "SAR"
| "SBD"
| "SCR"
| "SDG"
| "SEK"
| "SGD"
| "SHP"
| "SLL"
| "SLE"
| "SOS"
| "SRD"
| "SSP"
| "STD"
| "SVC"
| "SYP"
| "SZL"
| "THB"
| "TJS"
| "TMT"
| "TND"
| "TOP"
| "TRY"
| "TTD"
| "TWD"
| "TZS"
| "UAH"
| "UGX"
| "USD"
| "USN"
| "USS"
| "UYI"
| "UYU"
| "UZS"
| "VEF"
| "VND"
| "VUV"
| "WST"
| "XAF"
| "XAG"
| "XAU"
| "XBA"
| "XBB"
| "XBC"
| "XBD"
| "XCD"
| "XDR"
| "XOF"
| "XPD"
| "XPF"
| "XPT"
| "XTS"
| "XXX"
| "YER"
| "ZAR"
| "ZMK"
| "ZMW"
| "BTC"
| "XUS";
};
statement_description_identifier?: string;
tip_money?: {
amount?: number;
currency?:
| "UNKNOWN_CURRENCY"
| "AED"
| "AFN"
| "ALL"
| "AMD"
| "ANG"
| "AOA"
| "ARS"
| "AUD"
| "AWG"
| "AZN"
| "BAM"
| "BBD"
| "BDT"
| "BGN"
| "BHD"
| "BIF"
| "BMD"
| "BND"
| "BOB"
| "BOV"
| "BRL"
| "BSD"
| "BTN"
| "BWP"
| "BYR"
| "BZD"
| "CAD"
| "CDF"
| "CHE"
| "CHF"
| "CHW"
| "CLF"
| "CLP"
| "CNY"
| "COP"
| "COU"
| "CRC"
| "CUC"
| "CUP"
| "CVE"
| "CZK"
| "DJF"
| "DKK"
| "DOP"
| "DZD"
| "EGP"
| "ERN"
| "ETB"
| "EUR"
| "FJD"
| "FKP"
| "GBP"
| "GEL"
| "GHS"
| "GIP"
| "GMD"
| "GNF"
| "GTQ"
| "GYD"
| "HKD"
| "HNL"
| "HRK"
| "HTG"
| "HUF"
| "IDR"
| "ILS"
| "INR"
| "IQD"
| "IRR"
| "ISK"
| "JMD"
| "JOD"
| "JPY"
| "KES"
| "KGS"
| "KHR"
| "KMF"
| "KPW"
| "KRW"
| "KWD"
| "KYD"
| "KZT"
| "LAK"
| "LBP"
| "LKR"
| "LRD"
| "LSL"
| "LTL"
| "LVL"
| "LYD"
| "MAD"
| "MDL"
| "MGA"
| "MKD"
| "MMK"
| "MNT"
| "MOP"
| "MRO"
| "MUR"
| "MVR"
| "MWK"
| "MXN"
| "MXV"
| "MYR"
| "MZN"
| "NAD"
| "NGN"
| "NIO"
| "NOK"
| "NPR"
| "NZD"
| "OMR"
| "PAB"
| "PEN"
| "PGK"
| "PHP"
| "PKR"
| "PLN"
| "PYG"
| "QAR"
| "RON"
| "RSD"
| "RUB"
| "RWF"
| "SAR"
| "SBD"
| "SCR"
| "SDG"
| "SEK"
| "SGD"
| "SHP"
| "SLL"
| "SLE"
| "SOS"
| "SRD"
| "SSP"
| "STD"
| "SVC"
| "SYP"
| "SZL"
| "THB"
| "TJS"
| "TMT"
| "TND"
| "TOP"
| "TRY"
| "TTD"
| "TWD"
| "TZS"
| "UAH"
| "UGX"
| "USD"
| "USN"
| "USS"
| "UYI"
| "UYU"
| "UZS"
| "VEF"
| "VND"
| "VUV"
| "WST"
| "XAF"
| "XAG"
| "XAU"
| "XBA"
| "XBB"
| "XBC"
| "XBD"
| "XCD"
| "XDR"
| "XOF"
| "XPD"
| "XPF"
| "XPT"
| "XTS"
| "XXX"
| "YER"
| "ZAR"
| "ZMK"
| "ZMW"
| "BTC"
| "XUS";
};
};
},
) {
const url = new URL(`https://connect.squareup.com/v2/terminals/checkouts`);
const response = await fetch(url, {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer " + auth.token,
},
body: JSON.stringify(body),
});
if (!response.ok) {
const text = await response.text();
throw new Error(`${response.status} ${text}`);
}
return await response.json();
}
Submitted by hugo697 235 days ago