Parameters for Hosted Payment Page
This document contains the following information:
Introduction
Hosted Payment page parameters
Payment Page general parameters
Payment options
Hiding payment methods
Pre-selecting a payment method
Billing information
Shipping information
Invoice information
Shopper information
Encrypted parameters
Introduction
Hosted Payment Page parameters are values that can be included within the URL of your Hosted Payment page. You can use these parameters to add, update, and customize fields on the page.
For example, if you want the checkout page to always appear in Danish and show the currency in Euros, regardless of the shopper's IP address, you can include the language and currency parameters in the URL as follows:
https://checkout.bluesnap.com/buynow/checkout?merchantid=12345&language=DANISH¤cy=EUR
Note
In addition to the parameters below, you can also pass Metadata parameters.
Override price
If you want to override the price that appears on the checkout page, use the override price capability, which is based on an encrypted parameter.
Hosted Payment Page Parameters
The following parameters can be used exclusively with the Hosted Payment Page.
Parameter (Type) | Description |
---|---|
amount 1(string) | The default amount currency is USD. If the amount needs to be charged in a different currency, specify the currency code. Subscriptions, either of the following:
One‑time Payments:
|
merchantid (integer) | Your BlueSnap merchant ID. This parameter is required. Example: merchantid=500604 |
plan[plan ID]=#(integer) | Subscriptions (required) Indicate the plan’s ID in [Plan ID] so the payment page includes the correct details. Or, indicate the default purchase quantity in # . (If the quantity is not included, the default quantity is 1.)Examples: plan457865 , plan234587=3 One-time Payments: N/A |
recurringamount 1(number) | Subscriptions: This parameter is optional. Overrides the recurring charge amount of the plan. Example: recurringamount=16.50 One-time Payments: N/A |
trialperioddays 1(integer) | Subscriptions: This parameter is optional. Overrides the trial period days of the plan. Example: trialperioddays=7 One-time Payments: N/A |
ondemand (boolean) | Supports on-demand subscriptions. Default = false |
1 Parameter must be encrypted to be passed in the query string of the payment page URL.
Back to Top
Payment Page General Parameters
Parameter (Type) | Description |
---|---|
autosubmit (Y/N) | Automatically selects all the default values on the page and then automatically submits the page. Only functions if all of the following apply: - All the mandatory fields (required for the selected payment method) are supplied and valid. - There are no errors in the page. Note: No mandatory checkbox for shopper consent appears in the page. |
backtosellervisible (Y/N) | Defines whether the "Continue" button appears on the "Thank You" page |
browsertitle (string) | Defines the title of the browser page, which appears in the browser tab |
browsertitlevisible (Y/N) | Defines whether the title of the browser page is visible |
companylogovisible (Y/N) | Defines whether the company logo is visible |
currency (3‑letter code from ISO‑4217, case‑insensitive) | Currency to display on the order page Example: EUR |
currencyvisible (Y/N) | Indicates if the shopper currency preference field is visible. Y=Visible (Default=Y) |
currencydisable (Y/N) | Indicates if the shopper currency preference field is disabled. Y=Disabled (Default=N) |
forceDesktop (Y/N) | Indicates whether to force the desktop skin to display, regardless of the shopper's device |
forceMobile (Y/N) | Indicates whether to force the mobile skin to display, regardless of the shopper's device |
language (string) | Available values:ALBANIAN , ARABIC , BRAZILIAN , BULGARIAN , CZECH , DANISH , DUTCH , ENGLISH , FINNISH , FRENCH , GERMAN , HEBREW , HUNGARIAN , ITALIAN , JAPANESE , KOREAN , LITHUANIAN , NORWEGIAN , POLISH , PORTUGUESE , RUSSIAN , SERBIAN , SLOVAK , SPANISH , SWEDISH , TURKISH |
languagevisible (Y/N) | Indicates if the shopper language preference field is visible. Y=Visible (Default=Y) |
languagedisable (Y/N) | Indicates if the shopper language preference field is disabled. Y=Disabled (Default=N) |
merchanttransactionid or merchant.transaction.id(string) | Unique ID that the merchant assigns to the transaction/order, up to 50 characters. Special characters are not recommended. Example: 1000 |
referrer (integer) | For affiliation: the affiliate ID Example: 123585 |
sealmcafeevisible (Y/N) | Defines whether the McAfee secure seal is visible |
sealverisignvisible (Y/N) | Defines whether the Verisign secure seal is visible |
sealvisible (Y/N) | Defines whether the secure seal is visible |
softdesc (string) | Soft descriptor that should appear on the shopper’s card bill Example: Pizza House Inc |
storecardvisible (Y/N) | Defines whether the Securely store card for recurring payments option is visible (Default=Y) |
storeid (integer) | Store ID Example: 155 |
submitvisible (Y/N) | Indicates whether the submit button is visible |
testMode (Y/N) | Indicates whether this is a test of the BuyNow flow |
tid (string) | For affiliation: the transaction ID Example: 12345 |
Payment Options
You can use Hosted Payment Page parameters to perform useful tasks, such as:
Payment methods must be enabled in the Merchant Portal
Before the following payment option parameters can be used, the payment methods you intend to use must be enabled to “Show” in the Merchant Portal. For example, if you want to use the
paymentecp
parameter, ECP must be enabled for your account.
Hiding payment methods
You can use these parameters to hide (or disable) specific payment methods.
Parameter (Type) | Description |
---|---|
payment[paymentMethod](Y/N) | Indicates if the specified payment method is visible in "Payment Options" section Available paymentMethod values:alipay , applepay , banktransfer , boletoBancario , cc , ecp , googlepay , moneybookers , paypal , paysafecard , realtimebank 1, sepadd , skrill , wire Examples: paymentcc=N , paymentpaypal=N , paymentwire=N |
paymentmethodsvisible (Y/N) | Indicates if the payment options widget is visible |
alipay (Y/N) | Indicates if Alipay is visible in the "Payment Options" section |
applepay (Y/N) | Indicates if ApplePay is visible in the "Payment Options" section |
banktransfer (Y/N) | Indicates if Bank Transfer is visible in the "Payment Options" section |
boletoBancario (Y/N) | Indicates if Boleto Bancario is visible in the "Payment Options" section |
cc (Y/N) | Indicates if Credit Cards is visible in the "Payment Options" section |
ecp (Y/N) | Indicates if ECP is visible in the "Payment Options" section |
googlepay (Y/N) | Indicates if Google Pay is visible in the "Payment Options" section |
moneybookers (Y/N) | Indicates if Moneybookers (aka Skrill) is visible in the "Payment Options" section |
paypal (Y/N) | Indicates if PayPal is visible in the "Payment Options" section |
paysafecard (Y/N) | Indicates if Paysafe is visible in the "Payment Options" section |
realtimebank (Y/N) | Indicates if real time bank transfer is visible in the "Payment Options" section |
skrill (Y/N) | Indicates if Skrill (aka Moneybookers) is visible in the "Payment Options" section |
wire (Y/N) | Indicates if Wire is visible in the "Payment Options" section |
ccnumbervisible (Y/N) | Indicates if the CC number field is visible (Default=Y) |
cctypevisible (Y/N) | Indicates if the CC type field is visible (Default=Y) |
cctypedisable (Y/N) | Indicates if the CC type field is disabled. Y=Disabled (Default=N) |
ccdatevisible (Y/N) | Indicates if the CC expiration date field is visible (Default=Y) |
ccdatedisable (Y/N) | Indicates if the CC expiration date field is disabled. Y=Disabled (Default=N) |
expirationmonth (integer) | CC expiration month (2-digit) |
expirationyear (integer) | CC expiration year (4-digit) |
ccstartdatevisible (Y/N) | Indicates if the CC start date field is visible (Default=Y, if start date is applicable for the selected CC type) |
ccstartdatedisable (Y/N) | Indicates if the CC start date field is disabled. Y=Disabled (Default=N) |
ccstartmonth (integer) | CC start month (2-digit) |
ccstartyear (integer) | CC start year (4-digit) |
cccodevisible (Y/N) | Indicates if the CC security code field is visible (Default=Y, if start date is applicable for the selected CC type) |
cccodedisable (Y/N) | Indicates if the CC security code field is disabled. Y=Disabled (Default=N) |
1For payment methods, the
realtimebank
option forpayment[paymentMethod]
in hiding payment methods includesGIROPAY
. All four must be set to hidden or visible as a group using therealtimebank
option.
Pre-selecting a payment method
You can use the following parameter to pre-select a payment method for your shopper on the checkout page.
Parameter (Type) | Description |
---|---|
selectedPaymentMethod(string) | Specifies the default selected payment method when the shopper sees the checkout page. Available PaymentMethod values:ALIPAY , APPLE_PAY , BANKTRANSFER , BOLETO_BANCARIO , CC , ECP ,GIROPAY 2, MONEYBOOKERS , PAYPAL , PAYSAFECARD , SEPA_DIRECT_DEBIT , SOFORTUBERWEISUNG 2, WALLET_MP , WALLET_VISA , WIRE Example: selectedPaymentMethod=SEPA_DIRECT_DEBIT |
2
SOFORTUBERWEISUNG
andGIROPAY
is set to visible or hidden as a group using therealtimebank
option forpayment[paymentMethod]
in Hiding Payment Methods.Also, if you want to have one of these payment methods pre-selected, you must have the country and currency set as well. For example: Even if you preselect GIROPAY, it is not pre-selected for a shopper is located in the US. In this example, you must set
&selectedPaymentMethod=GIROPAY&country=de¤cy=eur
Billing Information
You can use these parameters to pre-populate billing detail fields on the checkout page, and to customize which options appear.
Parameter (Type) | Description |
---|---|
billingfirstname (string) | First name. Example: John |
billinglastname (string) | Last name. Example: Doe |
billingfullName (string) | Full billing name. Example: JohnDoe |
billingaddress1 (string) | Address line 1 |
billingaddress2 (string) | Address line 2 |
billingcity (string) | City |
billingstate (string) | State |
billingzipcode (string) | ZIP code or postal code |
billingcountry (2-letter code from ISO_3166-1) | Country |
billinginfocheckboxvisible(Y/N) | Indicates if the billing info check box is visible. Y=Visible (Default=N) |
billinginfovisible (Y/N) | Indicates if the billing info widget is visible. Y=Visible (Default=N; As default, it is shown only if the shopper checks the billing info checkbox.) |
billinginfodisable (Y/N) | Indicates if the billing info widget is disabled. Y=Disabled (Default=N) |
billingfullnamevisible (Y/N) | Indicates if the billing full name field is visible. Y=Visible (Default=Y) |
billingfullnamedisable (Y/N) | Indicates if the billing full name field is disabled. Y=Disabled (Default=N) |
billingfirstnamevisible (Y/N) | Indicates if the billing first name field is visible. Y=Visible (Default=Y) |
billingfirstnamedisable (Y/N) | Indicates if the billing first name field is disabled. Y=Disabled (Default=N) |
billinglastnamevisible (Y/N) | Indicates if the billing last name field is visible. Y=Visible (Default=Y) |
billinglastnamedisable (Y/N) | Indicates if the billing last name field is disabled. Y=Disabled (Default=N) |
billingaddress1visible (Y/N) | Indicates if the billing address 1 field is visible. Y=Visible (Default=Y) |
billingaddress1disable (Y/N) | Indicates if the billing address 1 field is disabled. Y=Disabled (Default=N) |
billingaddress2visible (Y/N) | Indicates if the billing address 2 field is visible. Y=Visible (Default=N) |
billingaddress2disable (Y/N) | Indicates if the billing address 2 field is disabled. Y=Disabled (Default=N) |
billingcityvisible (Y/N) | Indicates if the billing city field is visible. Y=Visible (Default=Y) |
billingcitydisable (Y/N) | Indicates if the billing city field is disabled. Y=Disabled (Default=N) |
billingzipvisible (Y/N) | Indicates if the billing zip code field is visible. Y=Visible (Default=Y) |
billingzipdisable (Y/N) | Indicates if the billing zip code field is disabled. Y=Disabled (Default=N) |
billingcountryvisible (Y/N) | Indicates if the billing country field is visible. Y=Visible (Default=Y) |
billingcountrydisable (Y/N) | Indicates if the billing country field is disabled. Y=Disabled (Default=N) |
billingstatevisible (Y/N) | Indicates if the billing state field is visible. Y=Visible (Default=Y; only if relevant by the selected country) |
billingstatedisable (Y/N) | Indicates if the billing state field is disabled. Y=Disabled (Default=N) |
Shipping Information
You can use these parameters to pre-populate shipping detail fields on the checkout page, and to customize which options appear.
Note
Shipping information fields are displayed on the checkout page if the 'Collect Shipping Address' option is enabled in the contract's settings (under General Settings > Miscellaneous).
Parameter (Type) | Description |
---|---|
shippingfirstname (string) | First name. Example: John |
shippinglastname (string) | Last name. Example: Doe |
shippingfullName (string) | Full name. Example: JohnDoe |
shippingaddress1 (string) | Address line 1 |
shippingaddress2 (string) | Address line 2 |
shippingcity (string) | City |
shippingstate (string) | State |
shippingzipcode (string) | ZIP code or postal code |
shippingcountry (2‑letter code from ISO_3166‑1) | Country |
shippinginfocheckboxvisible(Y/N) | Indicates if the shipping info checkbox is visible. Y=Visible (Default=N) |
shippinginfovisible (Y/N) | Indicates if the shipping info widget is visible. Y=Visible (Default=N; As default, it is shown only if the shopper checks the shipping info checkbox) |
shippinginfodisable (Y/N) | Indicates if the shipping info widget is disabled. Y=Disabled (Default=N) |
shippingfirstnamevisible (Y/N) | Indicates if the shipping first name field is visible. Y=Visible (Default=Y) |
shippingfirstnamedisable (Y/N) | Indicates if the shipping first name field is disabled. Y=Disabled (Default=N) |
shippinglastnamevisible (Y/N) | Indicates if the shipping last name field is visible. Y=Visible (Default=Y) |
shippinglastnamedisable (Y/N) | Indicates if the shipping last name field is disabled. Y=Disabled (Default=N) |
shippingfullnamevisible (Y/N) | Indicates if the shipping full name field is visible. Y=Visible (Default=Y) |
shippingfullnamedisable (Y/N) | Indicates if the shipping full name field is disabled. Y=Disabled (Default=N) |
shippingaddress1visible (Y/N) | Indicates if the shipping address 1 field is visible. Y=Visible (Default=Y) |
shippingaddress1disable (Y/N) | Indicates if the shipping address 1 field is disabled. Y=Disabled (Default=N) |
shippingaddress2visible (Y/N) | Indicates if the shipping address 2 field is visible. Y=Visible (Default=N) |
shippingaddress2disable (Y/N) | Indicates if the shipping address 2 field is disabled. Y=Disabled (Default=N) |
shippingcityvisible (Y/N) | Indicates if the shipping city field is visible. Y=Visible (Default=Y) |
shippingcitydisable (Y/N) | Indicates if the shipping city field is disabled. Y=Disabled (Default=N) |
shippingzipvisible (Y/N) | Indicates if the shipping zip code field is visible. Y=Visible (Default=Y) |
shippingzipdisable (Y/N) | Indicates if the shipping zip code field is disabled. Y=Disabled (Default=N) |
shippingcountryvisible (Y/N) | Indicates if the shipping country field is visible. Y=Visible (Default=Y) |
shippingcountrydisable (Y/N) | Indicates if the shipping country field is disabled. Y=Disabled (Default=N) |
shippingstatevisible (Y/N) | Indicates if the shipping state field is visible. Y=Visible (Default=Y, but only if relevant for the selected country) |
shippingstatedisable (Y/N) | Indicates if the shipping state field is disabled. Y=Disabled (Default=N) |
Invoice Information
You can use these parameters to pre-populate invoice detail fields on the checkout page, and to customize which options appear.
Parameter (Type) | Description |
---|---|
invoiceinfovisible (Y/N) | Indicates if the invoice info is visible. Y=Visible |
invoiceaddress1 (string) | Address line 1 on the invoice |
invoiceaddress1visible (Y/N) | Indicates if the address 1 field is visible. Y=Visible |
invoiceaddress1disable (Y/N) | Indicates if the address 1 field is disabled. Y=Disabled |
invoiceaddress2 (string) | Address line 2 on the invoice |
invoiceaddress2visible (Y/N) | Indicates if the address 2 field is visible. Y=Visible |
invoiceaddress2disable (Y/N) | Indicates if the address 2 field is disabled. Y=Disabled |
invoicecity (string) | City on the invoice |
invoicecityvisible (Y/N) | Indicates if the city field is visible. Y=Visible |
invoicecitydisable (Y/N) | Indicates if the city field is disabled. Y=Disabled |
invoicecompanyname (string) | Company name on the invoice |
invoicecompanynamevisible (Y/N) | Indicates if the company name field is visible. Y=Visible |
invoicecompanynamedisable (Y/N) | Indicates if the company name field is disabled. Y=Disabled |
invoicecountry (2‑letter code from ISO_3166‑1) | Country on the invoice |
invoicecountryvisible (Y/N) | Indicates if the country field is visible. Y=Visible |
invoicecountrydisable (Y/N) | Indicates if the country field is disabled. Y=Disabled |
invoiceemail (string) | Email on the invoice |
invoiceemailvisible (Y/N) | Indicates if the email field is visible. Y=Visible |
invoiceemaildisable (Y/N) | Indicates if the email field is disabled. Y=Disabled |
invoicefirstName (string) | First name on the invoice |
invoicefirstnamevisible (Y/N) | Indicates if the first name field is visible. Y=Visible |
invoicefirstnamedisable (Y/N) | Indicates if the first name field is disabled. Y=Disabled |
invoicefullName (string) | Full name on the invoice |
invoicefullnamevisible (Y/N) | Indicates if the full name field is visible. Y=Visible |
invoicefullnamedisable (Y/N) | Indicates if the full name field is disabled. Y=Disabled |
invoicelastName (string) | Last name on the invoice |
invoicelastnamevisible (Y/N) | Indicates if the last name field is visible. Y=Visible |
invoicelastnamedisable (Y/N) | Indicates if the last name field is disabled. Y=Disabled |
invoicestate (string) | State on the invoice |
invoicestatevisible (Y/N) | Indicates if the state field is visible. Y=Visible |
invoicestatedisable (Y/N) | Indicates if the state field is disabled. Y=Disabled |
invoicetitle (string) | Title on the invoice |
invoicetitlevisible (Y/N) | Indicates if the title field is visible. Y=Visible |
invoicetitledisable (Y/N) | Indicates if the title field is disabled. Y=Disabled |
invoiceworkphone (string) | Work phone number on the invoice |
invoicephonevisible (Y/N) | Indicates if the phone number field is visible. Y=Visible |
invoicephonedisable (Y/N) | Indicates if the phone number field is disabled. Y=Disabled |
invoicezipcode (string) | ZIP code on the invoice |
invoicezipvisible (Y/N) | Indicates if the ZIP code field is visible. Y=Visible |
invoicezipdisable (Y/N) | Indicates if the ZIP code field is disabled. Y=Disabled |
Shopper Information
You can use these parameters to pre-populate shopper information fields on the checkout page, and to customize which options appear.
Parameter (Type) | Description |
---|---|
title (string) | Title |
companyname (string) | Company name |
firstname (string) | First name |
lastname (string) | Last name |
fullname (string) | Full name |
email (string) | |
address1 (string) | Address line 1 |
address2 (string) | Address line 2 |
city (string) | City |
state (string) | State |
zip (string) | ZIP code or postal code |
workphone (string) | Work phone number |
faxnumber (string) | Fax number |
personalId (string) | Personal identification number for shoppers in Brazil (CPF/CNPJ). Example: personalId=61.384.546/0001-88 |
shoppersprefvisible (Y/N) | Indicates if the shopper language and currency preference fields are visible. Y=Visible (Default=Y) |
shoppersprefdisable (Y/N) | Indicates if the shopper language and currency preference fields are disabled. Y=Disabled (Default=N) |
shopperinfovisible (Y/N) | Indicates if the shopper information fields are visible. Y=Visible (Default=Y) |
shopperinfodisable (Y/N) | Indicates if the shopper information fields are disabled. Y=Disabled (Default=N) |
accountdetailsinfovisible (Y/N) | Indicates if the shopper account details are visible. Y=Visible |
companynamevisible (Y/N) | Indicates if the company name field is visible. Y=Visible (Default=N) |
companynamerequire (Y/N) | Indicates if the company name field is mandatory. (Default=N) |
companynamedisable (Y/N) | Indicates if the company name field is disabled. Y=Disabled (Default=N) |
titlevisible (Y/N) | Indicates if shopper's title field is visible. Y=Disabled (Default=N) |
titlerequire (Y/N) | Indicates if shopper title is mandatory. (Default=N) |
titledisable (Y/N) | Indicates if shopper title field is disabled. Y=Disabled (Default=N) |
firstnamevisible (Y/N) | Indicates if shopper first name field is visible. Y=Visible (Default=Y) |
firstnamedisable (Y/N) | Indicates if the shopper first name field is disabled. Y=Disabled (Default=N) |
lastnamevisible (Y/N) | Indicates if shopper last name field is visible. Y=Visible (Default=Y) |
lastnamedisable (Y/N) | Indicates if the shopper last name field is disabled. Y=Disabled (Default=N) |
fullnamevisible (Y/N) | Indicates if shopper full name field is visible. Y=Visible (Default=Y) |
fullnamedisable (Y/N) | Indicates if the shopper full name field is disabled. Y=Disabled (Default=N) |
emailvisible (Y/N) | Indicates if the shopper email field is visible. Y=Visible (Default=Y) |
address1visible (Y/N) | Indicates if the address line 1 field is visible. Y=Visible (Default=Y) |
address1disable (Y/N) | Indicates if the address line 1 field is disabled. Y=Disabled (Default=N) |
address2visible (Y/N) | Indicates if the address line 2 field is visible. Y=Visible (Default=N) |
address2require (Y/N) | Indicates if the address line 2 field is mandatory. (Default=N) |
address2disable (Y/N) | Indicates if the address line 2 field is disabled. Y=Disabled (Default=N) |
cityvisible (Y/N) | Indicates if the city field is visible. Y=Visible (Default=Y) |
citydisable (Y/N) | Indicates if the city field is disabled. Y=Disabled |
zipvisible (Y/N) | Indicates if the ZIP code field is visible. Y=Visible (Default=Y) |
zipdisable (Y/N) | Indicates if the ZIP code field is disabled. Y=Disabled (Default=N) |
countryvisible (Y/N) | Indicates if the shopper’s country field is visible. Y=Visible (Default=Y) |
countrydisable (Y/N) | Indicates if the shopper’s country field is disabled. Y=Disabled (Default=N) |
statevisible (Y/N) | Indicates if the shopper’s state field is visible. Y=Visible (Default=Y, but only if relevant for the selected country) |
statedisable (Y/N) | Indicates if the shopper’s state field is disabled. Y=Disabled (Default=N) |
phonevisible (Y/N) | Indicates if the shopper’s phone field is visible. Y=Visible (Default=Y) |
phonedisable (Y/N) | Indicates if the shopper’s phone field is disabled. Y=Disabled (Default=N) |
faxvisible (Y/N) | Indicates if the shopper’s fax field is visible. Y=Visible (Default=N) |
faxrequire (Y/N) | Indicates if fax field is mandatory. (Default=N) |
faxdisable (Y/N) | Indicates if the shopper’s fax field is disabled. Y=Disabled (Default=N) |
Encrypted Parameters
BlueSnap supports a number of parameters that should be encrypted before they are added to the URL. The list below describes these parameters. For instructions on using BlueSnap's API to encrypt the parameters, see Encrypt Parameters.
Parameter (Type) | Description |
---|---|
thankyou.backtosellerurl (string) | URL where the shopper will be directed after completing the purchase. The URL must be encoded, as shown in the example. Example: https%3A%2F%2Fmywebsite.com%2Fmypage %3Finv%3D!%7Binvoice.id%7D |
shopperId (string) | Used for Auto Login. ID of the shopper Note: When this parameter is passed, the request must also include the expirationInMinutes parameter. |
expirationInMinutes (string) | Used to set the minutes until the page expires. Max. 1440 minutes (24hr) Note: Returning shoppers only; otherwise, no maximum. |
pageName (string) | Used for Auto Login. Name of the page where the shopper will be directed Example: AUTO_LOGIN_PAGE |
taxCode (string) | The taxCode used to calculate the taxability of the product being purchased based on the shopper's country and zip code. To determine the correct tax code, refer to https://taxcode.avatax.avalara.com Example: DG010200 |
challenge.requested (string) | Indicates if challenge should be forced on the shopper as a part of 3DS. |
merchantId (integer) | Your BlueSnap merchant ID. This parameter is required. Example: merchantid=500604 |
onBehalf (boolean) | Default is false . This should only be set to true if the transaction is completed on behalf of the shopper and not by the shopper themselves. |
Updated about 2 months ago