diff --git a/data/tax-codes.json b/data/tax-codes.json new file mode 100644 index 00000000..4bd52370 --- /dev/null +++ b/data/tax-codes.json @@ -0,0 +1,2654 @@ +[ + { + "id": "txcd_99999999", + "object": "tax_code", + "description": "Any tangible or physical good. For jurisdictions that impose a tax, the standard rate is applied.", + "name": "General - Tangible Goods" + }, + { + "id": "txcd_20030000", + "object": "tax_code", + "description": "Miscellaneous services. This code will only treat services as taxable if the jurisdiction taxes services generally.", + "name": "General - Services" + }, + { + "id": "txcd_10000000", + "object": "tax_code", + "description": "Any electronically supplied good or service.", + "name": "General - Electronically Supplied Services" + }, + { + "id": "txcd_00000000", + "object": "tax_code", + "description": "Any nontaxable good or service which can be used to ensure no tax is applied, even for jurisdictions that impose a tax.", + "name": "Nontaxable" + }, + { + "id": "txcd_10010001", + "object": "tax_code", + "description": "Cloud service offering infrastructure resources (specifically server storage, RAM, and CPU usage) over the internet. This offering is intended for personal use, rather than for use by a commercial enterprise. Note: The distinction between business use and personal use for this product tax category is relevant only if you have sales in the US.", + "name": "Infrastructure as a service (IaaS) - personal use" + }, + { + "id": "txcd_10101000", + "object": "tax_code", + "description": "Cloud service offering infrastructure resources (specifically server storage, RAM, and CPU usage) over the internet. This offering is intended for use by a commercial enterprise. Note: The distinction between business use and personal use for this product tax category is relevant only if you have sales in the US.", + "name": "Infrastructure as a service (IaaS) - business use" + }, + { + "id": "txcd_10102000", + "object": "tax_code", + "description": "Cloud service providing a platform for users to develop, run, and manage applications. This offering is intended for use by a commercial enterprise. Note: The distinction between business use and personal use for this product tax category is relevant only if you have sales in the US.", + "name": "Platform as a service (PaaS) - business use" + }, + { + "id": "txcd_10102001", + "object": "tax_code", + "description": "Cloud service providing a platform for users to develop, run, and manage applications. This offering is intended for personal use, rather than for use by a commercial enterprise. Note: The distinction between business use and personal use for this product tax category is relevant only if you have sales in the US.", + "name": "Platform as a Service (PaaS) - personal use" + }, + { + "id": "txcd_10103000", + "object": "tax_code", + "description": "Cloud services software delivered over the internet. The software isn't customized for a specific buyer and they don't download anything. The software is intended for personal use, rather than for use by a commercial enterprise. Note: The distinction between business use and personal use for this product tax category is relevant only if you have sales in the US.", + "name": "Software as a service (SaaS) - personal use" + }, + { + "id": "txcd_10103001", + "object": "tax_code", + "description": "Cloud services software delivered over the internet. The software isn't customized for a specific buyer and they don't download anything. The software is intended for use by a commercial enterprise. Note: The distinction between business use and personal use for this product tax category is relevant only if you have sales in the US.", + "name": "Software as a service (SaaS) - business use" + }, + { + "id": "txcd_10103100", + "object": "tax_code", + "description": "Cloud services software delivered over the internet. The software isn't customized for a specific buyer and this model assumes an electronic transfer to the buyer, such as an app download. The software is intended for personal use, rather than for use by a commercial enterprise. Note: The distinction between business use and personal use for this product tax category is relevant only if you have sales in the US.", + "name": "Software as a service (SaaS) -- electronic download - personal use" + }, + { + "id": "txcd_10103101", + "object": "tax_code", + "description": "Cloud services software delivered over the internet. The software isn't customized for a specific buyer and this model assumes an electronic transfer to the buyer, such as an app download. The software is intended for use by a commercial enterprise. Note: The distinction between business use and personal use for this product tax category is relevant only if you have sales in the US.", + "name": "Software as a service (SaaS) -- electronic download - business use" + }, + { + "id": "txcd_10104001", + "object": "tax_code", + "description": "Cloud service providing business process outsourcing services over the internet.", + "name": "Cloud-based business process as a service" + }, + { + "id": "txcd_10201000", + "object": "tax_code", + "description": "Video or electronic games in the common sense that are transferred electronically. These goods are downloaded to a device with permanent access granted.", + "name": "Video Games - downloaded - non subscription - with permanent rights" + }, + { + "id": "txcd_10201001", + "object": "tax_code", + "description": "Video or electronic games in the common sense that are transferred electronically. These goods are downloaded to a device with access that expires after a stated period of time.", + "name": "Video Games - downloaded - non subscription - with limited rights" + }, + { + "id": "txcd_10201002", + "object": "tax_code", + "description": "Video or electronic games in the common sense that are transferred electronically. These goods are downloaded to a device with access that is conditioned upon continued subscription payment.", + "name": "Video Games - downloaded - subscription - with conditional rights" + }, + { + "id": "txcd_10201003", + "object": "tax_code", + "description": "Video or electronic games in the common sense that are transferred electronically. These goods are streamed to a device with access that expires after a stated period of time.", + "name": "Video Games - streamed - non subscription - with limited rights" + }, + { + "id": "txcd_10201004", + "object": "tax_code", + "description": "Video or electronic games in the common sense that are transferred electronically. These goods are streamed to a device with access that is conditioned upon continued subscription payment.", + "name": "Video Games - streamed - subscription - with conditional rights" + }, + { + "id": "txcd_10202000", + "object": "tax_code", + "description": "Prewritten (\"canned\") software that the buyer downloads. The software is intended for personal use, rather than for use by a commercial enterprise. Note: The distinction between business use and personal use for this product tax category is relevant only if you have sales in the US.", + "name": "Downloadable software - personal use" + }, + { + "id": "txcd_10202001", + "object": "tax_code", + "description": "Prewritten (\"canned\") software that the buyer downloads used for non-recreational purposes, such as antivirus, database, educational, financial, word processing, etc. The software is intended for personal use, rather than for consumption in a commercial enterprise. Note: The distinction between business use and personal use for this tax code is relevant only if you are transacting business in the US.", + "name": "Downloadable software - non-recreational" + }, + { + "id": "txcd_10202003", + "object": "tax_code", + "description": "Prewritten (\"canned\") software that the buyer downloads. The software is intended for use by a commercial enterprise. Note: The distinction between business use and personal use for this product tax category is relevant only if you have sales in the US.", + "name": "Downloadable software - business use" + }, + { + "id": "txcd_10203000", + "object": "tax_code", + "description": "Custom software that the buyer downloads. The software is intended for personal use, rather than for use by a commercial enterprise. Note: The distinction between business use and personal use for this product tax category is relevant only if you have sales in the US.", + "name": "Downloadable software - custom - personal use" + }, + { + "id": "txcd_10203001", + "object": "tax_code", + "description": "Custom software that the buyer downloads. The software is intended for use by a commercial enterprise. Note: The distinction between business use and personal use for this product tax category is relevant only if you have sales in the US.", + "name": "Downloadable software - custom - business use" + }, + { + "id": "txcd_10301000", + "object": "tax_code", + "description": "The recording of a book read aloud and sold with unlimited usage (e.g., a downloaded audio copy of The High Growth Handbook).", + "name": "Audiobook" + }, + { + "id": "txcd_10302000", + "object": "tax_code", + "description": "Works that are generally recognized in the ordinary and usual sense as books and are transferred electronically. These goods are downloaded to a device with permanent access granted. These goods include novels, autobiographies, encyclopedias, dictionaries, repair manuals, phone directories, business directories, zip code directories, cookbooks, etc.", + "name": "Digital Books - downloaded - non subscription - with permanent rights" + }, + { + "id": "txcd_10302001", + "object": "tax_code", + "description": "Works that are generally recognized in the ordinary and usual sense as books and are transferred electronically. These goods are downloaded to a device with access that expires after a stated period of time. These goods include novels, autobiographies, encyclopedias, dictionaries, repair manuals, phone directories, business directories, zip code directories, cookbooks, etc.", + "name": "Digital Books - downloaded - non subscription - with limited rights" + }, + { + "id": "txcd_10302002", + "object": "tax_code", + "description": "Works that are generally recognized in the ordinary and usual sense as books and are transferred electronically. These goods are downloaded to a device with access that is conditioned upon continued subscription payment. These goods include novels, autobiographies, encyclopedias, dictionaries, repair manuals, phone directories, business directories, zip code directories, cookbooks, etc.", + "name": "Digital Books - downloaded - subscription - with conditional rights" + }, + { + "id": "txcd_10302003", + "object": "tax_code", + "description": "Works that are generally recognized in the ordinary and usual sense as books and are transferred electronically. These goods are viewable (but not downloadable) on a device with access that is conditioned upon continued subscription payment. These goods include novels, autobiographies, encyclopedias, dictionaries, repair manuals, phone directories, business directories, zip code directories, cookbooks, etc.", + "name": "Digital Books - viewable only - subscription - with conditional rights" + }, + { + "id": "txcd_10303000", + "object": "tax_code", + "description": "A digital version of a traditional periodical published at regular intervals with the entire publication or individual articles downloaded to a device with access that is conditioned upon continued subscription payment.", + "name": "Digital Magazines/Periodicals - downloadable - subscription - with conditional rights" + }, + { + "id": "txcd_10303001", + "object": "tax_code", + "description": "A digital version of a traditional magazine published at regular intervals. The publication is accessed via a subscription which also entitles the purchaser to physical copies of the media.", + "name": "Digital Magazines/Periodicals - subscription tangible and digital" + }, + { + "id": "txcd_10303002", + "object": "tax_code", + "description": "A digital version of a traditional periodical published at regular intervals with the entire publication or individual articles viewable (but not downloadable) on a device with access that is conditioned upon continued subscription payment.", + "name": "Digital Magazines/Periodicals - viewable only - subscription - with conditional rights" + }, + { + "id": "txcd_10303100", + "object": "tax_code", + "description": "A digital version of a traditional periodical published at regular intervals with the entire publication or individual articles downloaded to a device with permanent access granted. The publication is accessed without a subscription.", + "name": "Digital Magazines/Periodicals - downloadable - non subscription - with permanent rights" + }, + { + "id": "txcd_10303101", + "object": "tax_code", + "description": "A digital version of a traditional periodical published at regular intervals with the entire publication or individual articles viewable (but not downloadable) on a device with access that expires after a stated period of time. The publication is accessed without a subscription.", + "name": "Digital Magazines/Periodicals - viewable only - non subscription - with limited rights" + }, + { + "id": "txcd_10303102", + "object": "tax_code", + "description": "A digital version of a traditional periodical published at regular intervals with the entire publication or individual articles viewable (but not downloadable) on a device with permanent access granted. The publication is accessed without a subscription.", + "name": "Digital Magazines/Periodicals - viewable only - non subscription - with permanent rights" + }, + { + "id": "txcd_10303104", + "object": "tax_code", + "description": "A digital version of a traditional periodical published at regular intervals with the entire publication or individual articles downloaded to a device with access that expires after a stated period of time. The publication is accessed without a subscription.", + "name": "Digital Magazines/Periodicals - downloadable - non subscription - with limited rights" + }, + { + "id": "txcd_10304000", + "object": "tax_code", + "description": "A digital version of a traditional newspaper published at regular intervals with the entire publication or individual articles downloaded to a device with permanent access granted. The publication is accessed without a subscription.", + "name": "Digital Newspapers - downloadable - non subscription - with permanent rights" + }, + { + "id": "txcd_10304001", + "object": "tax_code", + "description": "A digital version of a traditional newspaper published at regular intervals with the entire publication or individual articles viewable (but not downloadable) on a device with access that expires after a stated period of time. The publication is accessed without a subscription.", + "name": "Digital Newspapers - viewable only - non subscription - with limited rights" + }, + { + "id": "txcd_10304002", + "object": "tax_code", + "description": "A digital version of a traditional newspaper published at regular intervals with the entire publication or individual articles viewable (but not downloadable) on a device with permanent access granted. The publication is accessed without a subscription.", + "name": "Digital Newspapers - viewable only - non subscription - with permanent rights" + }, + { + "id": "txcd_10304003", + "object": "tax_code", + "description": "A digital version of a traditional newspaper published at regular intervals with the entire publication or individual articles downloaded to a device with access that expires after a stated period of time. The publication is accessed without a subscription.", + "name": "Digital Newspapers - downloadable - non subscription - with limited rights" + }, + { + "id": "txcd_10304100", + "object": "tax_code", + "description": "A digital version of a traditional newspaper published at regular intervals with the entire publication or individual articles downloaded to a device with access that is conditioned upon continued subscription payment.", + "name": "Digital Newspapers - downloadable - subscription - with conditional rights" + }, + { + "id": "txcd_10304101", + "object": "tax_code", + "description": "A digital version of a traditional newspaper published at regular intervals. The publication is accessed via a subscription which also entitles the purchaser to physical copies of the media.", + "name": "Digital Newspapers - subscription tangible and digital" + }, + { + "id": "txcd_10304102", + "object": "tax_code", + "description": "A digital version of a traditional newspaper published at regular intervals with the entire publication or individual articles viewable (but not downloadable) on a device with access that is conditioned upon continued subscription payment.", + "name": "Digital Newspapers - viewable only - subscription - with conditional rights" + }, + { + "id": "txcd_10305000", + "object": "tax_code", + "description": "Works that are required as part of a formal academic education program and are transferred electronically. These goods are downloaded to a device with access that expires after a stated period of time.", + "name": "Digital School Textbooks - downloaded - non subscription - with limited rights" + }, + { + "id": "txcd_10305001", + "object": "tax_code", + "description": "Works that are required as part of a formal academic education program and are transferred electronically. These goods are downloaded to a device with permanent access granted.", + "name": "Digital School Textbooks - downloaded - non subscription - with permanent rights" + }, + { + "id": "txcd_10401000", + "object": "tax_code", + "description": "Works that result from the fixation of a series of musical, spoken, or other sounds that are transferred electronically. These goods are streamed to a device with access that expires after a stated period of time. These goods include prerecorded or live music, prerecorded or live readings of books or other written materials, prerecorded or live speeches, ringtones, or other sound recordings, but not including audio greeting cards.", + "name": "Digital Audio Works - streamed - non subscription - with limited rights" + }, + { + "id": "txcd_10401001", + "object": "tax_code", + "description": "Works that result from the fixation of a series of musical, spoken, or other sounds that are transferred electronically. These goods are downloaded to a device with access that expires after a stated period of time. These goods include prerecorded or live music, prerecorded or live readings of books or other written materials, prerecorded or live speeches, ringtones, or other sound recordings, but not including audio greeting cards.", + "name": "Digital Audio Works - downloaded - non subscription - with limited rights" + }, + { + "id": "txcd_10401100", + "object": "tax_code", + "description": "Works that result from the fixation of a series of musical, spoken, or other sounds that are transferred electronically. These goods are downloaded to a device with permanent access granted. These goods include prerecorded or live music, prerecorded or live readings of books or other written materials, prerecorded or live speeches, ringtones, or other sound recordings, but not including audio greeting cards.", + "name": "Digital Audio Works - downloaded - non subscription - with permanent rights" + }, + { + "id": "txcd_10401200", + "object": "tax_code", + "description": "Works that result from the fixation of a series of musical, spoken, or other sounds that are transferred electronically. These goods are streamed to a device with access that is conditioned upon continued subscription payment. These goods include prerecorded or live music, prerecorded or live readings of books or other written materials, prerecorded or live speeches, ringtones, or other sound recordings, but not including audio greeting cards.", + "name": "Digital Audio Works - streamed - subscription - with conditional rights" + }, + { + "id": "txcd_10402000", + "object": "tax_code", + "description": "A series of related images which, when shown in succession, impart an impression of motion, together with accompanying sounds, if any. These goods are streamed to a device with access that expires after a stated period of time. These goods include motion pictures, music videos, animations, news and entertainment programs, and live events, but do not include video greeting cards or video or electronic games.", + "name": "Digital Audio Visual Works - streamed - non subscription - with limited rights" + }, + { + "id": "txcd_10402100", + "object": "tax_code", + "description": "A series of related images which, when shown in succession, impart an impression of motion, together with accompanying sounds, if any. These goods are downloaded to a device with permanent access granted. These goods include motion pictures, music videos, animations, news and entertainment programs, and live events, but do not include video greeting cards or video or electronic games.", + "name": "Digital Audio Visual Works - downloaded - non subscription - with permanent rights" + }, + { + "id": "txcd_10402110", + "object": "tax_code", + "description": "A series of related images which, when shown in succession, impart an impression of motion, together with accompanying sounds, if any. These goods are downloaded to a device with access that expires after a stated period of time. These goods include motion pictures, music videos, animations, news and entertainment programs, and live events, but do not include video greeting cards or video or electronic games.", + "name": "Digital Audio Visual Works - downloaded - non subscription - with limited rights" + }, + { + "id": "txcd_10402200", + "object": "tax_code", + "description": "A series of related images which, when shown in succession, impart an impression of motion, together with accompanying sounds, if any. These goods are streamed to a device with access that is conditioned upon continued subscription payment. These goods include motion pictures, music videos, animations, news and entertainment programs, and live events, but do not include video greeting cards or video or electronic games.", + "name": "Digital Audio Visual Works - streamed - subscription - with conditional rights" + }, + { + "id": "txcd_10402300", + "object": "tax_code", + "description": "An audio visual work of a live performance streamed over the internet that you can only access for a limited time during the performance (e.g., a live concert stream).", + "name": "Digital video streaming -- live performance (limited use)" + }, + { + "id": "txcd_10501000", + "object": "tax_code", + "description": "Digital images that are downloaded to a device with permanent access granted.", + "name": "Digital Photographs/Images - downloaded - non subscription - with permanent rights" + }, + { + "id": "txcd_10502000", + "object": "tax_code", + "description": "Gift card or gift certificate that that you purchase and receive electronically and assumed to be multi-purpose.", + "name": "Gift card" + }, + { + "id": "txcd_10503000", + "object": "tax_code", + "description": "Individual digital news articles, newsletters, and other stand-alone documents. These goods are downloaded to a device with permanent access granted. These publications are accessed without a subscription.", + "name": "Digital other news or documents - downloadable - non subscription - with permanent rights" + }, + { + "id": "txcd_10503001", + "object": "tax_code", + "description": "Individual digital news articles, newsletters, and other stand-alone documents. These goods are downloaded to a device with access that expires after a stated period of time.", + "name": "Digital other news or documents - downloadable - non subscription - with limited rights" + }, + { + "id": "txcd_10503002", + "object": "tax_code", + "description": "Individual digital news articles, newsletters, and other stand-alone documents. These goods are downloaded to a device with access that is conditioned upon continued subscription payment.", + "name": "Digital other news or documents - downloadable - subscription - with conditional rights" + }, + { + "id": "txcd_10503003", + "object": "tax_code", + "description": "Individual digital news articles, newsletters, and other stand-alone documents. These goods are viewable (but not downloadable) on a device with access that expires after a stated period of time.", + "name": "Digital other news or documents - viewable only - non subscription - with limited rights" + }, + { + "id": "txcd_10503004", + "object": "tax_code", + "description": "Individual digital news articles, newsletters, and other stand-alone documents. These goods are viewable (but not downloadable) on a device with permanent access granted.", + "name": "Digital other news or documents - viewable only - non subscription - with permanent rights" + }, + { + "id": "txcd_10503005", + "object": "tax_code", + "description": "Individual digital news articles, newsletters, and other stand-alone documents. These goods are viewable (but not downloadable) on a device with access that is conditioned upon continued subscription payment.", + "name": "Digital other news or documents - viewable only - subscription - with conditional rights" + }, + { + "id": "txcd_10504000", + "object": "tax_code", + "description": "Electronic software documentation or user manuals - For custom software & delivered electronically.", + "name": "Electronic software documentation or user manuals - Custom, electronic delivery" + }, + { + "id": "txcd_10504003", + "object": "tax_code", + "description": "Electronic software documentation or user manuals - For prewritten software & delivered electronically.", + "name": "Electronic software documentation or user manuals - Prewritten, electronic delivery" + }, + { + "id": "txcd_10505000", + "object": "tax_code", + "description": "The final art used for actual reproduction by photomechanical or other processes or for display purposes, but does not include website or home page design, and that is transferred electronically. These goods are downloaded to a device with access that expires after a stated period of time. These goods include drawings, paintings, designs, photographs, lettering, paste-ups, mechanicals, assemblies, charts, graphs, illustrative materials, etc.", + "name": "Digital Finished Artwork - downloaded - non subscription - with limited rights" + }, + { + "id": "txcd_10505001", + "object": "tax_code", + "description": "The final art used for actual reproduction by photomechanical or other processes or for display purposes, but does not include website or home page design, and that is transferred electronically. These goods are downloaded to a device with permanent access granted. These goods include drawings, paintings, designs, photographs, lettering, paste-ups, mechanicals, assemblies, charts, graphs, illustrative materials, etc.", + "name": "Digital Finished Artwork - downloaded - non subscription - with permanent rights" + }, + { + "id": "txcd_10505002", + "object": "tax_code", + "description": "The final art used for actual reproduction by photomechanical or other processes or for display purposes, but does not include website or home page design, and that is transferred electronically. These goods are downloaded to a device with access that is conditioned upon continued subscription payment. These goods include drawings, paintings, designs, photographs, lettering, paste-ups, mechanicals, assemblies, charts, graphs, illustrative materials, etc.", + "name": "Digital Finished Artwork - downloaded - subscription - with conditional rights" + }, + { + "id": "txcd_10506000", + "object": "tax_code", + "description": "An electronic greeting \"card\" typically sent via email that contains an audio only message.", + "name": "Digital Greeting Cards - Audio Only" + }, + { + "id": "txcd_10506001", + "object": "tax_code", + "description": "An electronic greeting \"card\" typically sent via email that contains a series of related images which, when shown in succession, impart an impression of motion, together with accompanying sounds, if any.", + "name": "Digital Greeting Cards - Audio Visual" + }, + { + "id": "txcd_10506002", + "object": "tax_code", + "description": "An electronic greeting \"card\" typically sent via email that contains only static images or text, rather than an audio visual or audio only experience.", + "name": "Digital Greeting Cards - Static text and/or images only" + }, + { + "id": "txcd_10701000", + "object": "tax_code", + "description": "Online advertising services such as creating and uploading advertisements on the internet. This is a standalone service that doesn’t involve the sale of tangible personal property.", + "name": "Website advertising" + }, + { + "id": "txcd_10701100", + "object": "tax_code", + "description": "A service to enable a customer's website to be accessible on the internet.", + "name": "Website hosting" + }, + { + "id": "txcd_10701200", + "object": "tax_code", + "description": "A service to design a website or webpage.", + "name": "Website design" + }, + { + "id": "txcd_10701300", + "object": "tax_code", + "description": "An online service that allows a customer to create, transform, process, or access data electronically.", + "name": "Website data processing" + }, + { + "id": "txcd_10701400", + "object": "tax_code", + "description": "An online service furnishing information to customers, including online search and data comparison.", + "name": "Website information services" + }, + { + "id": "txcd_10702000", + "object": "tax_code", + "description": "A subscription service for membership to an online dating platform.", + "name": "Online Dating Services" + }, + { + "id": "txcd_10804001", + "object": "tax_code", + "description": "A series of related images which, when shown in succession, impart an impression of motion, together with accompanying sounds, if any. These goods are streamed and/or downloaded to a device with access that is conditioned upon continued subscription payment. These goods include motion pictures, music videos, animations, news and entertainment programs, and live events, but do not include video greeting cards or video or electronic games.", + "name": "Digital Audio Visual Works - bundle - downloaded and streamed - subscription - with conditional rights" + }, + { + "id": "txcd_10804002", + "object": "tax_code", + "description": "A series of related images which, when shown in succession, impart an impression of motion, together with accompanying sounds, if any. These goods can be streamed and/or downloaded to a device with access that expires after a stated period of time. These goods include motion pictures, music videos, animations, news and entertainment programs, and live events, but do not include video greeting cards or video or electronic games.", + "name": "Digital Audio Visual Works - bundle - downloaded with limited rights and streamed - non subscription" + }, + { + "id": "txcd_10804003", + "object": "tax_code", + "description": "A series of related images which, when shown in succession, impart an impression of motion, together with accompanying sounds, if any. These goods can be streamed and/or downloaded to a device with permanent access granted. These goods include motion pictures, music videos, animations, news and entertainment programs, and live events, but do not include video greeting cards or video or electronic games.", + "name": "Digital Audio Visual Works - bundle - downloaded with permanent rights and streamed - non subscription" + }, + { + "id": "txcd_20010001", + "object": "tax_code", + "description": "A charge to clean, wash or wax a motor vehicle, other than a self-service coin (or credit card) operated washing station. This a labor charge, with any non-separately stated property transferred in performing the service considered inconsequential.", + "name": "Car Washing" + }, + { + "id": "txcd_20010003", + "object": "tax_code", + "description": "A charge for the cleaning of tangible personal property, other than motor vehicles or clothing.", + "name": "Cleaning of Tangible Personal Property" + }, + { + "id": "txcd_20010004", + "object": "tax_code", + "description": "A charge for janitorial services to commercial buildings, including the cleaning of floors, carpets, walls, windows, fixtures, exterior cleaning, etc.", + "name": "Commercial Cleaning Services" + }, + { + "id": "txcd_20010006", + "object": "tax_code", + "description": "A charge for custodial services to residential structures, including the cleaning of floors, carpets, walls, windows, appliances, furniture, fixtures, exterior cleaning, etc. No Tangible Personal Property is transferred.", + "name": "Residential Cleaning Services" + }, + { + "id": "txcd_20010007", + "object": "tax_code", + "description": "A charge for the service to maintain the proper operation of home or building gutters through cleaning out debris that could otherwise affect the proper water flow through the gutter system.", + "name": "Gutter Cleaning Services" + }, + { + "id": "txcd_20020009", + "object": "tax_code", + "description": "A labor charge to install hardware where the installed property isn't considered permanently attached to the real property.", + "name": "Installation of hardware -- nonpermanent" + }, + { + "id": "txcd_20020010", + "object": "tax_code", + "description": "A labor charge to install hardware where the installed property is permanently attached to the real property.", + "name": "Installation of hardware -- permanent" + }, + { + "id": "txcd_20020018", + "object": "tax_code", + "description": "A charge separately stated from any sale of the product itself for the installation of tangible personal property. This a labor charge, with any non-separately stated property transferred in performing the service considered inconsequential.", + "name": "Installation services" + }, + { + "id": "txcd_20030002", + "object": "tax_code", + "description": "Services provided by a facility for overnight care of an animal not related to veterinary care.", + "name": "Pet boarding" + }, + { + "id": "txcd_20030003", + "object": "tax_code", + "description": "Grooming services for an animal such as haircuts, bathing, nail trimming, and flea dips.", + "name": "Pet grooming" + }, + { + "id": "txcd_20030004", + "object": "tax_code", + "description": "A charge for providing usage of a parking space.", + "name": "Parking Services" + }, + { + "id": "txcd_20030005", + "object": "tax_code", + "description": "Service to train an animal to obey certain commands.", + "name": "Pet Services - Obedience Training" + }, + { + "id": "txcd_20040001", + "object": "tax_code", + "description": "Services provided by beauty shops and barber shops, including but not limited to haircutting, hair coloring, shampooing, blow drying, permanents, hair extensions, hair straightening, and hair restorations.", + "name": "Hairdressing Services" + }, + { + "id": "txcd_20040002", + "object": "tax_code", + "description": "A charge for personal care services. Please select a more granular product tax category where appropriate.", + "name": "Personal Care Services" + }, + { + "id": "txcd_20040003", + "object": "tax_code", + "description": "A charge for the puncturing or penetration of the skin of a person and the insertion of jewelry or other adornment into the opening.", + "name": "Body Piercing" + }, + { + "id": "txcd_20040004", + "object": "tax_code", + "description": "Services that provide non-medical care and supervision for infant to school-age children or senior citizens.", + "name": "Childcare Services / Adultcare" + }, + { + "id": "txcd_20040005", + "object": "tax_code", + "description": "A service that arranges introductions, for a fee, for strangers seeking romantic partners or friends. This excludes online dating services.", + "name": "Dating Services" + }, + { + "id": "txcd_20040006", + "object": "tax_code", + "description": "Services provided by employment agencies to match employees to employers and employers to employees.", + "name": "Employment Services" + }, + { + "id": "txcd_20040007", + "object": "tax_code", + "description": "A charge for the cosmetic beauty treatment for the fingernails and toenails, including filing, cutting, shaping and the application of polish.", + "name": "Manicure Services" + }, + { + "id": "txcd_20040008", + "object": "tax_code", + "description": "Services where the use of structured touch, include holding, applying pressure, positioning, and mobilizing soft tissue of the body by manual technique. Note: This does not include medical massage prescribed by a physician.", + "name": "Massage Services" + }, + { + "id": "txcd_20040009", + "object": "tax_code", + "description": "Personal services typically with the purpose of improving health, beauty and relaxation through treatments such as hair, massages and facials.", + "name": "Spa Services" + }, + { + "id": "txcd_20040010", + "object": "tax_code", + "description": "Services for artificial tanning and skin beautification.", + "name": "Tanning Services" + }, + { + "id": "txcd_20040011", + "object": "tax_code", + "description": "A charge for the process that uses needles and colored ink to permanently put a mark or design on a person’s skin. Also applying permanent make-up, such as eyelining and other permanent colors to enhance the skin of the face, lips, eyelids, and eyebrows.", + "name": "Tattooing Services" + }, + { + "id": "txcd_20060000", + "object": "tax_code", + "description": "A charge for a service performed by providers considered professionals due to the extensive initial and continuing education and/or training requirements, and the likelihood of state or federal licensing requirements. Choose this product tax code for any professional service offering in which a more detailed code is not available.", + "name": "Professional Services" + }, + { + "id": "txcd_20060001", + "object": "tax_code", + "description": "The measurement, processing and communication of financial information about economic entities including, but is not limited to, financial accounting, management accounting, auditing, cost containment and auditing services, taxation and accounting information systems; excluding general bookkeeping service.", + "name": "Accounting Services" + }, + { + "id": "txcd_20060002", + "object": "tax_code", + "description": "Services rendered for advertising which do not include the exchange of tangible personal property.", + "name": "Advertising Services" + }, + { + "id": "txcd_20060008", + "object": "tax_code", + "description": "Services rendered for the compiling and relating of information regarding the history of financial transactions of a person or entity.", + "name": "Credit Reporting Services" + }, + { + "id": "txcd_20060009", + "object": "tax_code", + "description": "A service that allows data to be created, transformed, where the service is not performed online. Select \"Website data processing\" if the service is performed online and data is accessed by the customer electronically.", + "name": "Tangible services -- data processing" + }, + { + "id": "txcd_20060010", + "object": "tax_code", + "description": "Services performed to collect or adjust past-due debt from borrowers.", + "name": "Debt Collection Services" + }, + { + "id": "txcd_20060013", + "object": "tax_code", + "description": "Services provided by a professional trained to apply physical laws and principles of engineering in the design, development, and utilization of machines, materials, instruments, structures, processes, and systems. The services involve any of the following activities: provision of advice, preparation of feasibility studies, preparation of preliminary and final plans and designs, provision of technical services during the construction or installation phase, inspection and evaluation of engineering projects, and related services.", + "name": "Engineering Services" + }, + { + "id": "txcd_20060017", + "object": "tax_code", + "description": "Charges for installing, configuring, debugging, modifying, testing, or troubleshooting computer hardware, networks, programs or software. Labor only charge.", + "name": "Technical Support Services" + }, + { + "id": "txcd_20060021", + "object": "tax_code", + "description": "Charges associated loss or damage appraisals, inspections, actuarial services, claims adjustment or processing. Investigations as excluded from this definition.", + "name": "Insurance Services" + }, + { + "id": "txcd_20060022", + "object": "tax_code", + "description": "Planning and design of interior spaces, including preparation of layout drawings, furniture arranging, design planning and purchasing of furniture, fixtures, and cabinetry, staging, lighting and sound design.", + "name": "Interior decorating" + }, + { + "id": "txcd_20060026", + "object": "tax_code", + "description": "Services relating to advocating for the passage or defeat of legislation to members or staff of the government.", + "name": "Lobbying Services" + }, + { + "id": "txcd_20060027", + "object": "tax_code", + "description": "Services provided by a licensed or registered professional in the medical field. Examples: Doctor, dentist, nurse, optometrist, etc.", + "name": "Medical Professional Services" + }, + { + "id": "txcd_20060029", + "object": "tax_code", + "description": "Services to process employee payroll, including wages, withholding taxes, benefits. etc.", + "name": "Payroll Services" + }, + { + "id": "txcd_20060030", + "object": "tax_code", + "description": "Services providing a systematic inquiry, examination, or analysis of people, events or documents through surveillance, background checks, computer searches, fingerprinting, lie detector services, interviews, etc.", + "name": "Private Investigator Services" + }, + { + "id": "txcd_20060035", + "object": "tax_code", + "description": "Services which include, but are not limited to, editing, letter writing, proofreading, resume writing, typing or word processing. Doesn't include court reporting and stenographic services.", + "name": "Secretarial services" + }, + { + "id": "txcd_20060040", + "object": "tax_code", + "description": "Charges to electronically file a tax return on behalf of the taxpayer. This does not include manual preparation of tax returns.", + "name": "Electronic Filing Service" + }, + { + "id": "txcd_20060042", + "object": "tax_code", + "description": "Services related to providing personnel, on a temporary basis, to perform work or labor under the supervision or control of another.", + "name": "Temporary help services" + }, + { + "id": "txcd_20060044", + "object": "tax_code", + "description": "A charge for training sessions which provide instruction to the buyer.", + "name": "Training services" + }, + { + "id": "txcd_20060045", + "object": "tax_code", + "description": "Live web based training. This does not include video replays of the instruction or course.", + "name": "Training Services - Live Virtual" + }, + { + "id": "txcd_20060047", + "object": "tax_code", + "description": "Services related to the art and science of designing and building structures for human habitation or use and includes planning, providing preliminary studies, designs, specifications, working drawings and providing for general administration of construction contracts.", + "name": "Architectural Services" + }, + { + "id": "txcd_20060048", + "object": "tax_code", + "description": "The provision of expertise or strategic advice that is presented for consideration and decision-making.", + "name": "Consulting Services" + }, + { + "id": "txcd_20060049", + "object": "tax_code", + "description": "Medical procedure performed on an individual that is directed at improving the individual's appearance and that does not meaningfully promote the proper function of the body or prevent or treat illness or disease.", + "name": "Cosmetic Medical Procedure" + }, + { + "id": "txcd_20060050", + "object": "tax_code", + "description": "Credit monitoring services are companies consumers pay to keep an eye on your credit files. The services notifies one when they see activity in credit files, so one can determine if that activity is a result of action one took or possibly fraudulent.", + "name": "Credit Monitoring Services" + }, + { + "id": "txcd_20060051", + "object": "tax_code", + "description": "Services to track one's credit reports and provide notifications of activity with the intent of avoiding fraud.", + "name": "Credit Card Processing Services" + }, + { + "id": "txcd_20060052", + "object": "tax_code", + "description": "Academic classes provided by traditional private education establishments and organizations.", + "name": "Educational Services" + }, + { + "id": "txcd_20060053", + "object": "tax_code", + "description": "A charge for an objective visual examination of a house’s systems and physical structure. The charge includes a report of the inspector's findings including pictures, analysis, and recommendations.", + "name": "Home Inspection Services" + }, + { + "id": "txcd_20060054", + "object": "tax_code", + "description": "Services relating to or concerned with the law. Such services include, but are not limited to, representation by an attorney (or other person, when permitted) in an administrative or legal proceeding, legal drafting, paralegal services, legal research services, arbitration, mediation, and court reporting services.", + "name": "Legal Services" + }, + { + "id": "txcd_20060055", + "object": "tax_code", + "description": "Services for consumer research and testing in connection with the development of particular products or services that the client sells to consumers in the regular course of business.", + "name": "Marketing Services" + }, + { + "id": "txcd_20060056", + "object": "tax_code", + "description": "Services to provide outreach designed to influence the general public or other groups by promoting the interests of a service recipient.", + "name": "Public Relations" + }, + { + "id": "txcd_20060057", + "object": "tax_code", + "description": "Services that include typing, taking shorthand, and taking and transcribing dictation for others for a consideration.", + "name": "Stenographic Services" + }, + { + "id": "txcd_20060058", + "object": "tax_code", + "description": "Self Study web based training, not instructor led. This does not include downloads of video replays.", + "name": "Training Services - Self Study Web Based" + }, + { + "id": "txcd_20060059", + "object": "tax_code", + "description": "Personal or small group teaching, designed to help people who need extra help with their studies.", + "name": "Tutoring" + }, + { + "id": "txcd_20070001", + "object": "tax_code", + "description": "A charge for monitoring an electronically controlled alarm system for residential or commercial properties to minimize or prevent loss or damage to life, limb, or property.", + "name": "Security - Alarm Services" + }, + { + "id": "txcd_20070006", + "object": "tax_code", + "description": "A charge for services related to the eradication of insects, rodents, and other pests.", + "name": "Extermination services" + }, + { + "id": "txcd_20070007", + "object": "tax_code", + "description": "A charge for services related to the maintenance of grounds.", + "name": "Landscaping services" + }, + { + "id": "txcd_20070008", + "object": "tax_code", + "description": "A charge for services of general lawn and grounds maintenance, including lawn cutting, weeding, yard clean-up, shrub and tree trimming, periodic seeding or aeration, etc. This a labor charge, with any non-separately stated property transferred in performing the service considered inconsequential.", + "name": "Lawn Maintenance Services" + }, + { + "id": "txcd_20070010", + "object": "tax_code", + "description": "A charge for services related to the painting of surfaces or the application of wallpaper.", + "name": "Painting and wallpapering services" + }, + { + "id": "txcd_20070013", + "object": "tax_code", + "description": "Services related to protecting persons or their property, preventing the theft of goods, merchandise, or money. Responding to alarm signal device, burglar alarm, television camera, still camera, or a mechanical or electronic device installed or used to prevent or detect burglary, theft, shoplifting, pilferage, losses, or other security measures. Providing management and control of crowds for safety and protection.", + "name": "Security - Guard Services" + }, + { + "id": "txcd_20070016", + "object": "tax_code", + "description": "Services mapping, detecting or establishing the relative position of points at, above, or below the surface of the earth. These services may include surveying and mapping of areas above or below the surface of the earth, such as the creation of view easements or segregating rights in parcels of land by creating underground utility easements.", + "name": "Property Surveying Services" + }, + { + "id": "txcd_20080003", + "object": "tax_code", + "description": "A charge to repair or restore to operating condition a motor vehicle that was broken, worn, damaged, defective, or malfunctioning. This a labor charge, with any non-separately stated property transferred in performing the service considered inconsequential.", + "name": "Motor Vehicle Repair" + }, + { + "id": "txcd_20080004", + "object": "tax_code", + "description": "A charge to repair or restore footwear was broken, worn, damaged, defective, or malfunctioning. This a labor charge, with any non-separately stated property transferred in performing the service considered inconsequential.", + "name": "Shoe Repair" + }, + { + "id": "txcd_20080005", + "object": "tax_code", + "description": "A charge to repair or restore tangible personal property that was broken, worn, damaged, defective, or malfunctioning. This a labor charge, with any non-separately stated property transferred in performing the service considered inconsequential.", + "name": "Repair of Tangible Personal Property" + }, + { + "id": "txcd_20080007", + "object": "tax_code", + "description": "A charge to repair or maintain real property including repairs to HVAC, electrical, flooring, etc.", + "name": "Repair services -- real property" + }, + { + "id": "txcd_20080008", + "object": "tax_code", + "description": "A charge to repair or restore to operating condition an aircraft that was broken, worn, damaged, defective, or malfunctioning. This a labor charge, with any non-separately stated property transferred in performing the service considered inconsequential. Commercial aircraft is excluded.", + "name": "Aircraft Repair" + }, + { + "id": "txcd_20080009", + "object": "tax_code", + "description": "A charge to repair or restore to operating condition an appliance (dishwasher, washing machine, refrigerator, etc.) that was broken, worn, damaged, defective, or malfunctioning. This a labor charge, with any non-separately stated property transferred in performing the service considered inconsequential.", + "name": "Appliance Repair" + }, + { + "id": "txcd_20080010", + "object": "tax_code", + "description": "A charge to repair or restore to operating condition computer hardware that was broken, worn, damaged, defective, or malfunctioning. This a labor charge, with any non-separately stated property transferred in performing the service considered inconsequential.", + "name": "Computer Repair" + }, + { + "id": "txcd_20080011", + "object": "tax_code", + "description": "A separately stated labor charge to cover a piece of furniture previously owned by the customer with new fabric coverings. Any materials transferred as part of the service are separately stated.", + "name": "Furniture Reupholstering" + }, + { + "id": "txcd_20080012", + "object": "tax_code", + "description": "A charge to repair or restore jewelry that was broken, worn, damaged, defective, or malfunctioning. This a labor charge, with any non-separately stated property transferred in performing the service considered inconsequential.", + "name": "Jewelry Repair" + }, + { + "id": "txcd_20080013", + "object": "tax_code", + "description": "A charge to repair or restore to operating condition a machine that was broken, worn, damaged, defective, or malfunctioning. This a labor charge, with any non-separately stated property transferred in performing the service considered inconsequential.", + "name": "Machine Repair" + }, + { + "id": "txcd_20090001", + "object": "tax_code", + "description": "A charge to perform an alteration on a item of clothing by the vendor of the article. The alteration is separately stated from the clothing, but contracted for at the time of the clothing purchase. Alterations could include hemming of a dress, shortening of pants, adjusting the waistline of a garment, etc.", + "name": "Garment Alterations - in conjunction with purchase of garment" + }, + { + "id": "txcd_20090002", + "object": "tax_code", + "description": "A charge to perform an alteration on a item of clothing by a service provider other than vendor of the article. The alteration is not linked to the clothing purchase. Alterations could include hemming of a dress, shortening of pants, adjusting the waistline of a garment, etc.", + "name": "Garment Alterations - separate from purchase of garment" + }, + { + "id": "txcd_20090003", + "object": "tax_code", + "description": "A charge to have files or documents shredded either onsite or offsite.", + "name": "Shredding Service" + }, + { + "id": "txcd_20090004", + "object": "tax_code", + "description": "A charge to a non-commercial customer for the cleaning or renovating clothing by immersion and agitation, spraying, vaporization, or immersion only, in a volatile, commercially moisture-free solvent or by the use of a volatile or inflammable product. This does not include the use of a self-service coin (or credit card) operated cleaning machine.", + "name": "Dry Cleaning" + }, + { + "id": "txcd_20090006", + "object": "tax_code", + "description": "A charge to create a finished good from materials supplied by the customer. This is a labor only charge to transform a customer's existing property.", + "name": "Fabrication" + }, + { + "id": "txcd_20090010", + "object": "tax_code", + "description": "A charge for the wrapping of articles in a box or bag with paper and other decorative additions. The charge is separately stated from the article. This is not relevant for non-US countries where packaging is added to the price of the product.", + "name": "Gift Wrapping - in conjunction with purchase of article" + }, + { + "id": "txcd_20090012", + "object": "tax_code", + "description": "A charge to provide laundry services to clothing. The business customer is the owner of the items being cleaned.", + "name": "Linen Services - Laundry only" + }, + { + "id": "txcd_20090015", + "object": "tax_code", + "description": "A charge separately stated from the sale of the product itself that entitles the purchaser to future repair and labor services to return the defective item of tangible personal property to its original state. The warranty contract is mandatory and is required to be purchased on conjunction with the purchased tangible personal property. Motor vehicle warranties are excluded.", + "name": "Warranty - Mandatory" + }, + { + "id": "txcd_20090018", + "object": "tax_code", + "description": "A charge separately stated from the sale of the product itself that entitles the purchaser to future repair and labor services to return the defective item of tangible personal property to its original state. The warranty contract is optional to the purchaser. Motor vehicle warranties are excluded.", + "name": "Warranty - Optional" + }, + { + "id": "txcd_20090022", + "object": "tax_code", + "description": "A charge separately stated from the sale of the product itself to bring the article to its finished state and in the condition specified by the buyer.", + "name": "Assembly - in conjunction with final purchase of article" + }, + { + "id": "txcd_20090023", + "object": "tax_code", + "description": "A charge to assemble goods for a purchaser who will later sell the assembled goods to end consumers.", + "name": "Assembly - prior to final purchase of article" + }, + { + "id": "txcd_20090024", + "object": "tax_code", + "description": "A charge to a non-commercial customer for the cleaning or renovating items other than clothing by immersion and agitation, spraying, vaporization, or immersion only, in a volatile, commercially moisture-free solvent or by the use of a volatile or inflammable product. This does not include the use of a self-service coin (or credit card) operated cleaning machine.", + "name": "Dry Cleaning - other than clothing" + }, + { + "id": "txcd_20090025", + "object": "tax_code", + "description": "A charge for the wrapping of articles in a box or bag with paper and other decorative additions. The wrapping not linked the purchased of the article(s) and is performed by a party other vendor of the article(s).", + "name": "Gift Wrapping - separate from purchase of article" + }, + { + "id": "txcd_20090026", + "object": "tax_code", + "description": "A charge to provide laundry services to linens and the like. This charge is not for clothing items. The business customer is the owner of the items being cleaned.", + "name": "Linen Services - Laundry only - other than clothing" + }, + { + "id": "txcd_20090027", + "object": "tax_code", + "description": "A charge to make customer provided meat suitable for human consumption, typically referred to a butcher or slaughter services.", + "name": "Meat Processing" + }, + { + "id": "txcd_20090028", + "object": "tax_code", + "description": "A charge for the printing, imprinting, lithographing, mimeographing, photocopying, and similar reproductions of various articles including mailers, catalogs, letterhead, envelopes, business cards, presentation folders, forms, signage, etc. The end result is the transfer of tangible personal property to the customer.", + "name": "Printing" + }, + { + "id": "txcd_20090029", + "object": "tax_code", + "description": "A charge for the printing, imprinting, or lithographing on any article supplied by the customer. The customer owns the article throughout the process. This a labor charge, with any non-separately stated property transferred in performing the service considered inconsequential.", + "name": "Printing - customer supplied articles" + }, + { + "id": "txcd_20090030", + "object": "tax_code", + "description": "A charge to preserve an animal's body via mounting or stuffing, for the purpose of display or study. The customer provide the animal. This a labor charge, with any non-separately stated property transferred in performing the service considered inconsequential.", + "name": "Taxidermy Services" + }, + { + "id": "txcd_20090031", + "object": "tax_code", + "description": "A charge for engraving services performed on goods owned by the purchaser. This is a standalone service not done in conjunction with the sale of the goods.", + "name": "Engraving Services - separate from purchase of article" + }, + { + "id": "txcd_20090032", + "object": "tax_code", + "description": "A charge for engraving a good, such as jewelry, in conjunction with the retail purchase of that item. The charge for the engraving services is separately stated from the charge for the good being engraved.", + "name": "Engraving Services - in conjunction with purchase of article" + }, + { + "id": "txcd_20091000", + "object": "tax_code", + "description": "An agreement between a service contract provider and a customer where the service provider agrees to repair or replace certain parts on a motor vehicle that has had a failure after the original manufacturer’s warranty has expired. Commonly referred to as extended warranty or protection plan. Contract covers both parts and labor, and is made at the same time as Motor Vehicle purchase but is separately stated.", + "name": "Optional Extended Warranty Contract on Motor Vehicle" + }, + { + "id": "txcd_20091001", + "object": "tax_code", + "description": "An agreement between a service contract provider and a customer for prepaid routine maintenance (e.g. oil changes, tire rotations, air filter, spark plugs, transmission and transfer case fluid changes) for a motor vehicle. Contract covers both parts and labor and is made at the same time as Motor Vehicle purchase but is separately stated.", + "name": "Optional Maintenance Contract on Motor Vehicle" + }, + { + "id": "txcd_20091002", + "object": "tax_code", + "description": "An agreement between a service contract provider and a customer for prepaid routine maintenance (e.g. oil changes, tire rotations, air filter, spark plugs, transmission and transfer case fluid changes) of a leased motor vehicle. Contract covers both parts and labor.", + "name": "Optional Extended Warranty Contract on Leased Motor Vehicle" + }, + { + "id": "txcd_20091003", + "object": "tax_code", + "description": "An agreement between a service contract provider and a customer where the service provider agrees to repair or replace certain parts on a leased motor vehicle that has had a failure after the original manufacturer’s warranty has expired. Commonly referred to as extended warranty or protection plan. Contract covers both parts and labor.", + "name": "Optional Maintenance Contract on Leased Motor Vehicle" + }, + { + "id": "txcd_20091004", + "object": "tax_code", + "description": "An agreement between a service contract provider and a customer where the service provider agrees to repair or replace certain parts on a motor vehicle that has had a failure after the original manufacturer’s warranty has expired. Commonly referred to as extended warranty or protection plan. Contract covers both parts and labor and is made after the motor vehicle purchase.", + "name": "Optional Extended Warranty Contract on Motor Vehicle - After Market" + }, + { + "id": "txcd_20091005", + "object": "tax_code", + "description": "An agreement between a service contract provider and a customer for prepaid routine maintenance (e.g. oil changes, tire rotations, air filter, spark plugs, transmission and transfer case fluid changes) of a motor vehicle. Contract covers both parts and labor and is made after the motor vehicle purchase.", + "name": "Optional Maintenance Contract on Motor Vehicle - After Market" + }, + { + "id": "txcd_20100001", + "object": "tax_code", + "description": "Services under armed private security guard to transport from one place to another any currency, jewels, stocks, bonds, paintings, or other valuables of any kind in a specially equipped motor vehicle that offers a high degree of security. It is assumed that the transport takes place within one country.", + "name": "Armored Car Services" + }, + { + "id": "txcd_30011000", + "object": "tax_code", + "description": "Apparel and footwear for people made for general use.", + "name": "Clothing and footwear" + }, + { + "id": "txcd_30011002", + "object": "tax_code", + "description": "The clasp used to fasten a belt, sold separately fro the belt.", + "name": "Belt Buckle" + }, + { + "id": "txcd_30011003", + "object": "tax_code", + "description": "A belt is band of flexible material worn around a person's waist for supporting clothing. Suspenders are a pair of straps that pass over the shoulders and fasten to the waistband of a pair of trousers or a skirt at the front and back to hold it up.", + "name": "Belts or Suspenders" + }, + { + "id": "txcd_30011015", + "object": "tax_code", + "description": "A closed tube of fabric worn about the neck for warmth. It can be pulled over mouth and nose to protect against wind, dust, or other particles.", + "name": "Neck Gaiter" + }, + { + "id": "txcd_30011020", + "object": "tax_code", + "description": "A set of standardized clothes worn primarily during attendnce at an educational institution.", + "name": "School Uniforms" + }, + { + "id": "txcd_30011028", + "object": "tax_code", + "description": "Clothing or footwear, such as coats, hats, ear muffs, gloves, etc. worn on the human body made of imitation fur materials.", + "name": "Fur Clothing - Synthetic" + }, + { + "id": "txcd_30011034", + "object": "tax_code", + "description": "A broad strip of cloth that covers the shoulders, neck, or head for warmth or appearance.", + "name": "Scarves" + }, + { + "id": "txcd_30011045", + "object": "tax_code", + "description": "A necktie, or simply a tie, is a piece of cloth worn by men and women for decorative purposes around the neck, resting under the shirt collar and knotted at the throat, and often draped down the chest.", + "name": "Neckties" + }, + { + "id": "txcd_30011100", + "object": "tax_code", + "description": "Clothing designed for, and not normally worn except while attending, a formal function, including tuxedos, bridal gowns, and evening gowns.", + "name": "Formal or Special Occasion Wear" + }, + { + "id": "txcd_30011200", + "object": "tax_code", + "description": "Children's clothing and footwear including general purpose articles intended to be worn by a person based on certain size or age requirements.", + "name": "Children's clothing and footwear" + }, + { + "id": "txcd_30011201", + "object": "tax_code", + "description": "Clothing or footwear, such as coats, hats, ear muffs, gloves, etc. worn on the human body made of the real pelt of an animal.", + "name": "Fur Clothing" + }, + { + "id": "txcd_30021000", + "object": "tax_code", + "description": "Clothing, footwear, and accessories worn on a person's body while participating in recreational or sporting activities, and which are not typical for everyday usage. Please select a more granular product tax category where appropriate.", + "name": "Athletic Activity Clothing" + }, + { + "id": "txcd_30021001", + "object": "tax_code", + "description": "A band of absorbent material worn around the head or wrist to soak up sweat, especially by participants in physical activity.", + "name": "Sweat Bands" + }, + { + "id": "txcd_30021200", + "object": "tax_code", + "description": "Bathing suits, swim trunks, or bathing costumes meant to be worn in or near water.", + "name": "Swim suits" + }, + { + "id": "txcd_30030001", + "object": "tax_code", + "description": "Clothing worn while performing an employment role, such as paramedic uniforms, firefighter uniforms, military uniforms, medical attire, law enforcement attire, etc.", + "name": "Occupational Uniforms" + }, + { + "id": "txcd_30031004", + "object": "tax_code", + "description": "Clothing and related covering material that is worn within cleanrooms, which require controlled low levels of environmental contaminants such as dusts, microbes, vapors, and aerosol particles.", + "name": "Cleanroom Apparel" + }, + { + "id": "txcd_30031041", + "object": "tax_code", + "description": "High-visibility warning clothing to signal the presence of the user in places and situations which may cause potential threats to their health and safety.", + "name": "Reflective Apparel" + }, + { + "id": "txcd_30031404", + "object": "tax_code", + "description": "Clothing for human wear and designed as protection of the wearer against injury or disease or as protections against damage or injury of other persons or property but not suitable for general use.", + "name": "Protective/Safety Clothing" + }, + { + "id": "txcd_30031405", + "object": "tax_code", + "description": "Clothing worn by an employee during the course of his employment for protection against injury or disease or as protection against damage or injury of other persons or property. Such clothing items are not suitable for general use.", + "name": "Protective/Safety Clothing - Occupational Use" + }, + { + "id": "txcd_30031406", + "object": "tax_code", + "description": "Footwear for human wear and designed as protection of the wearer against injury or disease or as protections against damage or injury of other persons or property but not suitable for general use.", + "name": "Protective/Safety Footwear" + }, + { + "id": "txcd_30031407", + "object": "tax_code", + "description": "Foowear worn by an employee during the course of his employment for protection against injury or disease or as protection against damage or injury of other persons or property. Such clothing items are not suitable for general use.", + "name": "Protective/Safety Footwear - Occupational Use" + }, + { + "id": "txcd_30031408", + "object": "tax_code", + "description": "Equipment type accessories (such as helmets, eyeshields, facemasks, pads, etc) for human wear and designed as protection of the wearer against injury or disease or as protections against damage or injury of other persons or property but not suitable for general use.", + "name": "Protective/Safety Equipment" + }, + { + "id": "txcd_30031409", + "object": "tax_code", + "description": "Equipment type accessories (such as helmets, eyeshields, facemasks, pads, etc) worn by an employee during the course of his employment for protection against injury or disease or as protection against damage or injury of other persons or property. Such clothing items are not suitable for general use.", + "name": "Protective/Safety Equipment - Occupational Use" + }, + { + "id": "txcd_30040003", + "object": "tax_code", + "description": "A reusable mask made of common fabrics worn over the mouth and nose to act as personal protection from airborne particles or pathogens.", + "name": "Cloth Face Masks" + }, + { + "id": "txcd_30040005", + "object": "tax_code", + "description": "Masks and accessories sold separately to be worn for costume purposes for seasonal or cultural holidays or celebrations.", + "name": "Costume Masks and Accessories" + }, + { + "id": "txcd_30040006", + "object": "tax_code", + "description": "Apparel worn by a person for seasonal or cultural holidays or celebrations, rather than for everday wear.", + "name": "Costumes" + }, + { + "id": "txcd_30051302", + "object": "tax_code", + "description": "Gloves for general use (e.g., leather), but not gloves used for sporting (e.g., baseball, football gloves).", + "name": "Gloves (general use)" + }, + { + "id": "txcd_30060001", + "object": "tax_code", + "description": "Bags including handbags, purses, coin purses, fanny packs / bum bags, and diaper / nappy bags.", + "name": "Purses and Handbags" + }, + { + "id": "txcd_30060004", + "object": "tax_code", + "description": "A small usually square piece of cloth used for usually personal purposes (such as blowing the nose) or as a clothing accessory.", + "name": "Handkerchiefs" + }, + { + "id": "txcd_30060005", + "object": "tax_code", + "description": "Hair notions such as headbands, barrettes, bows, clips, and pins.", + "name": "Hair Accessories" + }, + { + "id": "txcd_30060006", + "object": "tax_code", + "description": "A shaped covering for the head worn for warmth, as a fashion item, or as part of a uniform.", + "name": "Hats" + }, + { + "id": "txcd_30060007", + "object": "tax_code", + "description": "Jewlery such as necklaces, earrings, rings, and more.", + "name": "Jewelry" + }, + { + "id": "txcd_30060010", + "object": "tax_code", + "description": "Articles, although worn on the body, which are not considered clothing or footwear. Examples include armbands, pocket protectors, shoulder boards, sleep masks, etc. Please select a more granular product tax category where appropriate.", + "name": "Non-Clothing Accessories" + }, + { + "id": "txcd_30060011", + "object": "tax_code", + "description": "A plastic cap worn in the shower to keep the hair dry.", + "name": "Shower Caps" + }, + { + "id": "txcd_30060013", + "object": "tax_code", + "description": "Umbrellas.", + "name": "Umbrellas" + }, + { + "id": "txcd_30060014", + "object": "tax_code", + "description": "Wigs, Hairpieces, Hair extensions.", + "name": "Wigs, Hairpieces, Hair extensions" + }, + { + "id": "txcd_30060015", + "object": "tax_code", + "description": "Suitcases and baggage typically used for transporting travellers' belongings.", + "name": "Luggage" + }, + { + "id": "txcd_30060016", + "object": "tax_code", + "description": "A small timepiece worn typically on a strap on one's wrist.", + "name": "Watches" + }, + { + "id": "txcd_30060017", + "object": "tax_code", + "description": "Sunglasses with a lens containing no lens powers to correct vision problems.", + "name": "Sunglasses - Non-prescription" + }, + { + "id": "txcd_30060018", + "object": "tax_code", + "description": "A digital wristwatch that provides many other features besides timekeeping. Like a smartphone, a smartwatch has a touchscreen display, which allows you to perform actions by tapping or swiping on the screen. Smartwatches include allow access to apps, similar to apps for smartphones and tablets.", + "name": "Watches - Smart" + }, + { + "id": "txcd_30060019", + "object": "tax_code", + "description": "A flat, rectangular case with a handle, often of leather, for carrying books, papers, etc.", + "name": "Briefcases" + }, + { + "id": "txcd_30060020", + "object": "tax_code", + "description": "A piece of clothing that you wear over the front of other clothes to keep the clothes clean...eg. a kitchen apron.", + "name": "Aprons" + }, + { + "id": "txcd_30060021", + "object": "tax_code", + "description": "A triangular or square piece of cloth tied around the head, face or neck for protective or decorative purposes.", + "name": "Bandannas" + }, + { + "id": "txcd_30060101", + "object": "tax_code", + "description": "A small folding case for carrying paper money, credit cards and other flat objects.", + "name": "Wallets" + }, + { + "id": "txcd_30070001", + "object": "tax_code", + "description": "A bicycle helmet that is NOT marketed and labeled as being intended for youth.", + "name": "Bicycle Helmets - Adult" + }, + { + "id": "txcd_30070002", + "object": "tax_code", + "description": "A bicycle helmet marketed and labeled as being intended for youth.", + "name": "Bicycle Helmets - Youth" + }, + { + "id": "txcd_30070003", + "object": "tax_code", + "description": "Footwear worn exclusively while participating in ballet or tap dancing.", + "name": "Ballet or Tap Shoes" + }, + { + "id": "txcd_30070004", + "object": "tax_code", + "description": "Gloves worn by baseball/softball participants while hitting.", + "name": "Baseball Batting Gloves" + }, + { + "id": "txcd_30070005", + "object": "tax_code", + "description": "Gloves worn while rolling a bowling ball to the support the muscles in the hand and wrist, and to provide extra padding or grip.", + "name": "Bowling Gloves" + }, + { + "id": "txcd_30070006", + "object": "tax_code", + "description": "Footwear uniquely designed to be worn while bowling, having a slick smooth sole meant for gliding.", + "name": "Bowling Shoes" + }, + { + "id": "txcd_30070007", + "object": "tax_code", + "description": "A heavily padded mitten worn in boxing.", + "name": "Boxing Gloves" + }, + { + "id": "txcd_30070008", + "object": "tax_code", + "description": "Athletic footwear having cleats or spikes to improve traction on various playing field surfaces.", + "name": "Cleated or Spiked Shoes" + }, + { + "id": "txcd_30070009", + "object": "tax_code", + "description": "Thin, lightweight gloves designed mainly for wide receivers in football to help with grip while catching.", + "name": "Football Receiver Gloves" + }, + { + "id": "txcd_30070010", + "object": "tax_code", + "description": "A glove worn by golfers to give a firm grip on the handle of the golf club.", + "name": "Golf Gloves" + }, + { + "id": "txcd_30070011", + "object": "tax_code", + "description": "Footwear designed for golf course play, usually spiked (featuring actual cleats on the outsole) or spikeless (featuring a flat outsole with rubber studs or dimples in place of spikes).", + "name": "Golf Shoes" + }, + { + "id": "txcd_30070012", + "object": "tax_code", + "description": "Ice Skates.", + "name": "Ice Skates" + }, + { + "id": "txcd_30070013", + "object": "tax_code", + "description": "A inflatable sleeveless jacket worn to keep a person afloat when in danger of drowning.", + "name": "Life Vests" + }, + { + "id": "txcd_30070014", + "object": "tax_code", + "description": "Clothing apparel/uniforms that are specific to the training and competition of various martial arts.", + "name": "Martial Arts Attire" + }, + { + "id": "txcd_30070015", + "object": "tax_code", + "description": "A helmet designed for used when opertating a motorcycle, atv, snowmobile, etc.", + "name": "Motorcycle Helmets" + }, + { + "id": "txcd_30070017", + "object": "tax_code", + "description": "A protective device for the mouth that covers the teeth and gums to prevent and reduce injury to the teeth, arches, lips and gums.", + "name": "Mouth Guards" + }, + { + "id": "txcd_30070018", + "object": "tax_code", + "description": "Roller Skates or Roller Blades.", + "name": "Roller Skates or Roller Blades" + }, + { + "id": "txcd_30070019", + "object": "tax_code", + "description": "A stiff pad worn typically worn under socks to protect the shins when playing soccer, hockey, and other sports.", + "name": "Shin Guards" + }, + { + "id": "txcd_30070020", + "object": "tax_code", + "description": "A hard protective pad for the shoulders used in certain sports, such as ice hockey and football.", + "name": "Shoulder Pads for Sports" + }, + { + "id": "txcd_30070021", + "object": "tax_code", + "description": "A rigid padded shoe that extends above the ankle, is secured to the foot, and is locked into position in a ski binding.", + "name": "Ski Boots" + }, + { + "id": "txcd_30070022", + "object": "tax_code", + "description": "Athletic uniforms not containing protective padding or gear.", + "name": "Sport Uniforms" + }, + { + "id": "txcd_30070023", + "object": "tax_code", + "description": "Flippers on the foot or leg and made from rubber or plastic, to aid movement through the water in water sports.", + "name": "Swim Fins" + }, + { + "id": "txcd_30070024", + "object": "tax_code", + "description": "Goggles to protect the eyes from material in the water, while swimming.", + "name": "Swim Goggles" + }, + { + "id": "txcd_30070025", + "object": "tax_code", + "description": "A close-fitting garment covering most of the body worn for warmth in water sports or diving.", + "name": "Wetsuit" + }, + { + "id": "txcd_30070026", + "object": "tax_code", + "description": "An elastic support for the male genitals, worn especially in athletic or other strenuous activity.", + "name": "Athletic Supporter" + }, + { + "id": "txcd_30070028", + "object": "tax_code", + "description": "Vests designed primarily for wear while hunting, but which are also adaptable to everyday use.", + "name": "Hunting Vests" + }, + { + "id": "txcd_30070029", + "object": "tax_code", + "description": "Clothing, footwear, and accessories for wear while hunting, but that are not adaptable to everyday use.", + "name": "Hunting Activity Clothing" + }, + { + "id": "txcd_30071000", + "object": "tax_code", + "description": "Protective gear worn about the human body while participating in athletic, recreational, or sporting activities, and which are not typical for everyday usage. Please select a more granular product tax category where appropriate.", + "name": "Sports Activities Equipment" + }, + { + "id": "txcd_30080001", + "object": "tax_code", + "description": "Button covers are clothing accessories that slip over simple buttons for stylistic adornment.", + "name": "Button Covers" + }, + { + "id": "txcd_30080002", + "object": "tax_code", + "description": "Items items used to make or repair clothing, including buttons, clasps, fabric, thread, yarn, snaps, hooks, zippers, sequins, fabric dye, and the like.", + "name": "Component Clothing Items" + }, + { + "id": "txcd_30090005", + "object": "tax_code", + "description": "Rubber boots worn over regular footwear to prevent them from wet or soiled.", + "name": "Overshoes" + }, + { + "id": "txcd_30090009", + "object": "tax_code", + "description": "Over the counter inserts or insoles for in-shoe foot comfort.", + "name": "Shoe Inserts" + }, + { + "id": "txcd_30090010", + "object": "tax_code", + "description": "Shoelaces.", + "name": "Shoelaces" + }, + { + "id": "txcd_31020001", + "object": "tax_code", + "description": "A piece of cloth or plastic fastened around a baby's neck to keep their clothes clean while eating.", + "name": "Bibs" + }, + { + "id": "txcd_31020002", + "object": "tax_code", + "description": "Blankets made to stretch to tightly around babies, and may have features like velcro or specially designed shapes or flaps to facilitate swaddle wrapping.", + "name": "Infant Swaddles" + }, + { + "id": "txcd_31020003", + "object": "tax_code", + "description": "A small lightweight blanket used to wrap an infant, eg. after bathing.", + "name": "Infant Receiving Blankets" + }, + { + "id": "txcd_31030001", + "object": "tax_code", + "description": "Scented talcum powder or corn starch for use on babies' skin or an ointment or paste for protecting baby's skin.", + "name": "Baby powder and diaper cream" + }, + { + "id": "txcd_31030003", + "object": "tax_code", + "description": "Non medicated disposable moistened cleansing wipes. These products do not contain a \"drug facts\" panel or a statement of active ingredients.", + "name": "Baby wipes" + }, + { + "id": "txcd_31031202", + "object": "tax_code", + "description": "Disposable diapers for infants.", + "name": "Infant diapers" + }, + { + "id": "txcd_31031203", + "object": "tax_code", + "description": "Absorbent single use underpants worn by children during potty training as a transition between diapers and cloth underwear.", + "name": "Disposable Toddler Training Pants" + }, + { + "id": "txcd_31031204", + "object": "tax_code", + "description": "One time use diaper liners for capturing solid waste for ease of disposal.", + "name": "Diaper Liners - Single Use" + }, + { + "id": "txcd_31031205", + "object": "tax_code", + "description": "Infant washable/reusable cloth diapers.", + "name": "Cloth Diapers" + }, + { + "id": "txcd_31040001", + "object": "tax_code", + "description": "A bottle with a teat or nipple in the US made for babies to drink from.", + "name": "Baby bottles and nipples" + }, + { + "id": "txcd_31040002", + "object": "tax_code", + "description": "A mechanical device that lactating women use to extract milk from their breasts.", + "name": "Breast pumps" + }, + { + "id": "txcd_31070001", + "object": "tax_code", + "description": "Baby or child car seat, including boosters.", + "name": "Baby or child car seat" + }, + { + "id": "txcd_32010001", + "object": "tax_code", + "description": "Electronic devices which measure the glucose level in human blood (e.g., blood sugar meters, glucose meters or glucometers).", + "name": "Blood glucose monitoring devices" + }, + { + "id": "txcd_32010002", + "object": "tax_code", + "description": "Equipment, devices or chemical reagents which may be used by a diabetic to test or monitor blood or urine.", + "name": "Diabetic testing equipment and supplies" + }, + { + "id": "txcd_32020002", + "object": "tax_code", + "description": "A compound, substance or preparation intended for use in the diagnosis, cure, mitigation, treatment, or prevention of disease and dispensed legally without a prescription.", + "name": "Drugs - over the counter" + }, + { + "id": "txcd_32030001", + "object": "tax_code", + "description": "Male or female condoms used to prevent pregnacy or exposure to sexually transmitted diseases.", + "name": "Condoms" + }, + { + "id": "txcd_32040005", + "object": "tax_code", + "description": "Feminine hygiene product designed to absorb the menstrual flow.", + "name": "Tampons, pads, and sanitary napkins" + }, + { + "id": "txcd_32050001", + "object": "tax_code", + "description": "Adult disposable diapers.", + "name": "Adult disposable diapers" + }, + { + "id": "txcd_32050005", + "object": "tax_code", + "description": "A mask worn on an individual's face that is not intended for repeated use and is typically discarded after each use.", + "name": "Disposable face masks" + }, + { + "id": "txcd_32050006", + "object": "tax_code", + "description": "Soaps, cleaning solutions, shampoo, toothpaste, mouthwash, antiperspirants, suntan lotions, etc.", + "name": "Grooming and hygiene products" + }, + { + "id": "txcd_32050007", + "object": "tax_code", + "description": "Soaps, cleaning solutions, shampoo, toothpaste, mouthwash, antiperspirants, suntan lotions, and sunscreens that contain medicinal ingredients as described on the product's label.", + "name": "Grooming and hygiene products - medicated" + }, + { + "id": "txcd_32050009", + "object": "tax_code", + "description": "A liquid, gel, foam, or wipe generally used to decrease infectious agents on the hands that contain a \"drug facts\" panel or a statement of active ingredients.", + "name": "Hand sanitizers" + }, + { + "id": "txcd_32050012", + "object": "tax_code", + "description": "Topical medicated solutions for treating skin acne that contain a \"drug facts\" panel or a statement of active ingredients.", + "name": "Medicated acne treatments" + }, + { + "id": "txcd_32050013", + "object": "tax_code", + "description": "Lotions, moisturizers, creams, powders, sprays, etc that promote optimal skin health that do not contain a \"drug facts\" panel or a statement of active ingredients.", + "name": "Skin care products" + }, + { + "id": "txcd_32050014", + "object": "tax_code", + "description": "Lotions, moisturizers, creams, powders, sprays, etc that promote optimal skin health and contain a \"drug facts\" panel or a statement of active ingredients.", + "name": "Skin care products -- medicated" + }, + { + "id": "txcd_32050015", + "object": "tax_code", + "description": "Over-the-counter nicotine replacement products, including patches, gum, lozenges, sprays and inhalers that contain a \"drug facts\" panel or a statement of active ingredients.", + "name": "Smoking cessation products" + }, + { + "id": "txcd_32050017", + "object": "tax_code", + "description": "Toilet tissue or paper primarily used for the removal of feces.", + "name": "Toilet tissue" + }, + { + "id": "txcd_32050018", + "object": "tax_code", + "description": "A small brush with a long handle, used for cleaning the teeth.", + "name": "Toothbrush" + }, + { + "id": "txcd_32050019", + "object": "tax_code", + "description": "A thick, soft, moist substance used on a brush for cleaning one's teeth.", + "name": "Toothpaste" + }, + { + "id": "txcd_32060001", + "object": "tax_code", + "description": "Equipment primarily and customarily used to serve a medical purpose and generally is not useful to a person in the absence of illness or injury and is not worn in or on the body (e.g., hospital beds, commode chairs, bed pans, IV poles, etc.).", + "name": "Durable medical equipment" + }, + { + "id": "txcd_32070003", + "object": "tax_code", + "description": "Item that is applied directly to or inside a wound to absorb wound drainage, protect healing tissue, maintain a moist or dry wound environment (as appropriate), or prevent bacterial contamination.", + "name": "Wound care supplies -- bandages, dressings, gauze" + }, + { + "id": "txcd_32070004", + "object": "tax_code", + "description": "An item that to treat a wound applied directly. These supplies contain medication such as an antibiotic ointment and are a labeled with a \"drug facts\" panel or a statement of active ingredients.", + "name": "Wound care supplies -- bandages, dressings, gauze (medicated)" + }, + { + "id": "txcd_32070018", + "object": "tax_code", + "description": "A collection of mixed supplies and equipment that is used to give medical treatment. Exempt or low rated qualifying medicinal items (e.g., over the counter drugs) make up 51% or more of the value of the kit.", + "name": "First aid kits" + }, + { + "id": "txcd_32070019", + "object": "tax_code", + "description": "Single use disposable gloves (latex, nitrile, vinyl, etc) not used for medical purposes.", + "name": "Gloves - Disposable (non medical use)" + }, + { + "id": "txcd_32070020", + "object": "tax_code", + "description": "Single use disposable gloves (latex, nitrile, vinyl, etc) that have an application in a first aid or medical setting. This code is intended for sales directly to end consumers that are NOT healthcare providers.", + "name": "Gloves - Disposable (medical use)" + }, + { + "id": "txcd_32070028", + "object": "tax_code", + "description": "Items for use in cure, treatment or diagnosis of injury, illness, disease or incapacity, and which is consumed during the use.", + "name": "Medical supplies - consumable" + }, + { + "id": "txcd_32080001", + "object": "tax_code", + "description": "Aids that can increase, improve, or assist mobility in the bathroom such as raised toilet seat, tub & shower stool, hand rails, grab bars, etc.", + "name": "Bath aids" + }, + { + "id": "txcd_32080003", + "object": "tax_code", + "description": "Equipment which is primarily and customarily used to provide or increase the ability to move from one place to another and is not generally used by persons with normal mobility (e.g., crutches, walkers, and wheelchairs).", + "name": "Mobility enhancing equipment" + }, + { + "id": "txcd_32080004", + "object": "tax_code", + "description": "Parts for items such as crutch pads, walker tips, cane tips, crutch tips, etc.", + "name": "Repair & replacement parts for mobility enhancing equipment" + }, + { + "id": "txcd_32090003", + "object": "tax_code", + "description": "Corrective lenses, including eyeglasses and contact lenses, sold without a prescription order of a licensed professional.", + "name": "Corrective lenses" + }, + { + "id": "txcd_32090005", + "object": "tax_code", + "description": "Batteries specifically labeled and designed to operate hearing aid devices, sold without a prescription order of a licensed professional.", + "name": "Hearing aid batteries" + }, + { + "id": "txcd_32090006", + "object": "tax_code", + "description": "Artificial devices to correct or alleviate hearing deficiencies, sold without a prescription order of a licensed professional.", + "name": "Hearing aids" + }, + { + "id": "txcd_32090007", + "object": "tax_code", + "description": "A replacement, corrective, or supportive device, worn on or in the body to artificially replace a missing portion of the body, prevent or correct physical deformity, etc. sold without prescription order of a licensed professional.", + "name": "Prosthetic device" + }, + { + "id": "txcd_32100006", + "object": "tax_code", + "description": "One-time use medical thermometers for oral, temporal and forehead, or rectal body temperature diagnostics.", + "name": "Medical thermometers -- disposable" + }, + { + "id": "txcd_32100007", + "object": "tax_code", + "description": "Multiple use medical thermometers for oral, temporal and forehead, or rectal body temperature diagnostics.", + "name": "Medical thermometers -- reusable" + }, + { + "id": "txcd_32100008", + "object": "tax_code", + "description": "Products carrying an ENERGY STAR rating (e.g., light bulbs, appliances, etc.).", + "name": "ENERGY STAR products" + }, + { + "id": "txcd_33020001", + "object": "tax_code", + "description": "Ceiling Fans carrying an Energy Star rating.", + "name": "Ceiling fans - Energy Star" + }, + { + "id": "txcd_33020002", + "object": "tax_code", + "description": "Domestic air conditioning (central or room) systems carrying Energy Star rating.", + "name": "Air conditioners - Energy Star" + }, + { + "id": "txcd_33020003", + "object": "tax_code", + "description": "Domestic gas or oil furnaces carrying an Energy Star rating.", + "name": "Furnaces - Energy Star" + }, + { + "id": "txcd_33020004", + "object": "tax_code", + "description": "Domestic air source heat pumps carrying Energy Star rating.", + "name": "Heat Pumps - Energy Star" + }, + { + "id": "txcd_33020005", + "object": "tax_code", + "description": "Domestic water heater carrying Energy Star rating.", + "name": "Water heater - Energy Star" + }, + { + "id": "txcd_33020006", + "object": "tax_code", + "description": "Domestic appliance carrying an Energy Star Rating which reduces and maintains the level of humidity in the air.", + "name": "Dehumidifier - Energy Star" + }, + { + "id": "txcd_33020007", + "object": "tax_code", + "description": "Domestic gas or oil boilers for space or water heating carrying an Energy Star rating.", + "name": "Boilers - Energy Star" + }, + { + "id": "txcd_33020008", + "object": "tax_code", + "description": "An in home programmable thermostat, such as a WiFi enabled smart thermostat, carrying an Energy Star rating.", + "name": "Programmable Wall Thermostat - Energy Star" + }, + { + "id": "txcd_33020009", + "object": "tax_code", + "description": "Domestic standard size refrigerators carrying Energy Star rating.", + "name": "Refrigerators - Energy Star" + }, + { + "id": "txcd_33020010", + "object": "tax_code", + "description": "Domestic dish washing appliances carrying Energy Star rating.", + "name": "Dishwashers - Energy Star" + }, + { + "id": "txcd_33020011", + "object": "tax_code", + "description": "Domestic freezers carrying Energy Star rating.", + "name": "Freezers- Energy Star" + }, + { + "id": "txcd_33020012", + "object": "tax_code", + "description": "Domestic clothes washing appliances carrying Energy Star rating.", + "name": "Clothes Washing Machine - Energy Star" + }, + { + "id": "txcd_33020013", + "object": "tax_code", + "description": "Domestic clothes drying appliances carrying Energy Star rating.", + "name": "Clothes drying machine - Energy Star" + }, + { + "id": "txcd_33020014", + "object": "tax_code", + "description": "Non-electric can opener.", + "name": "Can opener - manual" + }, + { + "id": "txcd_33020200", + "object": "tax_code", + "description": "Products used for conservation or efficient use of water to be environmental friendly.", + "name": "Water efficiency products" + }, + { + "id": "txcd_33030001", + "object": "tax_code", + "description": "Single or multi-pack AA, AAA, c, D, 6-volt or 9-volt batteries, excluding automobile or boat batteries.", + "name": "Alkaline Batteries" + }, + { + "id": "txcd_33031001", + "object": "tax_code", + "description": "Mobile phone batteries.", + "name": "Mobile Phone Batteries" + }, + { + "id": "txcd_33080201", + "object": "tax_code", + "description": "Wipes used in the process of eliminating or reducing harmful microorganisms from inanimate objects and surfaces.", + "name": "Disinfectant wipes" + }, + { + "id": "txcd_33080202", + "object": "tax_code", + "description": "Disposable household paper products such as paper towels, napkins, tissues, plates, cups, bags, etc.", + "name": "Disposable household paper products" + }, + { + "id": "txcd_33080300", + "object": "tax_code", + "description": "Includes blankets, pillows, bed linens/sheets, comforters, towels, wash cloths, shower curtains and bath mats.", + "name": "Household linens, bedding, towels, and shower curtains" + }, + { + "id": "txcd_33100001", + "object": "tax_code", + "description": "Landscape soil, mulch, compost - residential.", + "name": "Landscape Soil/ Mulch/ Compost - Residential" + }, + { + "id": "txcd_33100101", + "object": "tax_code", + "description": "Chemicals for use in non-commercial gardens to produce foods for human consumption.", + "name": "Insecticides, herbicides, fungicides" + }, + { + "id": "txcd_33100200", + "object": "tax_code", + "description": "Any substance such as manure or a mixture of nitrates used to make soil more fertile.", + "name": "Plant food" + }, + { + "id": "txcd_33110001", + "object": "tax_code", + "description": "Standard incandescent light bulbs carrying an Energy Star rating.", + "name": "Incandescent Light Bulbs - Energy Star" + }, + { + "id": "txcd_33110002", + "object": "tax_code", + "description": "Compact Fluorescent light (CFL) bulbs carrying an Energy Star rating.", + "name": "Compact Fluorescent Light Bulbs - Energy Star" + }, + { + "id": "txcd_33110003", + "object": "tax_code", + "description": "Light emitting diode (LED) bulbs carrying an Energy Star rating.", + "name": "LED Bulbs - Energy Star" + }, + { + "id": "txcd_33110004", + "object": "tax_code", + "description": "Portable self-powered or battery powered light sources, including flashlights, lanterns, emergency glow sticks or light sticks.", + "name": "Portable Light Sources" + }, + { + "id": "txcd_33110005", + "object": "tax_code", + "description": "Candles to be used a light source.", + "name": "Candles" + }, + { + "id": "txcd_33120000", + "object": "tax_code", + "description": "Qualifying items for purposes of certain sales tax holidays such as cell phone batteries, cell phone chargers, and two-way radios.", + "name": "Storm preparedness items" + }, + { + "id": "txcd_33120001", + "object": "tax_code", + "description": "Portable self-powered or battery powered radio, two-way radio, weatherband radio.", + "name": "Portable Radios" + }, + { + "id": "txcd_33120002", + "object": "tax_code", + "description": "Non-electric food or beverage cooler.", + "name": "Food Storage Cooler" + }, + { + "id": "txcd_33120003", + "object": "tax_code", + "description": "Smoke Detectors.", + "name": "Smoke Detectors" + }, + { + "id": "txcd_33120004", + "object": "tax_code", + "description": "Carbon Monoxide Detectors.", + "name": "Carbon Monoxide Detectors" + }, + { + "id": "txcd_33120005", + "object": "tax_code", + "description": "Fire Extinguishers.", + "name": "Fire Extinguishers" + }, + { + "id": "txcd_33120006", + "object": "tax_code", + "description": "Portable fuel container.", + "name": "Portable Fuel Container" + }, + { + "id": "txcd_33120007", + "object": "tax_code", + "description": "Non-electric water container to store water for emergency usage.", + "name": "Water storage container" + }, + { + "id": "txcd_33120008", + "object": "tax_code", + "description": "Artificial ice, blue ice, ice packs, reusable ice.", + "name": "Artificial Ice" + }, + { + "id": "txcd_33120009", + "object": "tax_code", + "description": "Tarps, plastic sheeting, plastic drop cloths, waterproof sheeting.", + "name": "Tarpaulins and Weatherproof Sheeting" + }, + { + "id": "txcd_33120010", + "object": "tax_code", + "description": "Portable generator used to provide light or communications or power appliances during a power outage.", + "name": "Portable Generator" + }, + { + "id": "txcd_33120011", + "object": "tax_code", + "description": "Power cords used to connect electrical equipment and devices to power sockets.", + "name": "Power cords" + }, + { + "id": "txcd_33120012", + "object": "tax_code", + "description": "An hand held tool with a bladed head on a handle used for hewing, cleaving, chopping, etc.", + "name": "Axes/Hatchets" + }, + { + "id": "txcd_33120013", + "object": "tax_code", + "description": "Gas-powered chainsaw.", + "name": "Garden chainsaw" + }, + { + "id": "txcd_33120014", + "object": "tax_code", + "description": "Chainsaw accessories include chains, lubricants, motor oil, chain sharpeners, bars, wrenches, carrying cases, repair parts, safety apparel.", + "name": "Chainsaw accessories" + }, + { + "id": "txcd_33120015", + "object": "tax_code", + "description": "Plywood, window film, storm shutters, hurricane shutters or other materials specifically designed to protect windows.", + "name": "Storm shutters/window protection devices" + }, + { + "id": "txcd_33120016", + "object": "tax_code", + "description": "Ladder used for home emergency evacuation.", + "name": "Emergency/rescue ladder" + }, + { + "id": "txcd_33120017", + "object": "tax_code", + "description": "Ropes and Cords and similar fastening products.", + "name": "Ropes and Cords" + }, + { + "id": "txcd_33120018", + "object": "tax_code", + "description": "Ground anchor systems and tie down kits for securing property against severe weather.", + "name": "Ground Anchor Systems and Tie-down Kits" + }, + { + "id": "txcd_33120019", + "object": "tax_code", + "description": "Duct Tape.", + "name": "Duct Tape" + }, + { + "id": "txcd_33150001", + "object": "tax_code", + "description": "WaterSense labeled toilets.", + "name": "Toilets - WaterSense" + }, + { + "id": "txcd_33150002", + "object": "tax_code", + "description": "WaterSense labeled urinals.", + "name": "Urinals - WaterSense" + }, + { + "id": "txcd_33150003", + "object": "tax_code", + "description": "WaterSense labeled bathroom sink faucets and accessories.", + "name": "Bathroom Faucets - WaterSense" + }, + { + "id": "txcd_33150004", + "object": "tax_code", + "description": "WaterSense labeled sprinkler body is the exterior shell that connects to the irrigation system piping and houses the spray nozzle that applies water on the landscape.", + "name": "Spray Water Sprinkler Bodies - WaterSense" + }, + { + "id": "txcd_33150005", + "object": "tax_code", + "description": "WaterSense labeled irrigation controllers, which act like a thermostat for your sprinkler system telling it when to turn on and off, use local weather and landscape conditions to tailor watering schedules to actual conditions on the site.", + "name": "Irrigation Controls - WaterSense" + }, + { + "id": "txcd_33150006", + "object": "tax_code", + "description": "WaterSense labeled showerheads.", + "name": "Showerheads - WaterSense" + }, + { + "id": "txcd_34010001", + "object": "tax_code", + "description": "A type of consumer electronic device used to play vinyl recordings.", + "name": "Audio Turntables" + }, + { + "id": "txcd_34010002", + "object": "tax_code", + "description": "Portable audio equipment that plays audio files encoded in MP3 and other audio formats.", + "name": "Digital Music Players" + }, + { + "id": "txcd_34010003", + "object": "tax_code", + "description": "A camera that captures moving images and sound and converts them into electronic signals so that they can be saved on a storage device, such as videotape or a hard drive, or viewed on a monitor.", + "name": "Video Cameras" + }, + { + "id": "txcd_34020001", + "object": "tax_code", + "description": "A camera that captures photographs in digital memory.", + "name": "Digital Cameras" + }, + { + "id": "txcd_34020002", + "object": "tax_code", + "description": "A framed display designed to display preloaded digital images (jpeg or any digital image format). Has slots for flash memory cards and/or an interface for digital photo camera connection.", + "name": "Digital Picture Frames" + }, + { + "id": "txcd_34020003", + "object": "tax_code", + "description": "A portable electronic device for reading digital books and periodicals.", + "name": "E-Book Readers" + }, + { + "id": "txcd_34020004", + "object": "tax_code", + "description": "Wired and bluetooth headphones and earbuds for audio listening.", + "name": "Headphones/Earbuds" + }, + { + "id": "txcd_34020005", + "object": "tax_code", + "description": "Consumer electronics peripherals and accessories. Please select a more granular product tax category where appropriate.", + "name": "Consumer Electronics Peripherals/Accessories" + }, + { + "id": "txcd_34020006", + "object": "tax_code", + "description": "Televisions.", + "name": "Televisions" + }, + { + "id": "txcd_34020027", + "object": "tax_code", + "description": "Electronic devices bought for personal rather than commercial use. Please select a more granular product tax category where appropriate.", + "name": "Consumer Electronics" + }, + { + "id": "txcd_34021000", + "object": "tax_code", + "description": "A portable device for connecting to a telecommunications network in order to transmit and receive voice, video, or other data.", + "name": "Mobile Phones" + }, + { + "id": "txcd_34021001", + "object": "tax_code", + "description": "A device for recharging the battery of a mobile phone, especially one consisting of a cable connected to an adaptor which plugs into an electrical socket or usb port.", + "name": "Mobile Phone Charging Device/cord" + }, + { + "id": "txcd_34022000", + "object": "tax_code", + "description": "A specialized computer system designed for interactive video gameplay that typically connects to a television or other monitor.", + "name": "Video Gaming Console - Fixed" + }, + { + "id": "txcd_34022001", + "object": "tax_code", + "description": "A handheld portable electronic device used for playing video games that has its own screen, speakers and controls in one unit.", + "name": "Video Gaming Console - Portable" + }, + { + "id": "txcd_34040001", + "object": "tax_code", + "description": "Typically a lithium-ion remote power source for laptop computers.", + "name": "Computer Batteries" + }, + { + "id": "txcd_34040002", + "object": "tax_code", + "description": "Cables with industry standard connection and termination configurations used to connect various peripherals and equipment to computers.", + "name": "Computer Cables" + }, + { + "id": "txcd_34040003", + "object": "tax_code", + "description": "Storage drives, hard drives, Zip drives, etc.", + "name": "Computer Drives" + }, + { + "id": "txcd_34040004", + "object": "tax_code", + "description": "Computer Keyboards.", + "name": "Computer Keyboards" + }, + { + "id": "txcd_34040005", + "object": "tax_code", + "description": "Computer Microphones.", + "name": "Computer Microphones" + }, + { + "id": "txcd_34040006", + "object": "tax_code", + "description": "Computer Monitor/Displays.", + "name": "Computer Monitor/Displays" + }, + { + "id": "txcd_34040007", + "object": "tax_code", + "description": "Computer Mouse/Pointing Devices.", + "name": "Computer Mouse/Pointing Devices" + }, + { + "id": "txcd_34040008", + "object": "tax_code", + "description": "Computer Printer.", + "name": "Computer Printer" + }, + { + "id": "txcd_34040009", + "object": "tax_code", + "description": "Computer Speakers.", + "name": "Computer Speakers" + }, + { + "id": "txcd_34040010", + "object": "tax_code", + "description": "A docking station is a hardware frame and set of electrical connection interfaces that enable a notebook computer to effectively serve as a desktop computer.", + "name": "Docking Stations" + }, + { + "id": "txcd_34040011", + "object": "tax_code", + "description": "A device that makes possible the transmission of data to or from a computer via telephone or other communication lines.", + "name": "Modems" + }, + { + "id": "txcd_34040012", + "object": "tax_code", + "description": "A motherboard is the physical component in a computer that contains the computer's basic circuitry and other components.", + "name": "Motherboards" + }, + { + "id": "txcd_34040013", + "object": "tax_code", + "description": "A port replicator is an attachment for a notebook computer that allows a number of devices such as a printer, large monitor, and keyboard to be simultaneously connected.", + "name": "Port Replicators" + }, + { + "id": "txcd_34040014", + "object": "tax_code", + "description": "A device that connects computer networks to each other, and sends information between networks. The router, as commonly used in the home, is the hardware that allows communication between your personal computers and other connected device and the internet.", + "name": "Routers" + }, + { + "id": "txcd_34040015", + "object": "tax_code", + "description": "A device that scans documents and images and converts them into digital data for use on a computer.", + "name": "Scanners" + }, + { + "id": "txcd_34040016", + "object": "tax_code", + "description": "A sound card is an expansion component used in computers to receive and send audio.", + "name": "Sound Cards" + }, + { + "id": "txcd_34040017", + "object": "tax_code", + "description": "An expansion card that allows the computer to send graphical information to a video display device such as a monitor, TV, or projector. Video cards are often used by gamers in place of integrated graphics due to their extra processing power and video ram.", + "name": "Video/Graphics Card" + }, + { + "id": "txcd_34040018", + "object": "tax_code", + "description": "A webcam is a video camera that feeds or streams an image or video in real time to or through a computer to a computer network, such as the Internet. Webcams are typically small cameras that sit on a desk, attach to a user's monitor, or are built into the hardware.", + "name": "Web Camera" + }, + { + "id": "txcd_35010000", + "object": "tax_code", + "description": "Books or booklets consisting of text or illustrations bound in a stiffer cover than the pages.", + "name": "Books" + }, + { + "id": "txcd_35010001", + "object": "tax_code", + "description": "Children's books including picture books, painting, drawing, and activity books.", + "name": "Books for children" + }, + { + "id": "txcd_35010400", + "object": "tax_code", + "description": "Printed religious books and manuals.", + "name": "Religious books" + }, + { + "id": "txcd_35010500", + "object": "tax_code", + "description": "Recognized in the ordinary and usual sense as a \"book\", except that the product is audio and delivered electronically or on a CD/DVD instead of in a printed format.", + "name": "Audiobook (Physical Copy)" + }, + { + "id": "txcd_35020100", + "object": "tax_code", + "description": "Publications distributed to the public at regular intervals that contains news of general interest.", + "name": "Newspapers" + }, + { + "id": "txcd_35020200", + "object": "tax_code", + "description": "Publications, including magazines, distributed on a periodic basis.", + "name": "Magazines" + }, + { + "id": "txcd_36010001", + "object": "tax_code", + "description": "Flea and tick products for animal use including soaps, cleaning solutions, and shampoos (e.g., flea collars, flea powder, tick and flea soap, and tick sprays).", + "name": "Flea and tick products" + }, + { + "id": "txcd_36010002", + "object": "tax_code", + "description": "Drugs or substance for treating animals and intended for use in the diagnosis, cure, mitigation, treatment, or prevention of disease.", + "name": "Over-the-counter drugs for animal use - without a prescription" + }, + { + "id": "txcd_36010003", + "object": "tax_code", + "description": "Medical supplies available without a prescription and used in the treatment of companion animals (e.g., first aid items such as bandages and gauze).", + "name": "Over-the-counter medical supplies for pets" + }, + { + "id": "txcd_36010004", + "object": "tax_code", + "description": "Food for household pets that is consumed for nutritional value. This code is not intended for food related to working farm animals or animals raised for meat or milk production.", + "name": "Pet food" + }, + { + "id": "txcd_36010005", + "object": "tax_code", + "description": "Pet food products offering additional nutrients or functional ingredients.", + "name": "Pet vitamins" + }, + { + "id": "txcd_37010000", + "object": "tax_code", + "description": "Personal computers, including laptops, tablets, desktops.", + "name": "Personal Computers" + }, + { + "id": "txcd_37010003", + "object": "tax_code", + "description": "Removable storage media such as compact disks, flash drives, thumb drives, flash memory cards.", + "name": "Computer Storage Media" + }, + { + "id": "txcd_37010036", + "object": "tax_code", + "description": "Ink catridges for printers.", + "name": "Printer Ink" + }, + { + "id": "txcd_37030002", + "object": "tax_code", + "description": "A globe that could be used by a student in a course of study as a reference and to learn the subject being taught.", + "name": "Globes - Student" + }, + { + "id": "txcd_37030003", + "object": "tax_code", + "description": "A map that could be used by a student in a course of study as a reference and to learn the subject being taught.", + "name": "Maps - Student" + }, + { + "id": "txcd_37040001", + "object": "tax_code", + "description": "Paper suitable for printers.", + "name": "Printer Paper" + }, + { + "id": "txcd_37050001", + "object": "tax_code", + "description": "Books that are required or approved for use in conjunction with a curriculum provided by an educational institution.", + "name": "School textbooks" + }, + { + "id": "txcd_37060001", + "object": "tax_code", + "description": "Bags designed to carry students' books during the school day. This category does not include backpacks for traveling, hiking, camping, etc.", + "name": "Bookbags/Backpacks - Student" + }, + { + "id": "txcd_37060002", + "object": "tax_code", + "description": "Typically a small electonic device with a keyboard and visual display used for making used for making mathematical calculations.", + "name": "Calculators" + }, + { + "id": "txcd_37060003", + "object": "tax_code", + "description": "A calendar based notebook to aid in outlining one's daily appointments, classes, activities, etc.", + "name": "Daily Planners" + }, + { + "id": "txcd_37060008", + "object": "tax_code", + "description": "Portable locks used by students in a school setting to prevent use, theft, vandalism or harm.", + "name": "Padlocks - Student" + }, + { + "id": "txcd_37060009", + "object": "tax_code", + "description": "An item commonly used by a student in a course of study for artwork. This category is limited to the following items...clay and glazes, paints, paintbrushes for artwork, sketch and drawing pads, watercolors.", + "name": "School Art Supplies" + }, + { + "id": "txcd_37060010", + "object": "tax_code", + "description": "Reference printed material commonly used by a student in a course of study as a reference and to learn the subject being taught.", + "name": "Dictionaries/Thesauruses" + }, + { + "id": "txcd_37060011", + "object": "tax_code", + "description": "Sheet music used by a student in conjunciton with school activities.", + "name": "Sheet music - Student" + }, + { + "id": "txcd_37060012", + "object": "tax_code", + "description": "An item commonly used by a student in a course of study. This category is limited to the following items...binders, blackboard chalk, cellophane tape, compasses, composition books, crayons, erasers, folders, glue/paste/glue sticks, highlighters, index cards, index card boxes, legal pads, lunch boxes, markers, notebooks, paper (copy, graph, tracing, manila, colored, construction, notebook), pencils, pencil boxes, pencil sharpeners, pens, posterboard, protractors, rulers, scissors, writing tablets.", + "name": "School Supplies" + }, + { + "id": "txcd_37060013", + "object": "tax_code", + "description": "A device that joins pages of paper or similar material by fastening a thin metal staple through the sheets and folding the ends underneath.", + "name": "Staplers/Staples" + }, + { + "id": "txcd_37060035", + "object": "tax_code", + "description": "Pins/tacks to secure papers, pictures, calendars, etc. to bulletin boards, walls, etc.", + "name": "Push pins/tacks" + }, + { + "id": "txcd_37060045", + "object": "tax_code", + "description": "A handheld computer that is capable of plotting graphs, solving simultaneous equations, and performing other tasks with variables.", + "name": "Graphing Calculators" + }, + { + "id": "txcd_37060046", + "object": "tax_code", + "description": "A musical instrument used by a student in conjunciton with school activities.", + "name": "Musical instruments - Student" + }, + { + "id": "txcd_37070001", + "object": "tax_code", + "description": "Software prewritten and delivered on tangible media.", + "name": "Tangible media -- prewritten software" + }, + { + "id": "txcd_40040000", + "object": "tax_code", + "description": "Food and food ingredients for home consumption.", + "name": "Food" + }, + { + "id": "txcd_40040004", + "object": "tax_code", + "description": "Foods and formulas meant for feeding babies and infants.", + "name": "Baby food" + }, + { + "id": "txcd_40050004", + "object": "tax_code", + "description": "Food bundle or basket containing food staples combined with tangible personal property, with the food comprising between 50% and 90% of the overall value of the bundle.", + "name": "Tangible personal property bundle -- 50-90% food" + }, + { + "id": "txcd_40050005", + "object": "tax_code", + "description": "Food bundle or basket containing food staples combined with tangible personal property, with the food comprising less 90% or more of the overall value of the bundle.", + "name": "Tangible personal property bundle -- 90% food or more" + }, + { + "id": "txcd_40050006", + "object": "tax_code", + "description": "Food bundle or basket containing food staples combined with tangible personal property, with the food comprising less than 50% of the overall value of the bundle.", + "name": "Tangible personal property bundle -- less than 50% food" + }, + { + "id": "txcd_40060003", + "object": "tax_code", + "description": "Ready to eat foods intended to be consumed on site by people.", + "name": "Prepared foods" + }, + { + "id": "txcd_40070005", + "object": "tax_code", + "description": "Snack foods including chips, crisps, puffs, curls or sticks, popped corn, brittle pretzels, salted nuts and salted seeds, granola products and snack mixes. This category does not include items such as crackers, cookies, snack cakes or breakfast cereal.", + "name": "Snack foods" + }, + { + "id": "txcd_40090001", + "object": "tax_code", + "description": "Tablet, capsule, powder, softgel, gelcap, or liquid intended that contain a vitamin, mineral, herb, other botanical, or amino acid and is labeled as a dietary supplement identifiable by the \"supplement facts\" box found on the label.", + "name": "Dietary supplements" + }, + { + "id": "txcd_40090005", + "object": "tax_code", + "description": "A food which intended to be or is represented for special dietary use solely as a food for infants by reason of its simulation of human milk or its suitability as a complete or partial substitute for human milk.", + "name": "Infant formula" + }, + { + "id": "txcd_40090008", + "object": "tax_code", + "description": "Products in various forms that are intended for ingestion and represented as a conventional food and labeled as a nutritional supplement and identifiable by the \"Nutrition Facts\" box found on the label.", + "name": "Nutritional supplements" + }, + { + "id": "txcd_40100001", + "object": "tax_code", + "description": "A preparation of natural or artificial sweeteners in combination with chocolate, fruits, nuts, or other ingredients or flavorings in the form of bars, drops, or pieces.", + "name": "Candy and sweets" + }, + { + "id": "txcd_40100002", + "object": "tax_code", + "description": "A preparation of natural or artificial sweeteners in combination with chocolate, fruits, nuts, or other ingredients or flavorings in the form of bars, drops, or pieces and that contains flour as an ingredient.", + "name": "Candy and sweets -- contains flour" + }, + { + "id": "txcd_41030001", + "object": "tax_code", + "description": "Regular, unsweetened, non carbonated water sold in containers.", + "name": "Bottled water" + }, + { + "id": "txcd_41030002", + "object": "tax_code", + "description": "Unsweetened water that is carbonated artificially or naturally, including naturally sparkling mineral water.", + "name": "Carbonated bottled water" + }, + { + "id": "txcd_41040002", + "object": "tax_code", + "description": "Carbonated non-alcoholic beverages that contain natural or artificial sweeteners, and zero natural fruit or vegetable juice, not including carbonated water. Includes energy drinks that carry a Nutrition Facts label and contain a blend of energy enhancing ingredients.", + "name": "Carbonated soft drinks" + }, + { + "id": "txcd_41040003", + "object": "tax_code", + "description": "Ready to drink non-carbonated beverage containing tea with natural or artificial sweeteners.", + "name": "Bottled tea -- non-carbonated (sweetened)" + }, + { + "id": "txcd_41040004", + "object": "tax_code", + "description": "Bottled water for human consumption, containing natural or artificial sweeteners, non-carbonated.", + "name": "Bottled water - flavored" + }, + { + "id": "txcd_41040005", + "object": "tax_code", + "description": "Bottled water for human consumption, containing natural or artificial sweeteners, carbonated.", + "name": "Bottled water -- carbonated (sweetened)" + }, + { + "id": "txcd_41040008", + "object": "tax_code", + "description": "Non-carbonated, non-alcoholic beverages that contain sweeteners, and zero natural fruit or vegetable juice, such as sweetened cocktail mixes that can be combined with alcohol, but doesn't include flavored water.", + "name": "Soft drinks -- non-carbonated" + }, + { + "id": "txcd_41050006", + "object": "tax_code", + "description": "Coffee beans or ground coffee.", + "name": "Coffee beans and ground coffee" + }, + { + "id": "txcd_41050008", + "object": "tax_code", + "description": "Tea leaves and tea bags.", + "name": "Tea leaves and tea bags" + }, + { + "id": "txcd_41060003", + "object": "tax_code", + "description": "Milk type beverages from non-animal sources, such as soy, rice, almond, coconut, peanut, and hemp.", + "name": "Milk substitutes" + }, + { + "id": "txcd_41060006", + "object": "tax_code", + "description": "Milk or milk substitutes, or drinks with bases of milk, coffee, unsweetened tea or cocoa.", + "name": "Milk, coffee, tea, and cocoa beverages" + }, + { + "id": "txcd_90020001", + "object": "tax_code", + "description": "Gratuity, otherwise known as a tip, is money that a customer leaves for an employee or employees that is in addition to and separate from the amount due for the goods or services rendered.", + "name": "Optional Gratuity" + }, + { + "id": "txcd_92010001", + "object": "tax_code", + "description": "A shipping charge for the delivery of physical goods in conjunction with the sale of these goods. This tax category is not appropriate for stand alone transportation charges that are not associated with the sale of the goods being delivered.", + "name": "Shipping" + } +] \ No newline at end of file diff --git a/includes/core/api/paymentintents.php b/includes/core/api/paymentintents.php new file mode 100644 index 00000000..c08b4999 --- /dev/null +++ b/includes/core/api/paymentintents.php @@ -0,0 +1,42 @@ +h2:not(.nav-tab-wrapper){clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;position:absolute !important;width:1px}.simpay-settings .form-table td fieldset+p,.simpay-settings .form-table td label+p,.simpay-settings .form-table td select+p,.simpay-settings .form-table td input+p{color:#666;font-style:italic}.simpay-settings .simpay-settings-subsections__subsection{display:flex;align-items:center}.simpay-settings .simpay-settings-subsections__subsection .simpay-settings-bubble{margin-left:5px}.button.button-large.simpay-button-large{font-size:14px;line-height:30px;padding:4px 12px}.simpay-copy-hidden-input{clip:rect(1px, 1px, 1px, 1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.fixed .column-livemode{width:15%;text-align:right}@media screen and (max-width: 782px){.fixed .column-livemode{text-align:left}}.fixed .column-livemode .simpay-badge{margin-top:3px}.fixed .column-shortcode{width:25%}.fixed .column-shortcode .simpay-shortcode{clip:rect(1px, 1px, 1px, 1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.post-type-simple-pay .misc-pub-curtime,.post-type-simple-pay .misc-pub-visibility{display:none}.simpay-metabox-title{border:1px solid #eee}.simpay-shortcode-section{border-top:1px solid #ddd;border-width:1px 0;padding-top:15px;padding-bottom:15px;position:relative}.simpay-shortcode-section label{display:block;margin-bottom:6px}.simpay-shortcode-section label .dashicons{color:#8c8f94;margin-right:3px}.simpay-shortcode-section .simpay-copy-button{line-height:normal;position:absolute;right:20px;bottom:20px;border:0;background:none;box-shadow:none;padding:0}.simpay-shortcode-section .simpay-copy-button:hover{border:0;background:none;box-shadow:none}.simpay-shortcode-section .simpay-copy-button .dashicons{color:#3c434a}.simpay-shortcode{width:100%;padding:8px;line-height:1;margin:0;height:32px;resize:none}.simpay-badge{color:#3f3f46;text-align:center;line-height:1;padding:5px 7px;border-radius:3px;background:#e4e4e7;border:0;box-shadow:none;display:inline-flex;align-items:center}button.simpay-badge{cursor:pointer}button.simpay-badge:hover{background:#d4d4d8}.simpay-badge__icon{opacity:.8;margin:2px 5px 0 0}.simpay-badge--green{color:#0e6245;background:#cbf4c9}.simpay-badge--yellow{color:#983705;background:#f8e5b9}.simpay-stripe-account-info{display:flex;align-items:center;margin-bottom:8px}.simpay-stripe-account-info .spinner{float:none;margin-top:0;margin-left:0}.simple-pay_page_simpay_settings .simpay-settings-upgrade,.post-type-simple-pay .simpay-settings-upgrade{margin-top:20px;padding:1px;position:relative;background:#fff;border-radius:4px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2),0 5px 10px rgba(0,0,0,.1);max-width:677px}.simple-pay_page_simpay_settings .simpay-settings-upgrade__inner,.post-type-simple-pay .simpay-settings-upgrade__inner{text-align:center;margin:0;padding:30px}.simple-pay_page_simpay_settings .simpay-settings-upgrade h3,.post-type-simple-pay .simpay-settings-upgrade h3{line-height:1.5;font-size:22px;margin:0 0 1.5rem}.simple-pay_page_simpay_settings .simpay-settings-upgrade ul,.post-type-simple-pay .simpay-settings-upgrade ul{margin:1.5rem 0 calc(1.5rem - 6px);display:flex;flex-wrap:wrap;justify-content:center}@media screen and (min-width: 782px){.simple-pay_page_simpay_settings .simpay-settings-upgrade ul,.post-type-simple-pay .simpay-settings-upgrade ul{margin-left:4rem;margin-right:4rem}}.simple-pay_page_simpay_settings .simpay-settings-upgrade li,.post-type-simple-pay .simpay-settings-upgrade li{font-size:15px;margin:6px 0;width:100%}.simple-pay_page_simpay_settings .simpay-settings-upgrade li a,.post-type-simple-pay .simpay-settings-upgrade li a{color:#3c434a;text-decoration:none}.simple-pay_page_simpay_settings .simpay-settings-upgrade li a:hover,.post-type-simple-pay .simpay-settings-upgrade li a:hover{color:var(--wp-admin-theme-color);text-decoration:underline}@media screen and (min-width: 782px){.simple-pay_page_simpay_settings .simpay-settings-upgrade li,.post-type-simple-pay .simpay-settings-upgrade li{text-align:left;width:50%}}.simple-pay_page_simpay_settings .simpay-settings-upgrade .button.button-large,.post-type-simple-pay .simpay-settings-upgrade .button.button-large{font-size:17px;line-height:30px;padding:10px 20px}.simple-pay_page_simpay_settings .simpay-settings-upgrade small,.post-type-simple-pay .simpay-settings-upgrade small{color:#666;margin:15px 0 0;display:block}.simple-pay_page_simpay_settings .simpay-settings-upgrade .dashicons-yes,.post-type-simple-pay .simpay-settings-upgrade .dashicons-yes{color:#428bca}.simple-pay_page_simpay_settings .simpay-settings-upgrade .button-link,.post-type-simple-pay .simpay-settings-upgrade .button-link{position:absolute;top:0;right:0;font-size:20px;color:#666;font-weight:bold;text-decoration:none;margin-left:5px;padding:6px 10px;z-index:2}.simple-pay_page_simpay_settings .simpay-settings-upgrade .button-link:hover,.simple-pay_page_simpay_settings .simpay-settings-upgrade .button-link:active,.simple-pay_page_simpay_settings .simpay-settings-upgrade .button-link:focus,.post-type-simple-pay .simpay-settings-upgrade .button-link:hover,.post-type-simple-pay .simpay-settings-upgrade .button-link:active,.post-type-simple-pay .simpay-settings-upgrade .button-link:focus{color:#666;text-decoration:none}.simple-pay_page_simpay_settings .simpay-settings-upgrade .simpay-upgrade-btn-subtext,.post-type-simple-pay .simpay-settings-upgrade .simpay-upgrade-btn-subtext{text-align:center;margin:0;padding:30px 20px 20px;background-color:#fcf9e8;border:1px solid #edeac9;border-width:1px 0 0;position:relative;border-radius:0;border-bottom-left-radius:4px;border-bottom-right-radius:4px}@media screen and (min-width: 782px){.simple-pay_page_simpay_settings .simpay-settings-upgrade .simpay-upgrade-btn-subtext,.post-type-simple-pay .simpay-settings-upgrade .simpay-upgrade-btn-subtext{padding-left:4rem;padding-right:4rem}}.simple-pay_page_simpay_settings .simpay-settings-upgrade .simpay-upgrade-btn-subtext svg,.post-type-simple-pay .simpay-settings-upgrade .simpay-upgrade-btn-subtext svg{background:#00a32a;fill:#fff;border-radius:50%;border:4px solid #fff;box-shadow:0 0 0 1px #edeac9;width:28px;height:28px;position:absolute;top:-18px;left:50%;margin-left:-18px}.simple-pay_page_simpay_settings .simpay-settings-upgrade .simpay-upgrade-btn-subtext u,.post-type-simple-pay .simpay-settings-upgrade .simpay-upgrade-btn-subtext u{text-decoration:none;font-weight:bold;color:#00a32a}.simple-pay_page_simpay_settings .simpay-settings-upgrade .simpay-upgrade-btn-subtext a,.post-type-simple-pay .simpay-settings-upgrade .simpay-upgrade-btn-subtext a{font-weight:normal;display:inline-block}#simpay-payment-form-settings table{width:100%;border-collapse:collapse}#simpay-payment-form-settings ::-webkit-input-placeholder{color:#9ba1a9}#simpay-payment-form-settings ::-moz-placeholder{color:#9ba1a9;opacity:1}#simpay-payment-form-settings :-ms-input-placeholder{color:#9ba1a9}#simpay-payment-form-settings .inside{margin:0;padding:0}#simpay-payment-form-settings .simpay-panel-field .toolbar{margin-bottom:-4px}#simpay-payment-form-settings .simpay-panel-field .toolbar .simpay-field-select{margin:0 0 4px;width:auto;max-width:70%}#simpay-payment-form-settings .simpay-tabs{margin:0;padding:0;list-style:none;background:#fafafa;border-right:1px solid #ccd0d4;line-height:1em;position:relative;flex:0 0 25%}@media screen and (max-width: 782px){#simpay-payment-form-settings .simpay-tabs{flex-basis:100%;flex-grow:1;border-right:0}}#simpay-payment-form-settings .simpay-tabs li{margin:0;padding:0}#simpay-payment-form-settings .simpay-tabs li:first-child{margin-top:-1px}#simpay-payment-form-settings .simpay-tabs li:last-child{margin-bottom:20px}@media screen and (max-width: 782px){#simpay-payment-form-settings .simpay-tabs li:last-child{margin-bottom:0}}#simpay-payment-form-settings .simpay-tabs li.active{margin-left:-1px;box-shadow:0 1px 1px rgba(0,0,0,.04);position:relative}#simpay-payment-form-settings .simpay-tabs li.active:focus:after{display:none}#simpay-payment-form-settings .simpay-tabs li.active:before,#simpay-payment-form-settings .simpay-tabs li.active:after{content:"";width:calc(100% + 1px);height:1px;background:#ccd0d4;position:absolute;top:0;left:0;right:0;z-index:2}#simpay-payment-form-settings .simpay-tabs li.active:after{top:auto;bottom:0}#simpay-payment-form-settings .simpay-tabs li.active a{font-weight:bold;background-color:#fff;position:relative;margin-right:-1px}#simpay-payment-form-settings .simpay-tabs li.active a:before{content:"";position:absolute;top:0;left:0;bottom:0;width:4px;height:100%;background:currentColor;z-index:3}@media screen and (max-width: 782px){#simpay-payment-form-settings .simpay-tabs li.active a{margin-right:0}}#simpay-payment-form-settings .simpay-tabs li .simpay-tab-item{display:flex;align-items:center;line-height:20px;margin:0;padding:10px 10px 10px 14px;text-decoration:none;transition:all .05s ease-in-out}#simpay-payment-form-settings .simpay-tabs li .simpay-tab-item svg,#simpay-payment-form-settings .simpay-tabs li .simpay-tab-item .dashicons{margin-right:6px}@media screen and (max-width: 782px){#simpay-payment-form-settings .simpay-tabs li .simpay-tab-item{padding:18px}}#simpay-payment-form-settings .simpay-tabs li .simpay-tab-item:focus{outline:0;position:relative;z-index:3;box-shadow:inset 0 0 0 2px currentColor}#simpay-payment-form-settings .simpay-tabs li:not(.active) .simpay-tab-item{color:inherit}#simpay-payment-form-settings .simpay-panels-wrap{background:#fff;display:flex}@media screen and (max-width: 782px){#simpay-payment-form-settings .simpay-panels-wrap{flex-direction:column}}#simpay-payment-form-settings .simpay-panels{flex:0 0 75%;display:flex}@media screen and (max-width: 782px){#simpay-payment-form-settings .simpay-panels{flex-basis:100%}}#simpay-payment-form-settings .simpay-panel,#simpay-payment-form-settings .simpay-panel-section{width:100%}#simpay-payment-form-settings .simpay-panel>table,#simpay-payment-form-settings .simpay-panel>table>tr,#simpay-payment-form-settings .simpay-panel>table>tbody,#simpay-payment-form-settings .simpay-panel>table>tbody>tr,#simpay-payment-form-settings .simpay-panel>table>thead,#simpay-payment-form-settings .simpay-panel>table>thead>tr{display:block;width:100%}#simpay-payment-form-settings .simpay-panel>table:last-child>tbody:last-child>tr:last-child>td{border-bottom:0}#simpay-payment-form-settings .simpay-panel-field--requires-upgrade{position:relative}#simpay-payment-form-settings .simpay-panel-field--requires-upgrade td>div{margin-right:80px}#simpay-payment-form-settings .simpay-panel-field--requires-upgrade td>div .button-small{position:absolute;top:calc(50% - 13px);right:18px}#simpay-payment-form-settings .simpay-panel-field,#simpay-payment-form-settings .simpay-panel-field>td,#simpay-payment-form-settings .simpay-panel-field>th{text-align:left;display:block}#simpay-payment-form-settings .simpay-panel-field>td,#simpay-payment-form-settings .simpay-panel-field>th{width:calc(100% - 36px);margin-left:18px;margin-right:18px}#simpay-payment-form-settings .simpay-panel-field th{font-weight:bold;padding-top:18px;padding-bottom:5px}#simpay-payment-form-settings .simpay-panel-field td{border-bottom:1px solid #ddd;padding-bottom:18px}#simpay-payment-form-settings .simpay-panel-field p.description{margin-top:4px}#simpay-payment-form-settings .simpay-panel-field p.description:last-of-type{margin-bottom:0}#simpay-payment-form-settings .simpay-panel-field .simpay-panel-field__nested{margin-top:18px}#simpay-payment-form-settings .simpay-panel-field .simpay-panel-field__nested label{font-weight:bold;display:block;margin-bottom:4px}#simpay-payment-form-settings .simpay-panel-field .simpay-field-select,#simpay-payment-form-settings .simpay-panel-field .simpay-field-text{min-width:75%;max-width:100%}@media screen and (max-width: 782px){#simpay-payment-form-settings .simpay-panel-field .simpay-field-select,#simpay-payment-form-settings .simpay-panel-field .simpay-field-text{min-width:0;width:100%}}#simpay-payment-form-settings .simpay-panel-field .simpay-field-textarea{width:100%;max-width:100%}#simpay-payment-form-settings .simpay-panel-field .notice:last-of-type{margin-bottom:0}#simpay-payment-form-settings .simpay-panel-field .error,#simpay-payment-form-settings .simpay-panel-field .simpay-important{color:#a94442;font-weight:normal}#simpay-payment-form-settings .simpay-panel-field .simpay-image-preview-wrap{position:relative;margin-top:12px}#simpay-payment-form-settings .simpay-panel-field .simpay-image-preview-wrap .simpay-remove-image-preview{position:absolute;top:-15px;left:-15px;cursor:pointer;background-color:#fff}#simpay-payment-form-settings .simpay-panel-field .simpay-image-preview-wrap .simpay-remove-image-preview::before{font-size:22px;line-height:26px}#simpay-payment-form-settings .simpay-panel-field .simpay-image-preview-wrap .simpay-image-preview{max-height:128px;max-width:128px;border:1px solid #ddd}#simpay-payment-form-settings .simpay-panel .simpay-promo-under-box{background-color:#f4f4f4;border:1px solid #e5e5e5;padding:18px;margin-top:18px;position:relative}#simpay-payment-form-settings .simpay-panel .simpay-promo-under-box__dismiss{color:inherit;text-decoration:none;position:absolute;top:8px;right:8px}#simpay-payment-form-settings .simpay-panel .simpay-promo-under-box__dismiss .dashicons-dismiss{font-size:16px;width:16px;height:16px}#simpay-payment-form-settings .simpay-panel .simpay-promo-under-box h3{font-size:18px;font-weight:600;margin:0;padding:0}#simpay-payment-form-settings .simpay-panel .simpay-promo-under-box p{font-size:14px}#simpay-payment-form-settings .simpay-panel .simpay-promo-under-box p:last-child{margin-bottom:0}#simpay-payment-form-settings .simpay-metabox-content{margin-bottom:-1px;background-color:#f5f5f5;border:1px solid #c3c4c7;border-width:1px 0;box-shadow:0 1px 1px rgba(0,0,0,.04);position:relative}#simpay-payment-form-settings .simpay-show-if,#simpay-payment-form-settings .simpay-panel-hidden{display:none}#simpay-payment-form-settings .simpay-payment-methods{border:1px solid #ccd0d4;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,.04)}#simpay-payment-form-settings .simpay-panel-field-payment-method{display:block;border-top:1px solid #ccd0d4;padding:7px;box-sizing:border-box}#simpay-payment-form-settings .simpay-panel-field-payment-method:first-child{border-top:0;border-top-left-radius:4px;border-top-right-radius:4px}#simpay-payment-form-settings .simpay-panel-field-payment-method input[type=checkbox]{margin-top:0;margin-right:8px}#simpay-payment-form-settings .simpay-panel-field-payment-method__help{color:#666;text-decoration:none;margin-right:5px}#simpay-payment-form-settings .simpay-panel-field-payment-method__help .dashicons{font-size:18px;width:18px;height:18px}#simpay-payment-form-settings .simpay-panel-field-payment-method__restrictions{margin-left:65px}#simpay-payment-form-settings .simpay-panel-field-payment-method__icon{border-radius:3px;overflow:hidden;margin:0 8px 0 5px;width:30px;height:30px;flex-shrink:0}#simpay-payment-form-settings .simpay-panel-field-payment-method__icon svg{width:30px;height:30px}#simpay-global-settings .sortable-placeholder,#simpay-form-settings .sortable-placeholder{margin:5px;display:block;min-height:36px}#simpay-global-settings .chosen-container,#simpay-form-settings .chosen-container{min-width:20em;max-width:30em}#simpay-global-settings .simpay-field.simpay-small-text,#simpay-form-settings .simpay-field.simpay-small-text{width:7em}#simpay-global-settings .simpay-field.simpay-medium-text,#simpay-form-settings .simpay-field.simpay-medium-text{width:15em}#simpay-global-settings .simpay-field-radios ul,#simpay-form-settings .simpay-field-radios ul{margin:0}#simpay-global-settings .simpay-field-radios>i,#simpay-form-settings .simpay-field-radios>i{margin-left:5px;vertical-align:middle}#simpay-global-settings ul.simpay-field-radios-inline,#simpay-form-settings ul.simpay-field-radios-inline{margin:0 0 -10px}#simpay-global-settings ul.simpay-field-radios-inline li,#simpay-form-settings ul.simpay-field-radios-inline li{display:inline-block;margin:0 10px 10px 0}#simpay-global-settings ul.simpay-field-radios-inline li:last-child,#simpay-form-settings ul.simpay-field-radios-inline li:last-child{margin-right:0}#simpay-global-settings .simpay-currency-field,#simpay-form-settings .simpay-currency-field{display:flex;align-items:center}>#simpay-global-settings .simpay-currency-field:focus,>#simpay-form-settings .simpay-currency-field:focus{position:relative;z-index:5}#simpay-global-settings .simpay-currency-symbol,#simpay-form-settings .simpay-currency-symbol{margin:0;padding-left:8px;padding-right:8px;line-height:28px;font-size:14px}@media screen and (max-width: 782px){#simpay-global-settings .simpay-currency-symbol,#simpay-form-settings .simpay-currency-symbol{line-height:38px}}#simpay-global-settings .simpay-currency-symbol-left,#simpay-form-settings .simpay-currency-symbol-left{border-top-left-radius:4px;border-bottom-left-radius:4px}#simpay-global-settings .simpay-currency-symbol-right,#simpay-form-settings .simpay-currency-symbol-right{border-top-right-radius:4px;border-bottom-right-radius:4px}#simpay-global-settings div.simpay-currency-symbol,#simpay-form-settings div.simpay-currency-symbol{border-color:#7e8993;border-style:solid;background-color:#fff}#simpay-global-settings select.simpay-currency-symbol,#simpay-form-settings select.simpay-currency-symbol{padding-right:25px}#simpay-global-settings .simpay-currency-symbol-left,#simpay-form-settings .simpay-currency-symbol-left{border-width:1px 0 1px 1px}#simpay-global-settings .simpay-currency-symbol-left+.simpay-field-amount,#simpay-form-settings .simpay-currency-symbol-left+.simpay-field-amount{border-radius:0 4px 4px 0}#simpay-global-settings .simpay-currency-symbol-right,#simpay-form-settings .simpay-currency-symbol-right{border-width:1px 1px 1px 0}#simpay-global-settings .simpay-field-amount,#simpay-form-settings .simpay-field-amount{margin:0;padding-left:8px;padding-right:8px;font-size:14px;width:6em;position:relative;z-index:2;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px}#simpay-global-settings .simpay-error,#simpay-form-settings .simpay-error{color:red}#simpay-global-settings .simpay-docs-link-wrap,#simpay-form-settings .simpay-docs-link-wrap{position:absolute;right:0;bottom:0;color:#666;font-size:13px;font-style:italic;padding:15px 18px}#simpay-global-settings .simpay-docs-link-wrap a .dashicons-editor-help,#simpay-form-settings .simpay-docs-link-wrap a .dashicons-editor-help{color:#666;text-decoration:none;width:17px;height:17px;font-size:17px;padding-left:4px}#simpay-global-settings .simpay-docs-icon,#simpay-form-settings .simpay-docs-icon{color:#666}#simpay-global-settings .simpay-docs-icon,#simpay-global-settings .simpay-docs-icon .dashicons-editor-help,#simpay-form-settings .simpay-docs-icon,#simpay-form-settings .simpay-docs-icon .dashicons-editor-help{text-decoration:none;width:17px;height:17px;font-size:17px}.button.button-primary.simpay-upgrade-btn{background-color:#428bca;border:1px solid #428bca;color:#fff;display:inline-block}.button.button-primary.simpay-upgrade-btn:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #2d6ca2}.button.button-primary.simpay-upgrade-btn:hover{background-color:#037ad0;border:1px solid #428bca}.simpay-upgrade-btn-subtext{color:#3c434a;font-size:14px;line-height:1.5;text-align:center;margin:40px 0 0;padding:30px 35px 20px;background-color:#fcf9e8;border:3px solid #ebe29a;border-radius:4px;position:relative}.simpay-upgrade-btn-subtext svg{background:#00a32a;fill:#fff;border-radius:50%;border:3px solid #ebe29a;width:28px;height:28px;position:absolute;top:-14px;left:50%;margin-left:-14px}.simpay-upgrade-btn-subtext u{text-decoration:none;font-weight:bold;color:#00a32a}.simpay-upgrade-btn-subtext a{text-decoration:none;display:block;margin-top:6px;font-weight:bold}.post-type-simple-pay #post-body-content{display:none}.simpay-card{margin:0 0 20px;padding:30px;background:#fff;border:1px solid #c3c4c7;box-shadow:0 1px 1px rgba(0,0,0,.04)}.simpay-card,.simpay-card p{line-height:1.5;font-size:16px}.simpay-card h3{line-height:1.6;font-size:18px;margin:0 0 20px;color:#23282c}.simpay-card p{margin:0 0 20px}.simpay-card p:last-child,.simpay-card ul:last-child{margin-bottom:0}.simpay-card figure{float:right;margin:0 0 30px 30px;max-width:400px}.simpay-card figure iframe,.simpay-card figure img{max-width:100%}.simpay-card figure figcaption{text-align:center}@media screen and (max-width: 782px){.simpay-card figure{margin:0 0 30px;max-width:100%;float:none}}.simpay-doc-suggestions{width:100%;display:flex;flex-wrap:wrap;padding:0}.simpay-doc-suggestion{text-align:center;display:flex;flex-direction:column;justify-content:center;align-items:center;flex:0 1 33.333%;padding:30px;border-right:1px solid #c3c4c7;box-sizing:border-box}.simpay-doc-suggestion:nth-child(3n){border-right:0}@media screen and (max-width: 782px){.simpay-doc-suggestion{flex:0 1 100%;border-bottom:1px solid #c3c4c7;border-right:0}.simpay-doc-suggestion:last-child{border-bottom:0}}.simpay-doc-suggestion h3{font-size:20px;margin-bottom:10px}.simpay-doc-suggestion p{font-size:15px}.simpay-doc-suggestion .dashicons{font-size:40px;width:40px;height:40px;display:block;margin-bottom:10px}.simpay-doc-suggestion .button-large{font-size:16px}.simpay-addons{display:flex;flex-wrap:wrap;justify-content:space-between;margin:20px 0}.simpay-addon{background:#fff;border:1px solid #c3c4c7;box-shadow:0 1px 1px rgba(0,0,0,.04);margin-bottom:20px;display:flex;flex-direction:column;flex-basis:calc(33% - 10px);box-sizing:border-box}@media screen and (max-width: 782px){.simpay-addon{flex-basis:100%}}.simpay-addon img{float:left;max-width:75px}.simpay-addon h5{margin:0 0 10px 100px;font-size:16px}.simpay-addon__details{padding:20px;flex:1 0 auto}.simpay-addon__actions{display:flex;align-items:center;justify-content:space-between;flex:0 1 auto;background-color:#f7f7f7;border-top:1px solid #ddd;margin-top:auto;padding:20px;position:relative}.simpay-addon__actions .msg{text-align:center;justify-content:center;display:flex;align-items:center;position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;background-color:#f7f7f7;z-index:3}.simpay-addon .error,.simpay-addon .status-label.status-installed{color:#d63638}.simpay-addon .success,.simpay-addon .status-label.status-active{color:#00a32a}.simpay-addon .addon-desc{margin:0 0 0 100px}.form-table td .simpay-stripe-connect-help{margin:15px 0;display:flex;align-items:center}.form-table td .simpay-stripe-connect-help .dashicons{margin-right:4px}.simpay-currency-field{display:flex;align-items:center}>.simpay-currency-field:focus{position:relative;z-index:5}.simpay-currency-symbol{margin:0;padding-left:8px;padding-right:8px;line-height:28px;font-size:14px}@media screen and (max-width: 782px){.simpay-currency-symbol{line-height:38px}}.simpay-currency-symbol-left{border-top-left-radius:4px;border-bottom-left-radius:4px}.simpay-currency-symbol-right{border-top-right-radius:4px;border-bottom-right-radius:4px}div.simpay-currency-symbol{border-color:#7e8993;border-style:solid;background-color:#fff}select.simpay-currency-symbol{padding-right:25px}.simpay-currency-symbol-left{border-width:1px 0 1px 1px}.simpay-currency-symbol-left+.simpay-field-amount{border-radius:0 4px 4px 0}.simpay-currency-symbol-right{border-width:1px 1px 1px 0}.simpay-field-amount{margin:0;padding-left:8px;padding-right:8px;font-size:14px;width:6em;position:relative;z-index:2;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.post-new-php.post-type-simple-pay #screen-meta-links,.post-php.post-type-simple-pay #screen-meta-links,.edit-php.post-type-simple-pay #screen-meta-links{display:none}.simpay-branding-bar{margin-left:-20px;padding:14px 20px 14px 22px;background:#fff;border-bottom:1px solid #c3c4c7;box-shadow:0 1px 1px rgba(0,0,0,.04)}.simpay-branding-bar__title{display:flex;align-items:center;float:left;margin:8px 0}.simpay-branding-bar__logo{width:200px}.simpay-branding-bar__divider{color:#dadbdf;font-size:23px;font-weight:400;margin:0 15px}.simpay-branding-bar__actions{float:right;margin-top:4px;display:flex;align-items:center}.simpay-branding-bar__actions>div{margin-left:10px;min-width:40px}.simpay-branding-bar__actions-button{color:#000;cursor:pointer;padding:10px;width:40px;height:40px;background-color:#f3f4f5;border-radius:50%;border:0;box-shadow:none;position:relative;transition:background-color .2s ease;box-sizing:border-box;display:block}.simpay-branding-bar__actions-button:hover{background-color:#e5e5e5}.simpay-branding-bar__actions-button:active,.simpay-branding-bar__actions-button:focus{box-shadow:0 0 0 2px var(--wp-admin-theme-color)}.simpay-branding-bar__actions-button-count{font-weight:600;font-size:10px;line-height:16px;color:#fff;margin:0;background-color:#df2a4a;border-radius:100%;width:16px;height:16px;position:absolute;top:-8px;left:50%;margin-left:-8px}.simpay-branding-bar .wp-heading-inline{font-size:23px;font-weight:400;margin:0}.simpay-branding-bar .page-title-action{font-weight:600;font-size:13px;line-height:normal;cursor:pointer;text-shadow:none;text-decoration:none;margin-left:10px;padding:4px 8px;border:1px solid currentColor;border-radius:2px;background:#f6f7f7}.simpay-landing-zone{text-align:center;max-width:700px;margin:40px auto}.simpay-landing-zone__title{font-size:26px;font-weight:600;margin:0 0 1.5rem;padding:0}.simpay-landing-zone__subtitle{font-size:17px;color:#666;margin:.25rem 0}.simpay-landing-zone__subtitle strong{color:#444}.simpay-landing-zone section{margin:2rem 0}.simpay-landing-zone__empty-state-graphic img{width:425px}.simpay-landing-zone__screenshot>*{vertical-align:middle}.simpay-landing-zone__screenshot-img{display:inline-block;position:relative;width:315px;padding:5px;background-color:#fff;box-shadow:0px 2px 5px 0px rgba(0,0,0,.05);border-radius:3px}.simpay-landing-zone__screenshot-img img{max-width:100%;display:block}.simpay-landing-zone__screenshot-img .hover{position:absolute;opacity:0;height:calc(100% - 10px);width:calc(100% - 10px);top:0;left:0;border:5px solid #fff;background-color:rgba(0,0,0,.15);background-image:url(data:image/svg+xml;base64,PHN2ZyBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiPjxwYXRoIGQ9Ik01MCAwYzI3LjYxNCAwIDUwIDIyLjM4NiA1MCA1MHMtMjIuMzg2IDUwLTUwIDUwUzAgNzcuNjE0IDAgNTAgMjIuMzg2IDAgNTAgMHoiIGZpbGw9IiMxNjg1YjciLz48cGF0aCBkPSJNNzMuMDIzIDY3LjA2N2wtOS4zNDQtOS4zNDRhMi4yNDcgMi4yNDcgMCAwMC0xLjU5My0uNjU2aC0xLjUyOGExOS4zOTkgMTkuMzk5IDAgMDA0LjEyNC0xMS45OTZjMC0xMC43Ny04LjcyNS0xOS40OTUtMTkuNDk0LTE5LjQ5NS0xMC43NjggMC0xOS40OTQgOC43MjYtMTkuNDk0IDE5LjQ5NSAwIDEwLjc2OCA4LjcyNiAxOS40OTMgMTkuNDk0IDE5LjQ5M2ExOS40IDE5LjQgMCAwMDExLjk5Ny00LjEyM3YxLjUyN2MwIC42LjIzNCAxLjE3Mi42NTUgMS41OTRsOS4zNDQgOS4zNDRhMi4yNCAyLjI0IDAgMDAzLjE3OCAwbDIuNjUyLTIuNjUzYTIuMjYgMi4yNiAwIDAwLjAxLTMuMTg2em0tMjcuODM1LTEwYy02LjYyNiAwLTExLjk5Ni01LjM2MS0xMS45OTYtMTEuOTk2IDAtNi42MjcgNS4zNi0xMS45OTcgMTEuOTk2LTExLjk5NyA2LjYyNiAwIDExLjk5NyA1LjM2MSAxMS45OTcgMTEuOTk3IDAgNi42MjYtNS4zNjEgMTEuOTk2LTExLjk5NyAxMS45OTZ6IiBmaWxsPSIjZmZmIi8+PC9zdmc+);background-repeat:no-repeat;background-position:center;background-size:50px;transition:all .3s}.simpay-landing-zone__screenshot-img:hover .hover{opacity:1;transition:all .3s}.simpay-landing-zone__screenshot ul{text-align:left;display:inline-block;margin:0 0 0 30px;list-style-type:none;max-width:calc(100% - 350px)}@media screen and (max-width: 782px){.simpay-landing-zone__screenshot ul{text-align:center;margin:30px auto;max-width:100%;display:block}}.simpay-landing-zone__screenshot li{margin:16px 0;padding:0;font-size:15px;color:#777;position:relative}.simpay-landing-zone__screenshot li:before{content:"";background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEzLjc3NjIgNi40NTYwNUw4LjcyMDMyIDEuNDAwMDVDOC41NzU5OSAxLjI1NTcyIDguMzgzNjQgMS4xNzY1IDguMTc4NTMgMS4xNzY1QzcuOTczMiAxLjE3NjUgNy43ODA5NiAxLjI1NTg0IDcuNjM2NjQgMS40MDAwNUw3LjE3NzYgMS44NTkyQzcuMDMzMzkgMi4wMDMyOSA2Ljk1Mzk1IDIuMTk1NzYgNi45NTM5NSAyLjQwMDk4QzYuOTUzOTUgMi42MDYwOCA3LjAzMzM5IDIuODA1MDQgNy4xNzc2IDIuOTQ5MTRMMTAuMTI3MSA1LjkwNTE2SDAuNzU2MzM0QzAuMzMzODM0IDUuOTA1MTYgMCA2LjIzNTkyIDAgNi42NTg1NFY3LjMwNzY1QzAgNy43MzAyNyAwLjMzMzgzNCA4LjA5NDM4IDAuNzU2MzM0IDguMDk0MzhIMTAuMTYwNkw3LjE3NzcyIDExLjA2NjlDNy4wMzM1MSAxMS4yMTEyIDYuOTU0MDYgMTEuMzk4NSA2Ljk1NDA2IDExLjYwMzdDNi45NTQwNiAxMS44MDg3IDcuMDMzNTEgMTEuOTk4NiA3LjE3NzcyIDEyLjE0MjhMNy42MzY3NSAxMi42MDA1QzcuNzgxMDcgMTIuNzQ0OCA3Ljk3MzMyIDEyLjgyMzUgOC4xNzg2NSAxMi44MjM1QzguMzgzNzUgMTIuODIzNSA4LjU3NjExIDEyLjc0MzggOC43MjA0MyAxMi41OTk1TDEzLjc3NjMgNy41NDM2QzEzLjkyMSA3LjM5ODgyIDE0LjAwMDUgNy4yMDU1NiAxNCA3LjAwMDExQzE0LjAwMDQgNi43OTM5OCAxMy45MjEgNi42MDA2IDEzLjc3NjIgNi40NTYwNVY2LjQ1NjA1WiIgZmlsbD0iIzQyOEJDQSIvPgo8L3N2Zz4K);background-position:center;background-repeat:no-repeat;background-size:14px;width:14px;height:14px;display:inline-block;margin:-3px 5px 0 0;vertical-align:middle}.simpay-landing-zone .button.button-large{font-size:17px;line-height:30px;padding:10px 20px}.simpay-landing-zone__purchased{display:block;margin:15px 0 0}.simpay-upgrade-modal{padding:0 !important}.simpay-upgrade-modal *{box-sizing:border-box}.simpay-upgrade-modal__content{text-align:center;display:flex;flex-direction:column;align-items:center;padding:16px 32px 32px}.simpay-upgrade-modal__content>.dashicons{color:#333;font-size:48px;width:48px;height:48px}.simpay-upgrade-modal__title{font-size:22px;line-height:1.5;display:block;margin:12px 0 0}.simpay-upgrade-modal__description{color:#777;font-size:16px;margin:16px 0 24px}.simpay-upgrade-modal__description strong{color:#333}.simpay-upgrade-modal__discount{font-size:15px;text-align:center;margin:32px -32px -32px;padding:24px 40px;background-color:#fcf9e8;position:relative}.simpay-upgrade-modal__discount svg{background:#00a32a;fill:#fff;border-radius:50%;border:4px solid #fff;width:32px;height:32px;position:absolute;top:-16px;left:50%;margin-left:-16px}.simpay-upgrade-modal__discount u{text-decoration:none;font-weight:bold;color:#00a32a}.simpay-upgrade-modal .button-large{font-size:16px;font-weight:bold;margin:0 0 15px;padding:8px 30px !important;height:auto}.simpay-teaser-float{margin:50px;position:relative}.simpay-teaser-float__card{text-align:center;padding:30px;background:#fff;border-radius:4px;box-shadow:0 0 30px 15px rgba(0,0,0,.18);position:relative;z-index:2}#poststuff .simpay-teaser-float h2,.simpay-teaser-float h2{font-size:24px;font-weight:600;margin:0;padding:0}.simpay-teaser-float p{font-size:15px;line-height:1.35;color:#666}.simpay-teaser-float p strong{color:#444}.simpay-teaser-float ul{text-align:left;display:inline-block;margin:-10px 0 20px;list-style-type:none}.simpay-teaser-float li{margin:16px 0;padding:0 0 0 24px;font-size:15px;background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEzLjc3NjIgNi40NTYwNUw4LjcyMDMyIDEuNDAwMDVDOC41NzU5OSAxLjI1NTcyIDguMzgzNjQgMS4xNzY1IDguMTc4NTMgMS4xNzY1QzcuOTczMiAxLjE3NjUgNy43ODA5NiAxLjI1NTg0IDcuNjM2NjQgMS40MDAwNUw3LjE3NzYgMS44NTkyQzcuMDMzMzkgMi4wMDMyOSA2Ljk1Mzk1IDIuMTk1NzYgNi45NTM5NSAyLjQwMDk4QzYuOTUzOTUgMi42MDYwOCA3LjAzMzM5IDIuODA1MDQgNy4xNzc2IDIuOTQ5MTRMMTAuMTI3MSA1LjkwNTE2SDAuNzU2MzM0QzAuMzMzODM0IDUuOTA1MTYgMCA2LjIzNTkyIDAgNi42NTg1NFY3LjMwNzY1QzAgNy43MzAyNyAwLjMzMzgzNCA4LjA5NDM4IDAuNzU2MzM0IDguMDk0MzhIMTAuMTYwNkw3LjE3NzcyIDExLjA2NjlDNy4wMzM1MSAxMS4yMTEyIDYuOTU0MDYgMTEuMzk4NSA2Ljk1NDA2IDExLjYwMzdDNi45NTQwNiAxMS44MDg3IDcuMDMzNTEgMTEuOTk4NiA3LjE3NzcyIDEyLjE0MjhMNy42MzY3NSAxMi42MDA1QzcuNzgxMDcgMTIuNzQ0OCA3Ljk3MzMyIDEyLjgyMzUgOC4xNzg2NSAxMi44MjM1QzguMzgzNzUgMTIuODIzNSA4LjU3NjExIDEyLjc0MzggOC43MjA0MyAxMi41OTk1TDEzLjc3NjMgNy41NDM2QzEzLjkyMSA3LjM5ODgyIDE0LjAwMDUgNy4yMDU1NiAxNCA3LjAwMDExQzE0LjAwMDQgNi43OTM5OCAxMy45MjEgNi42MDA2IDEzLjc3NjIgNi40NTYwNVY2LjQ1NjA1WiIgZmlsbD0iIzQyOEJDQSIvPgo8L3N2Zz4K);background-position:left 3px;background-repeat:no-repeat;background-size:14px;color:#777}.simpay-teaser-float .button.button-large{font-size:17px;line-height:30px;padding:10px 20px}.simpay-teaser-float .simpay-notice-dismiss{position:absolute;top:0;right:0;font-size:20px;color:#666;font-weight:bold;text-decoration:none;margin-left:5px;padding:6px 10px;z-index:2}.simpay-teaser-float .simpay-notice-dismiss:hover,.simpay-teaser-float .simpay-notice-dismiss:active,.simpay-teaser-float .simpay-notice-dismiss:focus{color:#666;text-decoration:none}.simpay-teaser-float:after,.simpay-teaser-float:before{opacity:.75;z-index:0;content:"";position:absolute;left:-30px;right:-30px;top:-35px;width:calc(100% + 60px);height:170px;background-image:linear-gradient(#ddd, #ddd),linear-gradient(#eee, #eee),linear-gradient(#ddd, #ddd),linear-gradient(#eee, #eee);background-repeat:no-repeat;background-size:100% 20px,100% 40px,100% 20px,100% 40px;background-position:0 0,0 30px,0 100px,0 130px}.simpay-teaser-float:before{top:170px}.simpay-teaser-float .simpay-upgrade-btn-subtext{margin:24px -30px -30px;padding:32px 40px;border-bottom-left-radius:2px;border-bottom-right-radius:2px;border:0}.simpay-teaser-float .simpay-upgrade-btn-subtext svg{border-color:#fff}.simpay-teaser-float--inline{margin:40px 30px 30px}.simpay-teaser-float--inline .simpay-teaser-float__card{padding:30px;box-shadow:0 0 12px 6px rgba(0,0,0,.16)}#poststuff .simpay-teaser-float--inline h2,.simpay-teaser-float--inline h2{font-size:20px}.simpay-teaser-float--inline p{font-size:15px;margin:.75rem 0}.simpay-teaser-float--inline .button.button-large{font-size:15px;line-height:24px;margin:1rem 0;padding:8px 14px;display:inline-block}.simpay-teaser-float--inline:before,.simpay-teaser-float--inline:after{opacity:.6}.simpay-teaser-float--inline:before{display:none}.simpay-teaser-float--inline:after{top:15px}.simpay-form-settings-notice{color:#1d2327;position:relative;margin:18px 18px 0;padding:14px;border-radius:4px;background:#f5f5ff}.simpay-form-settings-notice a{color:#635aff}.simpay-form-settings-notice .simpay-external-link .dashicons-external{margin:1px 0 0 2px}.simpay-form-settings-notice strong{font-size:14px}.simpay-form-settings-notice p{margin:5px 0 0 23px}.simpay-form-settings-notice .simpay-notice-dismiss{font-size:20px;color:#b0b0f0;font-weight:bold;line-height:1;position:absolute;top:0;right:5px;text-decoration:none;padding:0 5px;z-index:2}.simpay-form-settings-notice .simpay-notice-dismiss:hover,.simpay-form-settings-notice .simpay-notice-dismiss:active,.simpay-form-settings-notice .simpay-notice-dismiss:focus{color:#9191ef;text-decoration:none;background:none}.post-type-simple-pay .lity{z-index:999999999;padding:20px}.post-type-simple-pay .lity-close{margin:10px}.post-type-simple-pay .lity-content{max-width:80vw;max-height:80vh}.post-type-simple-pay .lity-content img{max-height:80vh !important;max-width:80vw !important}#wpsp-api-keys-row-hide{display:none}.post-type-simple-pay #post-preview:not(.simpay-preview-button){display:none}.simpay-license-field-wrapper{margin:20px 0}#simpay-settings-license-key-license-key{margin:0}#simpay-settings-license-key-license-key[readonly]{background:#fff}.simpay-license-message__loading,.simpay-license-field{display:flex;align-items:center}.wp-core-ui .button.simpay-license-button.button-primary,.wp-core-ui .button.simpay-license-button.button-secondary{font-size:1rem;line-height:1;margin:0 8px;padding:13px}.simpay-license-message{font-size:15px;margin-top:8px}.simpay-license-message--valid{color:green}.simpay-license-message--invalid{color:#cc1818} +.simpay-settings-subsections{display:flex;align-items:center;box-shadow:inset 0 -1px 0 0 #ccc}.simpay-settings-subsections__subsection{font-weight:500;text-decoration:none;padding:15px;display:flex;align-items:center}.simpay-settings-subsections__subsection .dashicons{width:18px;height:18px;font-size:18px;margin-right:4px}.simpay-settings-subsections__subsection.is-active{box-shadow:inset 0 -4px 0 0 currentColor;position:relative;z-index:1}.simpay-settings-subsections__subsection:not(.is-active){color:#23282d}.simpay-settings form>h2:not(.nav-tab-wrapper){clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;position:absolute !important;width:1px}.simpay-settings .form-table td fieldset+p,.simpay-settings .form-table td label+p,.simpay-settings .form-table td select+p,.simpay-settings .form-table td input+p{color:#666;font-style:italic}.simpay-settings .simpay-settings-subsections__subsection{display:flex;align-items:center}.simpay-settings .simpay-settings-subsections__subsection .simpay-settings-bubble{margin-left:5px}.button.button-large.simpay-button-large{font-size:14px;line-height:30px;padding:4px 12px}.simpay-copy-hidden-input{clip:rect(1px, 1px, 1px, 1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.fixed .column-livemode{width:15%;text-align:right}@media screen and (max-width: 782px){.fixed .column-livemode{text-align:left}}.fixed .column-livemode .simpay-badge{margin-top:3px}.fixed .column-shortcode{width:25%}.fixed .column-shortcode .simpay-shortcode{clip:rect(1px, 1px, 1px, 1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.post-type-simple-pay .misc-pub-curtime,.post-type-simple-pay .misc-pub-visibility{display:none}.simpay-metabox-title{border:1px solid #eee}.simpay-shortcode-section{border-top:1px solid #ddd;border-width:1px 0;padding-top:15px;padding-bottom:15px;position:relative}.simpay-shortcode-section label{display:block;margin-bottom:6px}.simpay-shortcode-section label .dashicons{color:#8c8f94;margin-right:3px}.simpay-shortcode-section .simpay-copy-button{line-height:normal;position:absolute;right:20px;bottom:20px;border:0;background:none;box-shadow:none;padding:0}.simpay-shortcode-section .simpay-copy-button:hover{border:0;background:none;box-shadow:none}.simpay-shortcode-section .simpay-copy-button .dashicons{color:#3c434a}.simpay-shortcode{width:100%;padding:8px;line-height:1;margin:0;height:32px;resize:none}.simpay-badge{color:#3f3f46;text-align:center;line-height:1;padding:5px 7px;border-radius:3px;background:#e4e4e7;border:0;box-shadow:none;display:inline-flex;align-items:center}button.simpay-badge{cursor:pointer}button.simpay-badge:hover{background:#d4d4d8}.simpay-badge__icon{opacity:.8;margin:2px 5px 0 0}.simpay-badge--green{color:#0e6245;background:#cbf4c9}.simpay-badge--yellow{color:#983705;background:#f8e5b9}.simpay-stripe-account-info{display:flex;align-items:center;margin-bottom:8px}.simpay-stripe-account-info .spinner{float:none;margin-top:0;margin-left:0}.simple-pay_page_simpay_settings .simpay-settings-upgrade,.post-type-simple-pay .simpay-settings-upgrade{margin-top:20px;padding:1px;position:relative;background:#fff;border-radius:4px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2),0 5px 10px rgba(0,0,0,.1);max-width:677px}.simple-pay_page_simpay_settings .simpay-settings-upgrade__inner,.post-type-simple-pay .simpay-settings-upgrade__inner{text-align:center;margin:0;padding:30px}.simple-pay_page_simpay_settings .simpay-settings-upgrade h3,.post-type-simple-pay .simpay-settings-upgrade h3{line-height:1.5;font-size:22px;margin:0 0 1.5rem}.simple-pay_page_simpay_settings .simpay-settings-upgrade ul,.post-type-simple-pay .simpay-settings-upgrade ul{margin:1.5rem 0 calc(1.5rem - 6px);display:flex;flex-wrap:wrap;justify-content:center}@media screen and (min-width: 782px){.simple-pay_page_simpay_settings .simpay-settings-upgrade ul,.post-type-simple-pay .simpay-settings-upgrade ul{margin-left:4rem;margin-right:4rem}}.simple-pay_page_simpay_settings .simpay-settings-upgrade li,.post-type-simple-pay .simpay-settings-upgrade li{font-size:15px;margin:6px 0;width:100%}.simple-pay_page_simpay_settings .simpay-settings-upgrade li a,.post-type-simple-pay .simpay-settings-upgrade li a{color:#3c434a;text-decoration:none}.simple-pay_page_simpay_settings .simpay-settings-upgrade li a:hover,.post-type-simple-pay .simpay-settings-upgrade li a:hover{color:var(--wp-admin-theme-color);text-decoration:underline}@media screen and (min-width: 782px){.simple-pay_page_simpay_settings .simpay-settings-upgrade li,.post-type-simple-pay .simpay-settings-upgrade li{text-align:left;width:50%}}.simple-pay_page_simpay_settings .simpay-settings-upgrade .button.button-large,.post-type-simple-pay .simpay-settings-upgrade .button.button-large{font-size:17px;line-height:30px;padding:10px 20px}.simple-pay_page_simpay_settings .simpay-settings-upgrade small,.post-type-simple-pay .simpay-settings-upgrade small{color:#666;margin:15px 0 0;display:block}.simple-pay_page_simpay_settings .simpay-settings-upgrade .dashicons-yes,.post-type-simple-pay .simpay-settings-upgrade .dashicons-yes{color:#428bca}.simple-pay_page_simpay_settings .simpay-settings-upgrade .button-link,.post-type-simple-pay .simpay-settings-upgrade .button-link{position:absolute;top:0;right:0;font-size:20px;color:#666;font-weight:bold;text-decoration:none;margin-left:5px;padding:6px 10px;z-index:2}.simple-pay_page_simpay_settings .simpay-settings-upgrade .button-link:hover,.simple-pay_page_simpay_settings .simpay-settings-upgrade .button-link:active,.simple-pay_page_simpay_settings .simpay-settings-upgrade .button-link:focus,.post-type-simple-pay .simpay-settings-upgrade .button-link:hover,.post-type-simple-pay .simpay-settings-upgrade .button-link:active,.post-type-simple-pay .simpay-settings-upgrade .button-link:focus{color:#666;text-decoration:none}.simple-pay_page_simpay_settings .simpay-settings-upgrade .simpay-upgrade-btn-subtext,.post-type-simple-pay .simpay-settings-upgrade .simpay-upgrade-btn-subtext{text-align:center;margin:0;padding:30px 20px 20px;background-color:#fcf9e8;border:1px solid #edeac9;border-width:1px 0 0;position:relative;border-radius:0;border-bottom-left-radius:4px;border-bottom-right-radius:4px}@media screen and (min-width: 782px){.simple-pay_page_simpay_settings .simpay-settings-upgrade .simpay-upgrade-btn-subtext,.post-type-simple-pay .simpay-settings-upgrade .simpay-upgrade-btn-subtext{padding-left:4rem;padding-right:4rem}}.simple-pay_page_simpay_settings .simpay-settings-upgrade .simpay-upgrade-btn-subtext svg,.post-type-simple-pay .simpay-settings-upgrade .simpay-upgrade-btn-subtext svg{background:#00a32a;fill:#fff;border-radius:50%;border:4px solid #fff;box-shadow:0 0 0 1px #edeac9;width:28px;height:28px;position:absolute;top:-18px;left:50%;margin-left:-18px}.simple-pay_page_simpay_settings .simpay-settings-upgrade .simpay-upgrade-btn-subtext u,.post-type-simple-pay .simpay-settings-upgrade .simpay-upgrade-btn-subtext u{text-decoration:none;font-weight:bold;color:#00a32a}.simple-pay_page_simpay_settings .simpay-settings-upgrade .simpay-upgrade-btn-subtext a,.post-type-simple-pay .simpay-settings-upgrade .simpay-upgrade-btn-subtext a{font-weight:normal;display:inline-block}#simpay-payment-form-settings table{width:100%;border-collapse:collapse}#simpay-payment-form-settings ::-webkit-input-placeholder{color:#9ba1a9}#simpay-payment-form-settings ::-moz-placeholder{color:#9ba1a9;opacity:1}#simpay-payment-form-settings :-ms-input-placeholder{color:#9ba1a9}#simpay-payment-form-settings .inside{margin:0;padding:0}#simpay-payment-form-settings .simpay-panel-field .toolbar{margin-bottom:-4px}#simpay-payment-form-settings .simpay-panel-field .toolbar .simpay-field-select{margin:0 0 4px;width:auto;max-width:70%}#simpay-payment-form-settings .simpay-tabs{margin:0;padding:0;list-style:none;background:#fafafa;border-right:1px solid #ccd0d4;line-height:1em;position:relative;flex:0 0 25%}@media screen and (max-width: 782px){#simpay-payment-form-settings .simpay-tabs{flex-basis:100%;flex-grow:1;border-right:0}}#simpay-payment-form-settings .simpay-tabs li{margin:0;padding:0}#simpay-payment-form-settings .simpay-tabs li:first-child{margin-top:-1px}#simpay-payment-form-settings .simpay-tabs li:last-child{margin-bottom:20px}@media screen and (max-width: 782px){#simpay-payment-form-settings .simpay-tabs li:last-child{margin-bottom:0}}#simpay-payment-form-settings .simpay-tabs li.active{margin-left:-1px;box-shadow:0 1px 1px rgba(0,0,0,.04);position:relative}#simpay-payment-form-settings .simpay-tabs li.active:focus:after{display:none}#simpay-payment-form-settings .simpay-tabs li.active:before,#simpay-payment-form-settings .simpay-tabs li.active:after{content:"";width:calc(100% + 1px);height:1px;background:#ccd0d4;position:absolute;top:0;left:0;right:0;z-index:2}#simpay-payment-form-settings .simpay-tabs li.active:after{top:auto;bottom:0}#simpay-payment-form-settings .simpay-tabs li.active a{font-weight:bold;background-color:#fff;position:relative;margin-right:-1px}#simpay-payment-form-settings .simpay-tabs li.active a:before{content:"";position:absolute;top:0;left:0;bottom:0;width:4px;height:100%;background:currentColor;z-index:3}@media screen and (max-width: 782px){#simpay-payment-form-settings .simpay-tabs li.active a{margin-right:0}}#simpay-payment-form-settings .simpay-tabs li .simpay-tab-item{display:flex;align-items:center;line-height:20px;margin:0;padding:10px 10px 10px 14px;text-decoration:none;transition:all .05s ease-in-out}#simpay-payment-form-settings .simpay-tabs li .simpay-tab-item svg,#simpay-payment-form-settings .simpay-tabs li .simpay-tab-item .dashicons{margin-right:6px}@media screen and (max-width: 782px){#simpay-payment-form-settings .simpay-tabs li .simpay-tab-item{padding:18px}}#simpay-payment-form-settings .simpay-tabs li .simpay-tab-item:focus{outline:0;position:relative;z-index:3;box-shadow:inset 0 0 0 2px currentColor}#simpay-payment-form-settings .simpay-tabs li:not(.active) .simpay-tab-item{color:inherit}#simpay-payment-form-settings .simpay-panels-wrap{background:#fff;display:flex}@media screen and (max-width: 782px){#simpay-payment-form-settings .simpay-panels-wrap{flex-direction:column}}#simpay-payment-form-settings .simpay-panels{flex:0 0 75%;display:flex}@media screen and (max-width: 782px){#simpay-payment-form-settings .simpay-panels{flex-basis:100%}}#simpay-payment-form-settings .simpay-panel,#simpay-payment-form-settings .simpay-panel-section{width:100%}#simpay-payment-form-settings .simpay-panel>table,#simpay-payment-form-settings .simpay-panel>table>tr,#simpay-payment-form-settings .simpay-panel>table>tbody,#simpay-payment-form-settings .simpay-panel>table>tbody>tr,#simpay-payment-form-settings .simpay-panel>table>thead,#simpay-payment-form-settings .simpay-panel>table>thead>tr{display:block;width:100%}#simpay-payment-form-settings .simpay-panel>table:last-child>tbody:last-child>tr:last-child>td{border-bottom:0}#simpay-payment-form-settings .simpay-panel-field--requires-upgrade{position:relative}#simpay-payment-form-settings .simpay-panel-field--requires-upgrade td>div{margin-right:80px}#simpay-payment-form-settings .simpay-panel-field--requires-upgrade td>div .button-small{position:absolute;top:calc(50% - 13px);right:18px}#simpay-payment-form-settings .simpay-panel-field,#simpay-payment-form-settings .simpay-panel-field>td,#simpay-payment-form-settings .simpay-panel-field>th{text-align:left;display:block}#simpay-payment-form-settings .simpay-panel-field>td,#simpay-payment-form-settings .simpay-panel-field>th{width:calc(100% - 36px);margin-left:18px;margin-right:18px}#simpay-payment-form-settings .simpay-panel-field th{font-weight:bold;padding-top:18px;padding-bottom:5px}#simpay-payment-form-settings .simpay-panel-field td{border-bottom:1px solid #ddd;padding-bottom:18px}#simpay-payment-form-settings .simpay-panel-field p.description{margin-top:4px}#simpay-payment-form-settings .simpay-panel-field p.description:last-of-type{margin-bottom:0}#simpay-payment-form-settings .simpay-panel-field .simpay-panel-field__nested{margin-top:18px}#simpay-payment-form-settings .simpay-panel-field .simpay-panel-field__nested label{font-weight:bold;display:block;margin-bottom:4px}#simpay-payment-form-settings .simpay-panel-field .simpay-field-select,#simpay-payment-form-settings .simpay-panel-field .simpay-field-text{min-width:75%;max-width:100%}@media screen and (max-width: 782px){#simpay-payment-form-settings .simpay-panel-field .simpay-field-select,#simpay-payment-form-settings .simpay-panel-field .simpay-field-text{min-width:0;width:100%}}#simpay-payment-form-settings .simpay-panel-field .simpay-field-textarea{width:100%;max-width:100%}#simpay-payment-form-settings .simpay-panel-field .notice:last-of-type{margin-bottom:0}#simpay-payment-form-settings .simpay-panel-field .error,#simpay-payment-form-settings .simpay-panel-field .simpay-important{color:#a94442;font-weight:normal}#simpay-payment-form-settings .simpay-panel-field .simpay-image-preview-wrap{position:relative;margin-top:12px}#simpay-payment-form-settings .simpay-panel-field .simpay-image-preview-wrap .simpay-remove-image-preview{position:absolute;top:-15px;left:-15px;cursor:pointer;background-color:#fff}#simpay-payment-form-settings .simpay-panel-field .simpay-image-preview-wrap .simpay-remove-image-preview::before{font-size:22px;line-height:26px}#simpay-payment-form-settings .simpay-panel-field .simpay-image-preview-wrap .simpay-image-preview{max-height:128px;max-width:128px;border:1px solid #ddd}#simpay-payment-form-settings .simpay-panel .simpay-promo-under-box{background-color:#f4f4f4;border:1px solid #e5e5e5;padding:18px;margin-top:18px;position:relative}#simpay-payment-form-settings .simpay-panel .simpay-promo-under-box__dismiss{color:inherit;text-decoration:none;position:absolute;top:8px;right:8px}#simpay-payment-form-settings .simpay-panel .simpay-promo-under-box__dismiss .dashicons-dismiss{font-size:16px;width:16px;height:16px}#simpay-payment-form-settings .simpay-panel .simpay-promo-under-box h3{font-size:18px;font-weight:600;margin:0;padding:0}#simpay-payment-form-settings .simpay-panel .simpay-promo-under-box p{font-size:14px}#simpay-payment-form-settings .simpay-panel .simpay-promo-under-box p:last-child{margin-bottom:0}#simpay-payment-form-settings .simpay-metabox-content{margin-bottom:-1px;background-color:#f5f5f5;border:1px solid #c3c4c7;border-width:1px 0;box-shadow:0 1px 1px rgba(0,0,0,.04);position:relative}#simpay-payment-form-settings .simpay-show-if,#simpay-payment-form-settings .simpay-panel-hidden{display:none}#simpay-payment-form-settings .simpay-payment-methods{border:1px solid #ccd0d4;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,.04)}#simpay-payment-form-settings .simpay-panel-field-payment-method{display:block;border-top:1px solid #ccd0d4;padding:7px;box-sizing:border-box}#simpay-payment-form-settings .simpay-panel-field-payment-method:first-child{border-top:0;border-top-left-radius:4px;border-top-right-radius:4px}#simpay-payment-form-settings .simpay-panel-field-payment-method input[type=checkbox]{margin-top:0;margin-right:8px}#simpay-payment-form-settings .simpay-panel-field-payment-method__help{color:#666;text-decoration:none;margin-right:5px}#simpay-payment-form-settings .simpay-panel-field-payment-method__help .dashicons{font-size:18px;width:18px;height:18px}#simpay-payment-form-settings .simpay-panel-field-payment-method__restrictions,#simpay-payment-form-settings .simpay-panel-field-payment-method__restrictions-ach{margin-left:72px}#simpay-payment-form-settings .simpay-panel-field-payment-method__icon{border-radius:3px;overflow:hidden;margin:0 8px 0 5px;width:30px;height:30px;flex-shrink:0}#simpay-payment-form-settings .simpay-panel-field-payment-method__icon svg{width:30px;height:30px}#simpay-global-settings .sortable-placeholder,#simpay-form-settings .sortable-placeholder{margin:5px;display:block;min-height:36px}#simpay-global-settings .chosen-container,#simpay-form-settings .chosen-container{min-width:20em;max-width:30em}#simpay-global-settings .simpay-field.simpay-small-text,#simpay-form-settings .simpay-field.simpay-small-text{width:7em}#simpay-global-settings .simpay-field.simpay-medium-text,#simpay-form-settings .simpay-field.simpay-medium-text{width:15em}#simpay-global-settings .simpay-field-radios ul,#simpay-form-settings .simpay-field-radios ul{margin:0}#simpay-global-settings .simpay-field-radios>i,#simpay-form-settings .simpay-field-radios>i{margin-left:5px;vertical-align:middle}#simpay-global-settings ul.simpay-field-radios-inline,#simpay-form-settings ul.simpay-field-radios-inline{margin:0 0 -10px}#simpay-global-settings ul.simpay-field-radios-inline li,#simpay-form-settings ul.simpay-field-radios-inline li{display:inline-block;margin:0 10px 10px 0}#simpay-global-settings ul.simpay-field-radios-inline li:last-child,#simpay-form-settings ul.simpay-field-radios-inline li:last-child{margin-right:0}#simpay-global-settings .simpay-currency-field,#simpay-form-settings .simpay-currency-field{display:flex;align-items:center}>#simpay-global-settings .simpay-currency-field:focus,>#simpay-form-settings .simpay-currency-field:focus{position:relative;z-index:5}#simpay-global-settings .simpay-currency-symbol,#simpay-form-settings .simpay-currency-symbol{margin:0;padding-left:8px;padding-right:8px;line-height:28px;font-size:14px}@media screen and (max-width: 782px){#simpay-global-settings .simpay-currency-symbol,#simpay-form-settings .simpay-currency-symbol{line-height:38px}}#simpay-global-settings .simpay-currency-symbol-left,#simpay-form-settings .simpay-currency-symbol-left{border-top-left-radius:4px;border-bottom-left-radius:4px}#simpay-global-settings .simpay-currency-symbol-right,#simpay-form-settings .simpay-currency-symbol-right{border-top-right-radius:4px;border-bottom-right-radius:4px}#simpay-global-settings div.simpay-currency-symbol,#simpay-form-settings div.simpay-currency-symbol{border-color:#7e8993;border-style:solid;background-color:#fff}#simpay-global-settings select.simpay-currency-symbol,#simpay-form-settings select.simpay-currency-symbol{padding-right:25px}#simpay-global-settings .simpay-currency-symbol-left,#simpay-form-settings .simpay-currency-symbol-left{border-width:1px 0 1px 1px}#simpay-global-settings .simpay-currency-symbol-left+.simpay-field-amount,#simpay-form-settings .simpay-currency-symbol-left+.simpay-field-amount{border-radius:0 4px 4px 0}#simpay-global-settings .simpay-currency-symbol-right,#simpay-form-settings .simpay-currency-symbol-right{border-width:1px 1px 1px 0}#simpay-global-settings .simpay-field-amount,#simpay-form-settings .simpay-field-amount{margin:0;padding-left:8px;padding-right:8px;font-size:14px;width:6em;position:relative;z-index:2;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px}#simpay-global-settings .simpay-error,#simpay-form-settings .simpay-error{color:red}#simpay-global-settings .simpay-docs-link-wrap,#simpay-form-settings .simpay-docs-link-wrap{position:absolute;right:0;bottom:0;color:#666;font-size:13px;font-style:italic;padding:15px 18px}#simpay-global-settings .simpay-docs-link-wrap a .dashicons-editor-help,#simpay-form-settings .simpay-docs-link-wrap a .dashicons-editor-help{color:#666;text-decoration:none;width:17px;height:17px;font-size:17px;padding-left:4px}#simpay-global-settings .simpay-docs-icon,#simpay-form-settings .simpay-docs-icon{color:#666}#simpay-global-settings .simpay-docs-icon,#simpay-global-settings .simpay-docs-icon .dashicons-editor-help,#simpay-form-settings .simpay-docs-icon,#simpay-form-settings .simpay-docs-icon .dashicons-editor-help{text-decoration:none;width:17px;height:17px;font-size:17px}.button.button-primary.simpay-upgrade-btn{background-color:#428bca;border:1px solid #428bca;color:#fff;display:inline-block}.button.button-primary.simpay-upgrade-btn:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #2d6ca2}.button.button-primary.simpay-upgrade-btn:hover{background-color:#037ad0;border:1px solid #428bca}.simpay-upgrade-btn-subtext{color:#3c434a;font-size:14px;line-height:1.5;text-align:center;margin:40px 0 0;padding:30px 35px 20px;background-color:#fcf9e8;border:3px solid #ebe29a;border-radius:4px;position:relative}.simpay-upgrade-btn-subtext svg{background:#00a32a;fill:#fff;border-radius:50%;border:3px solid #ebe29a;width:28px;height:28px;position:absolute;top:-14px;left:50%;margin-left:-14px}.simpay-upgrade-btn-subtext u{text-decoration:none;font-weight:bold;color:#00a32a}.simpay-upgrade-btn-subtext a{text-decoration:none;display:block;margin-top:6px;font-weight:bold}.post-type-simple-pay #post-body-content{display:none}.simpay-card{margin:0 0 20px;padding:30px;background:#fff;border:1px solid #c3c4c7;box-shadow:0 1px 1px rgba(0,0,0,.04)}.simpay-card,.simpay-card p{line-height:1.5;font-size:16px}.simpay-card h3{line-height:1.6;font-size:18px;margin:0 0 20px;color:#23282c}.simpay-card p{margin:0 0 20px}.simpay-card p:last-child,.simpay-card ul:last-child{margin-bottom:0}.simpay-card figure{float:right;margin:0 0 30px 30px;max-width:400px}.simpay-card figure iframe,.simpay-card figure img{max-width:100%}.simpay-card figure figcaption{text-align:center}@media screen and (max-width: 782px){.simpay-card figure{margin:0 0 30px;max-width:100%;float:none}}.simpay-doc-suggestions{width:100%;display:flex;flex-wrap:wrap;padding:0}.simpay-doc-suggestion{text-align:center;display:flex;flex-direction:column;justify-content:center;align-items:center;flex:0 1 33.333%;padding:30px;border-right:1px solid #c3c4c7;box-sizing:border-box}.simpay-doc-suggestion:nth-child(3n){border-right:0}@media screen and (max-width: 782px){.simpay-doc-suggestion{flex:0 1 100%;border-bottom:1px solid #c3c4c7;border-right:0}.simpay-doc-suggestion:last-child{border-bottom:0}}.simpay-doc-suggestion h3{font-size:20px;margin-bottom:10px}.simpay-doc-suggestion p{font-size:15px}.simpay-doc-suggestion .dashicons{font-size:40px;width:40px;height:40px;display:block;margin-bottom:10px}.simpay-doc-suggestion .button-large{font-size:16px}.simpay-addons{display:flex;flex-wrap:wrap;justify-content:space-between;margin:20px 0}.simpay-addon{background:#fff;border:1px solid #c3c4c7;box-shadow:0 1px 1px rgba(0,0,0,.04);margin-bottom:20px;display:flex;flex-direction:column;flex-basis:calc(33% - 10px);box-sizing:border-box}@media screen and (max-width: 782px){.simpay-addon{flex-basis:100%}}.simpay-addon img{float:left;max-width:75px}.simpay-addon h5{margin:0 0 10px 100px;font-size:16px}.simpay-addon__details{padding:20px;flex:1 0 auto}.simpay-addon__actions{display:flex;align-items:center;justify-content:space-between;flex:0 1 auto;background-color:#f7f7f7;border-top:1px solid #ddd;margin-top:auto;padding:20px;position:relative}.simpay-addon__actions .msg{text-align:center;justify-content:center;display:flex;align-items:center;position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;background-color:#f7f7f7;z-index:3}.simpay-addon .error,.simpay-addon .status-label.status-installed{color:#d63638}.simpay-addon .success,.simpay-addon .status-label.status-active{color:#00a32a}.simpay-addon .addon-desc{margin:0 0 0 100px}.form-table td .simpay-stripe-connect-help{margin:15px 0;display:flex;align-items:center}.form-table td .simpay-stripe-connect-help .dashicons{margin-right:4px}.simpay-currency-field{display:flex;align-items:center}>.simpay-currency-field:focus{position:relative;z-index:5}.simpay-currency-symbol{margin:0;padding-left:8px;padding-right:8px;line-height:28px;font-size:14px}@media screen and (max-width: 782px){.simpay-currency-symbol{line-height:38px}}.simpay-currency-symbol-left{border-top-left-radius:4px;border-bottom-left-radius:4px}.simpay-currency-symbol-right{border-top-right-radius:4px;border-bottom-right-radius:4px}div.simpay-currency-symbol{border-color:#7e8993;border-style:solid;background-color:#fff}select.simpay-currency-symbol{padding-right:25px}.simpay-currency-symbol-left{border-width:1px 0 1px 1px}.simpay-currency-symbol-left+.simpay-field-amount{border-radius:0 4px 4px 0}.simpay-currency-symbol-right{border-width:1px 1px 1px 0}.simpay-field-amount{margin:0;padding-left:8px;padding-right:8px;font-size:14px;width:6em;position:relative;z-index:2;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.post-new-php.post-type-simple-pay #screen-meta-links,.post-php.post-type-simple-pay #screen-meta-links,.edit-php.post-type-simple-pay #screen-meta-links{display:none}.simpay-branding-bar{margin-left:-20px;padding:14px 20px 14px 22px;background:#fff;border-bottom:1px solid #c3c4c7;box-shadow:0 1px 1px rgba(0,0,0,.04)}.simpay-branding-bar__title{display:flex;align-items:center;float:left;margin:8px 0}.simpay-branding-bar__logo{width:200px}.simpay-branding-bar__divider{color:#dadbdf;font-size:23px;font-weight:400;margin:0 15px}.simpay-branding-bar__actions{float:right;margin-top:4px;display:flex;align-items:center}.simpay-branding-bar__actions>div{margin-left:10px;min-width:40px}.simpay-branding-bar__actions-button{color:#000;cursor:pointer;padding:10px;width:40px;height:40px;background-color:#f3f4f5;border-radius:50%;border:0;box-shadow:none;position:relative;transition:background-color .2s ease;box-sizing:border-box;display:block}.simpay-branding-bar__actions-button:hover{background-color:#e5e5e5}.simpay-branding-bar__actions-button:active,.simpay-branding-bar__actions-button:focus{box-shadow:0 0 0 2px var(--wp-admin-theme-color)}.simpay-branding-bar__actions-button-count{font-weight:600;font-size:10px;line-height:16px;color:#fff;margin:0;background-color:#df2a4a;border-radius:100%;width:16px;height:16px;position:absolute;top:-8px;left:50%;margin-left:-8px}.simpay-branding-bar .wp-heading-inline{font-size:23px;font-weight:400;margin:0}.simpay-branding-bar .page-title-action{font-weight:600;font-size:13px;line-height:normal;cursor:pointer;text-shadow:none;text-decoration:none;margin-left:10px;padding:4px 8px;border:1px solid currentColor;border-radius:2px;background:#f6f7f7}.simpay-landing-zone{text-align:center;max-width:700px;margin:40px auto}.simpay-landing-zone__title{font-size:26px;font-weight:600;margin:0 0 1.5rem;padding:0}.simpay-landing-zone__subtitle{font-size:17px;color:#666;margin:.25rem 0}.simpay-landing-zone__subtitle strong{color:#444}.simpay-landing-zone section{margin:2rem 0}.simpay-landing-zone__empty-state-graphic img{width:425px}.simpay-landing-zone__screenshot>*{vertical-align:middle}.simpay-landing-zone__screenshot-img{display:inline-block;position:relative;width:315px;padding:5px;background-color:#fff;box-shadow:0px 2px 5px 0px rgba(0,0,0,.05);border-radius:3px}.simpay-landing-zone__screenshot-img img{max-width:100%;display:block}.simpay-landing-zone__screenshot-img .hover{position:absolute;opacity:0;height:calc(100% - 10px);width:calc(100% - 10px);top:0;left:0;border:5px solid #fff;background-color:rgba(0,0,0,.15);background-image:url(data:image/svg+xml;base64,PHN2ZyBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiPjxwYXRoIGQ9Ik01MCAwYzI3LjYxNCAwIDUwIDIyLjM4NiA1MCA1MHMtMjIuMzg2IDUwLTUwIDUwUzAgNzcuNjE0IDAgNTAgMjIuMzg2IDAgNTAgMHoiIGZpbGw9IiMxNjg1YjciLz48cGF0aCBkPSJNNzMuMDIzIDY3LjA2N2wtOS4zNDQtOS4zNDRhMi4yNDcgMi4yNDcgMCAwMC0xLjU5My0uNjU2aC0xLjUyOGExOS4zOTkgMTkuMzk5IDAgMDA0LjEyNC0xMS45OTZjMC0xMC43Ny04LjcyNS0xOS40OTUtMTkuNDk0LTE5LjQ5NS0xMC43NjggMC0xOS40OTQgOC43MjYtMTkuNDk0IDE5LjQ5NSAwIDEwLjc2OCA4LjcyNiAxOS40OTMgMTkuNDk0IDE5LjQ5M2ExOS40IDE5LjQgMCAwMDExLjk5Ny00LjEyM3YxLjUyN2MwIC42LjIzNCAxLjE3Mi42NTUgMS41OTRsOS4zNDQgOS4zNDRhMi4yNCAyLjI0IDAgMDAzLjE3OCAwbDIuNjUyLTIuNjUzYTIuMjYgMi4yNiAwIDAwLjAxLTMuMTg2em0tMjcuODM1LTEwYy02LjYyNiAwLTExLjk5Ni01LjM2MS0xMS45OTYtMTEuOTk2IDAtNi42MjcgNS4zNi0xMS45OTcgMTEuOTk2LTExLjk5NyA2LjYyNiAwIDExLjk5NyA1LjM2MSAxMS45OTcgMTEuOTk3IDAgNi42MjYtNS4zNjEgMTEuOTk2LTExLjk5NyAxMS45OTZ6IiBmaWxsPSIjZmZmIi8+PC9zdmc+);background-repeat:no-repeat;background-position:center;background-size:50px;transition:all .3s}.simpay-landing-zone__screenshot-img:hover .hover{opacity:1;transition:all .3s}.simpay-landing-zone__screenshot ul{text-align:left;display:inline-block;margin:0 0 0 30px;list-style-type:none;max-width:calc(100% - 350px)}@media screen and (max-width: 782px){.simpay-landing-zone__screenshot ul{text-align:center;margin:30px auto;max-width:100%;display:block}}.simpay-landing-zone__screenshot li{margin:16px 0;padding:0;font-size:15px;color:#777;position:relative}.simpay-landing-zone__screenshot li:before{content:"";background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEzLjc3NjIgNi40NTYwNUw4LjcyMDMyIDEuNDAwMDVDOC41NzU5OSAxLjI1NTcyIDguMzgzNjQgMS4xNzY1IDguMTc4NTMgMS4xNzY1QzcuOTczMiAxLjE3NjUgNy43ODA5NiAxLjI1NTg0IDcuNjM2NjQgMS40MDAwNUw3LjE3NzYgMS44NTkyQzcuMDMzMzkgMi4wMDMyOSA2Ljk1Mzk1IDIuMTk1NzYgNi45NTM5NSAyLjQwMDk4QzYuOTUzOTUgMi42MDYwOCA3LjAzMzM5IDIuODA1MDQgNy4xNzc2IDIuOTQ5MTRMMTAuMTI3MSA1LjkwNTE2SDAuNzU2MzM0QzAuMzMzODM0IDUuOTA1MTYgMCA2LjIzNTkyIDAgNi42NTg1NFY3LjMwNzY1QzAgNy43MzAyNyAwLjMzMzgzNCA4LjA5NDM4IDAuNzU2MzM0IDguMDk0MzhIMTAuMTYwNkw3LjE3NzcyIDExLjA2NjlDNy4wMzM1MSAxMS4yMTEyIDYuOTU0MDYgMTEuMzk4NSA2Ljk1NDA2IDExLjYwMzdDNi45NTQwNiAxMS44MDg3IDcuMDMzNTEgMTEuOTk4NiA3LjE3NzcyIDEyLjE0MjhMNy42MzY3NSAxMi42MDA1QzcuNzgxMDcgMTIuNzQ0OCA3Ljk3MzMyIDEyLjgyMzUgOC4xNzg2NSAxMi44MjM1QzguMzgzNzUgMTIuODIzNSA4LjU3NjExIDEyLjc0MzggOC43MjA0MyAxMi41OTk1TDEzLjc3NjMgNy41NDM2QzEzLjkyMSA3LjM5ODgyIDE0LjAwMDUgNy4yMDU1NiAxNCA3LjAwMDExQzE0LjAwMDQgNi43OTM5OCAxMy45MjEgNi42MDA2IDEzLjc3NjIgNi40NTYwNVY2LjQ1NjA1WiIgZmlsbD0iIzQyOEJDQSIvPgo8L3N2Zz4K);background-position:center;background-repeat:no-repeat;background-size:14px;width:14px;height:14px;display:inline-block;margin:-3px 5px 0 0;vertical-align:middle}.simpay-landing-zone .button.button-large{font-size:17px;line-height:30px;padding:10px 20px}.simpay-landing-zone__purchased{display:block;margin:15px 0 0}.simpay-upgrade-modal{padding:0 !important}.simpay-upgrade-modal *{box-sizing:border-box}.simpay-upgrade-modal__content{text-align:center;display:flex;flex-direction:column;align-items:center;padding:16px 32px 32px}.simpay-upgrade-modal__content>.dashicons{color:#333;font-size:48px;width:48px;height:48px}.simpay-upgrade-modal__title{font-size:22px;line-height:1.5;display:block;margin:12px 0 0}.simpay-upgrade-modal__description{color:#777;font-size:16px;margin:16px 0 24px}.simpay-upgrade-modal__description strong{color:#333}.simpay-upgrade-modal__discount{font-size:15px;text-align:center;margin:32px -32px -32px;padding:24px 40px;background-color:#fcf9e8;position:relative}.simpay-upgrade-modal__discount svg{background:#00a32a;fill:#fff;border-radius:50%;border:4px solid #fff;width:32px;height:32px;position:absolute;top:-16px;left:50%;margin-left:-16px}.simpay-upgrade-modal__discount u{text-decoration:none;font-weight:bold;color:#00a32a}.simpay-upgrade-modal .button-large{font-size:16px;font-weight:bold;margin:0 0 15px;padding:8px 30px !important;height:auto}.simpay-teaser-float{margin:50px;position:relative}.simpay-teaser-float__card{text-align:center;padding:30px;background:#fff;border-radius:4px;box-shadow:0 0 30px 15px rgba(0,0,0,.18);position:relative;z-index:2}#poststuff .simpay-teaser-float h2,.simpay-teaser-float h2{font-size:24px;font-weight:600;margin:0;padding:0}.simpay-teaser-float p{font-size:15px;line-height:1.35;color:#666}.simpay-teaser-float p strong{color:#444}.simpay-teaser-float ul{text-align:left;display:inline-block;margin:-10px 0 20px;list-style-type:none}.simpay-teaser-float li{margin:16px 0;padding:0 0 0 24px;font-size:15px;background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEzLjc3NjIgNi40NTYwNUw4LjcyMDMyIDEuNDAwMDVDOC41NzU5OSAxLjI1NTcyIDguMzgzNjQgMS4xNzY1IDguMTc4NTMgMS4xNzY1QzcuOTczMiAxLjE3NjUgNy43ODA5NiAxLjI1NTg0IDcuNjM2NjQgMS40MDAwNUw3LjE3NzYgMS44NTkyQzcuMDMzMzkgMi4wMDMyOSA2Ljk1Mzk1IDIuMTk1NzYgNi45NTM5NSAyLjQwMDk4QzYuOTUzOTUgMi42MDYwOCA3LjAzMzM5IDIuODA1MDQgNy4xNzc2IDIuOTQ5MTRMMTAuMTI3MSA1LjkwNTE2SDAuNzU2MzM0QzAuMzMzODM0IDUuOTA1MTYgMCA2LjIzNTkyIDAgNi42NTg1NFY3LjMwNzY1QzAgNy43MzAyNyAwLjMzMzgzNCA4LjA5NDM4IDAuNzU2MzM0IDguMDk0MzhIMTAuMTYwNkw3LjE3NzcyIDExLjA2NjlDNy4wMzM1MSAxMS4yMTEyIDYuOTU0MDYgMTEuMzk4NSA2Ljk1NDA2IDExLjYwMzdDNi45NTQwNiAxMS44MDg3IDcuMDMzNTEgMTEuOTk4NiA3LjE3NzcyIDEyLjE0MjhMNy42MzY3NSAxMi42MDA1QzcuNzgxMDcgMTIuNzQ0OCA3Ljk3MzMyIDEyLjgyMzUgOC4xNzg2NSAxMi44MjM1QzguMzgzNzUgMTIuODIzNSA4LjU3NjExIDEyLjc0MzggOC43MjA0MyAxMi41OTk1TDEzLjc3NjMgNy41NDM2QzEzLjkyMSA3LjM5ODgyIDE0LjAwMDUgNy4yMDU1NiAxNCA3LjAwMDExQzE0LjAwMDQgNi43OTM5OCAxMy45MjEgNi42MDA2IDEzLjc3NjIgNi40NTYwNVY2LjQ1NjA1WiIgZmlsbD0iIzQyOEJDQSIvPgo8L3N2Zz4K);background-position:left 3px;background-repeat:no-repeat;background-size:14px;color:#777}.simpay-teaser-float .button.button-large{font-size:17px;line-height:30px;padding:10px 20px}.simpay-teaser-float .simpay-notice-dismiss{position:absolute;top:0;right:0;font-size:20px;color:#666;font-weight:bold;text-decoration:none;margin-left:5px;padding:6px 10px;z-index:2}.simpay-teaser-float .simpay-notice-dismiss:hover,.simpay-teaser-float .simpay-notice-dismiss:active,.simpay-teaser-float .simpay-notice-dismiss:focus{color:#666;text-decoration:none}.simpay-teaser-float:after,.simpay-teaser-float:before{opacity:.75;z-index:0;content:"";position:absolute;left:-30px;right:-30px;top:-35px;width:calc(100% + 60px);height:170px;background-image:linear-gradient(#ddd, #ddd),linear-gradient(#eee, #eee),linear-gradient(#ddd, #ddd),linear-gradient(#eee, #eee);background-repeat:no-repeat;background-size:100% 20px,100% 40px,100% 20px,100% 40px;background-position:0 0,0 30px,0 100px,0 130px}.simpay-teaser-float:before{top:170px}.simpay-teaser-float .simpay-upgrade-btn-subtext{margin:24px -30px -30px;padding:32px 40px;border-bottom-left-radius:2px;border-bottom-right-radius:2px;border:0}.simpay-teaser-float .simpay-upgrade-btn-subtext svg{border-color:#fff}.simpay-teaser-float--inline{margin:40px 30px 30px}.simpay-teaser-float--inline .simpay-teaser-float__card{padding:30px;box-shadow:0 0 12px 6px rgba(0,0,0,.16)}#poststuff .simpay-teaser-float--inline h2,.simpay-teaser-float--inline h2{font-size:20px}.simpay-teaser-float--inline p{font-size:15px;margin:.75rem 0}.simpay-teaser-float--inline .button.button-large{font-size:15px;line-height:24px;margin:1rem 0;padding:8px 14px;display:inline-block}.simpay-teaser-float--inline:before,.simpay-teaser-float--inline:after{opacity:.6}.simpay-teaser-float--inline:before{display:none}.simpay-teaser-float--inline:after{top:15px}.simpay-form-settings-notice{font-weight:normal;color:#1d2327;position:relative;margin:18px 18px 0;padding:14px;border-radius:4px;background:#f5f5ff}.simpay-form-settings-notice a{color:#635aff}.simpay-form-settings-notice .simpay-external-link .dashicons-external{margin:1px 0 0 2px}.simpay-form-settings-notice strong{font-size:14px}.simpay-form-settings-notice p{margin:5px 0 0 23px}.simpay-form-settings-notice .simpay-notice-dismiss{font-size:20px;color:#b0b0f0;font-weight:bold;line-height:1;position:absolute;top:0;right:5px;text-decoration:none;padding:0 5px;z-index:2}.simpay-form-settings-notice .simpay-notice-dismiss:hover,.simpay-form-settings-notice .simpay-notice-dismiss:active,.simpay-form-settings-notice .simpay-notice-dismiss:focus{color:#9191ef;text-decoration:none;background:none}.simpay-settings .simpay-form-settings-notice{border:2px solid #645aff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.post-type-simple-pay .lity{z-index:999999999;padding:20px}.post-type-simple-pay .lity-close{margin:10px}.post-type-simple-pay .lity-content{max-width:80vw;max-height:80vh}.post-type-simple-pay .lity-content img{max-height:80vh !important;max-width:80vw !important}#wpsp-api-keys-row-hide{display:none}.post-type-simple-pay #post-preview:not(.simpay-preview-button){display:none}.simpay-license-field-wrapper{margin:20px 0}#simpay-settings-license-key-license-key{margin:0}#simpay-settings-license-key-license-key[readonly]{background:#fff}.simpay-license-message__loading,.simpay-license-field{display:flex;align-items:center}.wp-core-ui .button.simpay-license-button.button-primary,.wp-core-ui .button.simpay-license-button.button-secondary{font-size:1rem;line-height:1;margin:0 8px;padding:13px}.simpay-license-message{font-size:15px;margin-top:8px}.simpay-license-message--valid{color:green}.simpay-license-message--invalid{color:#cc1818} /*# sourceMappingURL=simpay-admin.min.css.map*/ \ No newline at end of file diff --git a/includes/core/assets/css/simpay-admin.min.css.map b/includes/core/assets/css/simpay-admin.min.css.map index 8b7b7ece..3ee2149a 100644 --- a/includes/core/assets/css/simpay-admin.min.css.map +++ b/includes/core/assets/css/simpay-admin.min.css.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./css/admin/admin.scss"],"names":[],"mappings":"AAAA,6BAA6B,aAAa,mBAAmB,iCAAiC,yCAAyC,gBAAgB,qBAAqB,aAAa,aAAa,mBAAmB,oDAAoD,WAAW,YAAY,eAAe,iBAAiB,mDAAmD,yCAAyC,kBAAkB,UAAU,yDAAyD,cAAc,+CAA+C,8BAA8B,WAAW,gBAAgB,6BAA6B,UAAU,oKAAoK,WAAW,kBAAkB,0DAA0D,aAAa,mBAAmB,kFAAkF,gBAAgB,yCAAyC,eAAe,iBAAiB,iBAAiB,0BAA0B,8BAA8B,6BAA6B,qBAAqB,WAAW,YAAY,gBAAgB,UAAU,kBAAkB,UAAU,wBAAwB,UAAU,iBAAiB,qCAAqC,wBAAwB,iBAAiB,sCAAsC,eAAe,yBAAyB,UAAU,2CAA2C,8BAA8B,6BAA6B,qBAAqB,WAAW,YAAY,gBAAgB,UAAU,kBAAkB,UAAU,mFAAmF,aAAa,sBAAsB,sBAAsB,0BAA0B,0BAA0B,mBAAmB,iBAAiB,oBAAoB,kBAAkB,gCAAgC,cAAc,kBAAkB,2CAA2C,cAAc,iBAAiB,8CAA8C,mBAAmB,kBAAkB,WAAW,YAAY,SAAS,gBAAgB,gBAAgB,UAAU,oDAAoD,SAAS,gBAAgB,gBAAgB,yDAAyD,cAAc,kBAAkB,WAAW,YAAY,cAAc,SAAS,YAAY,YAAY,cAAc,cAAc,kBAAkB,cAAc,gBAAgB,kBAAkB,mBAAmB,SAAS,gBAAgB,oBAAoB,mBAAmB,oBAAoB,eAAe,0BAA0B,mBAAmB,oBAAoB,WAAW,mBAAmB,qBAAqB,cAAc,mBAAmB,sBAAsB,cAAc,mBAAmB,4BAA4B,aAAa,mBAAmB,kBAAkB,qCAAqC,WAAW,aAAa,cAAc,yGAAyG,gBAAgB,YAAY,kBAAkB,gBAAgB,kBAAkB,oEAAoE,gBAAgB,uHAAuH,kBAAkB,SAAS,aAAa,+GAA+G,gBAAgB,eAAe,kBAAkB,+GAA+G,mCAAmC,aAAa,eAAe,uBAAuB,qCAAqC,+GAA+G,iBAAiB,mBAAmB,+GAA+G,eAAe,aAAa,WAAW,mHAAmH,cAAc,qBAAqB,+HAA+H,kCAAkC,0BAA0B,qCAAqC,+GAA+G,gBAAgB,WAAW,mJAAmJ,eAAe,iBAAiB,kBAAkB,qHAAqH,WAAW,gBAAgB,cAAc,uIAAuI,cAAc,mIAAmI,kBAAkB,MAAM,QAAQ,eAAe,WAAW,iBAAiB,qBAAqB,gBAAgB,iBAAiB,UAAU,+aAA+a,WAAW,qBAAqB,iKAAiK,kBAAkB,SAAS,uBAAuB,yBAAyB,yBAAyB,qBAAqB,kBAAkB,gBAAgB,8BAA8B,+BAA+B,qCAAqC,iKAAiK,kBAAkB,oBAAoB,yKAAyK,mBAAmB,UAAU,kBAAkB,sBAAsB,6BAA6B,WAAW,YAAY,kBAAkB,UAAU,SAAS,kBAAkB,qKAAqK,qBAAqB,iBAAiB,cAAc,qKAAqK,mBAAmB,qBAAqB,oCAAoC,WAAW,yBAAyB,0DAA0D,cAAc,iDAAiD,cAAc,UAAU,qDAAqD,cAAc,sCAAsC,SAAS,UAAU,2DAA2D,mBAAmB,gFAAgF,eAAe,WAAW,cAAc,2CAA2C,SAAS,UAAU,gBAAgB,mBAAmB,+BAA+B,gBAAgB,kBAAkB,aAAa,qCAAqC,2CAA2C,gBAAgB,YAAY,gBAAgB,8CAA8C,SAAS,UAAU,0DAA0D,gBAAgB,yDAAyD,mBAAmB,qCAAqC,yDAAyD,iBAAiB,qDAAqD,iBAAiB,qCAAqC,kBAAkB,iEAAiE,aAAa,uHAAuH,WAAW,uBAAuB,WAAW,mBAAmB,kBAAkB,MAAM,OAAO,QAAQ,UAAU,2DAA2D,SAAS,SAAS,uDAAuD,iBAAiB,sBAAsB,kBAAkB,kBAAkB,8DAA8D,WAAW,kBAAkB,MAAM,OAAO,SAAS,UAAU,YAAY,wBAAwB,UAAU,qCAAqC,uDAAuD,gBAAgB,+DAA+D,aAAa,mBAAmB,iBAAiB,SAAS,4BAA4B,qBAAqB,gCAAgC,6IAA6I,iBAAiB,qCAAqC,+DAA+D,cAAc,qEAAqE,UAAU,kBAAkB,UAAU,wCAAwC,4EAA4E,cAAc,kDAAkD,gBAAgB,aAAa,qCAAqC,kDAAkD,uBAAuB,6CAA6C,aAAa,aAAa,qCAAqC,6CAA6C,iBAAiB,gGAAgG,WAAW,6UAA6U,cAAc,WAAW,+FAA+F,gBAAgB,oEAAoE,kBAAkB,2EAA2E,kBAAkB,yFAAyF,kBAAkB,qBAAqB,WAAW,4JAA4J,gBAAgB,cAAc,0GAA0G,wBAAwB,iBAAiB,kBAAkB,qDAAqD,iBAAiB,iBAAiB,mBAAmB,qDAAqD,6BAA6B,oBAAoB,gEAAgE,eAAe,6EAA6E,gBAAgB,8EAA8E,gBAAgB,oFAAoF,iBAAiB,cAAc,kBAAkB,4IAA4I,cAAc,eAAe,qCAAqC,4IAA4I,YAAY,YAAY,yEAAyE,WAAW,eAAe,uEAAuE,gBAAgB,6HAA6H,cAAc,mBAAmB,6EAA6E,kBAAkB,gBAAgB,0GAA0G,kBAAkB,UAAU,WAAW,eAAe,sBAAsB,kHAAkH,eAAe,iBAAiB,mGAAmG,iBAAiB,gBAAgB,sBAAsB,oEAAoE,yBAAyB,yBAAyB,aAAa,gBAAgB,kBAAkB,6EAA6E,cAAc,qBAAqB,kBAAkB,QAAQ,UAAU,gGAAgG,eAAe,WAAW,YAAY,uEAAuE,eAAe,gBAAgB,SAAS,UAAU,sEAAsE,eAAe,iFAAiF,gBAAgB,sDAAsD,mBAAmB,yBAAyB,yBAAyB,mBAAmB,qCAAqC,kBAAkB,iGAAiG,aAAa,sDAAsD,yBAAyB,kBAAkB,qCAAqC,iEAAiE,cAAc,6BAA6B,YAAY,sBAAsB,6EAA6E,aAAa,2BAA2B,4BAA4B,sFAAsF,aAAa,iBAAiB,uEAAuE,WAAW,qBAAqB,iBAAiB,kFAAkF,eAAe,WAAW,YAAY,+EAA+E,iBAAiB,uEAAuE,kBAAkB,gBAAgB,mBAAmB,WAAW,YAAY,cAAc,2EAA2E,WAAW,YAAY,0FAA0F,WAAW,cAAc,gBAAgB,kFAAkF,eAAe,eAAe,8GAA8G,UAAU,gHAAgH,WAAW,8FAA8F,SAAS,4FAA4F,gBAAgB,sBAAsB,0GAA0G,iBAAiB,gHAAgH,qBAAqB,qBAAqB,sIAAsI,eAAe,4FAA4F,aAAa,mBAAmB,0GAA0G,kBAAkB,UAAU,8FAA8F,SAAS,iBAAiB,kBAAkB,iBAAiB,eAAe,qCAAqC,8FAA8F,kBAAkB,wGAAwG,2BAA2B,8BAA8B,0GAA0G,4BAA4B,+BAA+B,oGAAoG,qBAAqB,mBAAmB,sBAAsB,0GAA0G,mBAAmB,wGAAwG,2BAA2B,kJAAkJ,0BAA0B,0GAA0G,2BAA2B,wFAAwF,SAAS,iBAAiB,kBAAkB,eAAe,UAAU,kBAAkB,UAAU,gBAAgB,2BAA2B,8BAA8B,0EAA0E,UAAU,4FAA4F,kBAAkB,QAAQ,SAAS,WAAW,eAAe,kBAAkB,kBAAkB,8IAA8I,WAAW,qBAAqB,WAAW,YAAY,eAAe,iBAAiB,kFAAkF,WAAW,kNAAkN,qBAAqB,WAAW,YAAY,eAAe,0CAA0C,yBAAyB,yBAAyB,WAAW,qBAAqB,gDAAgD,4CAA4C,gDAAgD,yBAAyB,yBAAyB,4BAA4B,cAAc,eAAe,gBAAgB,kBAAkB,gBAAgB,uBAAuB,yBAAyB,yBAAyB,kBAAkB,kBAAkB,gCAAgC,mBAAmB,UAAU,kBAAkB,yBAAyB,WAAW,YAAY,kBAAkB,UAAU,SAAS,kBAAkB,8BAA8B,qBAAqB,iBAAiB,cAAc,8BAA8B,qBAAqB,cAAc,eAAe,iBAAiB,yCAAyC,aAAa,aAAa,gBAAgB,aAAa,gBAAgB,yBAAyB,qCAAqC,4BAA4B,gBAAgB,eAAe,gBAAgB,gBAAgB,eAAe,gBAAgB,cAAc,eAAe,gBAAgB,qDAAqD,gBAAgB,oBAAoB,YAAY,qBAAqB,gBAAgB,mDAAmD,eAAe,+BAA+B,kBAAkB,qCAAqC,oBAAoB,gBAAgB,eAAe,YAAY,wBAAwB,WAAW,aAAa,eAAe,UAAU,uBAAuB,kBAAkB,aAAa,sBAAsB,uBAAuB,mBAAmB,iBAAiB,aAAa,+BAA+B,sBAAsB,qCAAqC,eAAe,qCAAqC,uBAAuB,cAAc,gCAAgC,eAAe,kCAAkC,iBAAiB,0BAA0B,eAAe,mBAAmB,yBAAyB,eAAe,kCAAkC,eAAe,WAAW,YAAY,cAAc,mBAAmB,qCAAqC,eAAe,eAAe,aAAa,eAAe,8BAA8B,cAAc,cAAc,gBAAgB,yBAAyB,qCAAqC,mBAAmB,aAAa,sBAAsB,4BAA4B,sBAAsB,qCAAqC,cAAc,iBAAiB,kBAAkB,WAAW,eAAe,iBAAiB,sBAAsB,eAAe,uBAAuB,aAAa,cAAc,uBAAuB,aAAa,mBAAmB,8BAA8B,cAAc,yBAAyB,0BAA0B,gBAAgB,aAAa,kBAAkB,4BAA4B,kBAAkB,uBAAuB,aAAa,mBAAmB,kBAAkB,MAAM,QAAQ,SAAS,OAAO,WAAW,YAAY,yBAAyB,UAAU,kEAAkE,cAAc,iEAAiE,cAAc,0BAA0B,mBAAmB,2CAA2C,cAAc,aAAa,mBAAmB,sDAAsD,iBAAiB,uBAAuB,aAAa,mBAAmB,8BAA8B,kBAAkB,UAAU,wBAAwB,SAAS,iBAAiB,kBAAkB,iBAAiB,eAAe,qCAAqC,wBAAwB,kBAAkB,6BAA6B,2BAA2B,8BAA8B,8BAA8B,4BAA4B,+BAA+B,2BAA2B,qBAAqB,mBAAmB,sBAAsB,8BAA8B,mBAAmB,6BAA6B,2BAA2B,kDAAkD,0BAA0B,8BAA8B,2BAA2B,qBAAqB,SAAS,iBAAiB,kBAAkB,eAAe,UAAU,kBAAkB,UAAU,gBAAgB,2BAA2B,8BAA8B,0JAA0J,aAAa,qBAAqB,kBAAkB,4BAA4B,gBAAgB,gCAAgC,qCAAqC,4BAA4B,aAAa,mBAAmB,WAAW,aAAa,2BAA2B,YAAY,8BAA8B,cAAc,eAAe,gBAAgB,cAAc,8BAA8B,YAAY,eAAe,aAAa,mBAAmB,kCAAkC,iBAAiB,eAAe,qCAAqC,WAAW,eAAe,aAAa,WAAW,YAAY,yBAAyB,kBAAkB,SAAS,gBAAgB,kBAAkB,qCAAqC,sBAAsB,cAAc,2CAA2C,yBAAyB,uFAAuF,iDAAiD,2CAA2C,gBAAgB,eAAe,iBAAiB,WAAW,SAAS,yBAAyB,mBAAmB,WAAW,YAAY,kBAAkB,SAAS,SAAS,iBAAiB,wCAAwC,eAAe,gBAAgB,SAAS,wCAAwC,gBAAgB,eAAe,mBAAmB,eAAe,iBAAiB,qBAAqB,iBAAiB,gBAAgB,8BAA8B,kBAAkB,mBAAmB,qBAAqB,kBAAkB,gBAAgB,iBAAiB,4BAA4B,eAAe,gBAAgB,kBAAkB,UAAU,+BAA+B,eAAe,WAAW,gBAAgB,sCAAsC,WAAW,6BAA6B,cAAc,8CAA8C,YAAY,mCAAmC,sBAAsB,qCAAqC,qBAAqB,kBAAkB,YAAY,YAAY,sBAAsB,2CAA2C,kBAAkB,yCAAyC,eAAe,cAAc,4CAA4C,kBAAkB,UAAU,yBAAyB,wBAAwB,MAAM,OAAO,sBAAsB,iCAAiC,wCAAwC,i8BAAi8B,4BAA4B,2BAA2B,qBAAqB,mBAAmB,kDAAkD,UAAU,mBAAmB,oCAAoC,gBAAgB,qBAAqB,kBAAkB,qBAAqB,6BAA6B,qCAAqC,oCAAoC,kBAAkB,iBAAiB,eAAe,eAAe,oCAAoC,cAAc,UAAU,eAAe,WAAW,kBAAkB,2CAA2C,WAAW,wCAAwC,ilCAAilC,2BAA2B,4BAA4B,qBAAqB,WAAW,YAAY,qBAAqB,oBAAoB,sBAAsB,0CAA0C,eAAe,iBAAiB,kBAAkB,gCAAgC,cAAc,gBAAgB,sBAAsB,qBAAqB,wBAAwB,sBAAsB,+BAA+B,kBAAkB,aAAa,sBAAsB,mBAAmB,uBAAuB,0CAA0C,WAAW,eAAe,WAAW,YAAY,6BAA6B,eAAe,gBAAgB,cAAc,gBAAgB,mCAAmC,WAAW,eAAe,mBAAmB,0CAA0C,WAAW,gCAAgC,eAAe,kBAAkB,wBAAwB,kBAAkB,yBAAyB,kBAAkB,oCAAoC,mBAAmB,UAAU,kBAAkB,sBAAsB,WAAW,YAAY,kBAAkB,UAAU,SAAS,kBAAkB,kCAAkC,qBAAqB,iBAAiB,cAAc,oCAAoC,eAAe,iBAAiB,gBAAgB,4BAA4B,YAAY,qBAAqB,YAAY,kBAAkB,2BAA2B,kBAAkB,aAAa,gBAAgB,kBAAkB,yCAAyC,kBAAkB,UAAU,2DAA2D,eAAe,gBAAgB,SAAS,UAAU,uBAAuB,eAAe,iBAAiB,WAAW,8BAA8B,WAAW,wBAAwB,gBAAgB,qBAAqB,oBAAoB,qBAAqB,wBAAwB,cAAc,mBAAmB,eAAe,wCAAwC,ilCAAilC,6BAA6B,4BAA4B,qBAAqB,WAAW,0CAA0C,eAAe,iBAAiB,kBAAkB,4CAA4C,kBAAkB,MAAM,QAAQ,eAAe,WAAW,iBAAiB,qBAAqB,gBAAgB,iBAAiB,UAAU,uJAAuJ,WAAW,qBAAqB,uDAAuD,YAAY,UAAU,WAAW,kBAAkB,WAAW,YAAY,UAAU,wBAAwB,aAAa,iIAAiI,4BAA4B,wDAAwD,+CAA+C,4BAA4B,UAAU,iDAAiD,wBAAwB,kBAAkB,8BAA8B,+BAA+B,SAAS,qDAAqD,kBAAkB,6BAA6B,sBAAsB,wDAAwD,aAAa,wCAAwC,2EAA2E,eAAe,+BAA+B,eAAe,gBAAgB,kDAAkD,eAAe,iBAAiB,cAAc,iBAAiB,qBAAqB,uEAAuE,WAAW,oCAAoC,aAAa,mCAAmC,SAAS,6BAA6B,cAAc,kBAAkB,mBAAmB,aAAa,kBAAkB,mBAAmB,+BAA+B,cAAc,uEAAuE,mBAAmB,oCAAoC,eAAe,+BAA+B,oBAAoB,oDAAoD,eAAe,cAAc,iBAAiB,cAAc,kBAAkB,MAAM,UAAU,qBAAqB,cAAc,UAAU,+KAA+K,cAAc,qBAAqB,gBAAgB,4BAA4B,kBAAkB,aAAa,kCAAkC,YAAY,oCAAoC,eAAe,gBAAgB,wCAAwC,2BAA2B,0BAA0B,wBAAwB,aAAa,gEAAgE,aAAa,8BAA8B,cAAc,yCAAyC,SAAS,mDAAmD,gBAAgB,uDAAuD,aAAa,mBAAmB,oHAAoH,eAAe,cAAc,aAAa,aAAa,wBAAwB,eAAe,eAAe,+BAA+B,YAAY,iCAAiC,c","file":"./../css/simpay-admin.min.css","sourcesContent":[".simpay-settings-subsections{display:flex;align-items:center;box-shadow:inset 0 -1px 0 0 #ccc}.simpay-settings-subsections__subsection{font-weight:500;text-decoration:none;padding:15px;display:flex;align-items:center}.simpay-settings-subsections__subsection .dashicons{width:18px;height:18px;font-size:18px;margin-right:4px}.simpay-settings-subsections__subsection.is-active{box-shadow:inset 0 -4px 0 0 currentColor;position:relative;z-index:1}.simpay-settings-subsections__subsection:not(.is-active){color:#23282d}.simpay-settings form>h2:not(.nav-tab-wrapper){clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;position:absolute !important;width:1px}.simpay-settings .form-table td fieldset+p,.simpay-settings .form-table td label+p,.simpay-settings .form-table td select+p,.simpay-settings .form-table td input+p{color:#666;font-style:italic}.simpay-settings .simpay-settings-subsections__subsection{display:flex;align-items:center}.simpay-settings .simpay-settings-subsections__subsection .simpay-settings-bubble{margin-left:5px}.button.button-large.simpay-button-large{font-size:14px;line-height:30px;padding:4px 12px}.simpay-copy-hidden-input{clip:rect(1px, 1px, 1px, 1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.fixed .column-livemode{width:15%;text-align:right}@media screen and (max-width: 782px){.fixed .column-livemode{text-align:left}}.fixed .column-livemode .simpay-badge{margin-top:3px}.fixed .column-shortcode{width:25%}.fixed .column-shortcode .simpay-shortcode{clip:rect(1px, 1px, 1px, 1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.post-type-simple-pay .misc-pub-curtime,.post-type-simple-pay .misc-pub-visibility{display:none}.simpay-metabox-title{border:1px solid #eee}.simpay-shortcode-section{border-top:1px solid #ddd;border-width:1px 0;padding-top:15px;padding-bottom:15px;position:relative}.simpay-shortcode-section label{display:block;margin-bottom:6px}.simpay-shortcode-section label .dashicons{color:#8c8f94;margin-right:3px}.simpay-shortcode-section .simpay-copy-button{line-height:normal;position:absolute;right:20px;bottom:20px;border:0;background:none;box-shadow:none;padding:0}.simpay-shortcode-section .simpay-copy-button:hover{border:0;background:none;box-shadow:none}.simpay-shortcode-section .simpay-copy-button .dashicons{color:#3c434a}.simpay-shortcode{width:100%;padding:8px;line-height:1;margin:0;height:32px;resize:none}.simpay-badge{color:#3f3f46;text-align:center;line-height:1;padding:5px 7px;border-radius:3px;background:#e4e4e7;border:0;box-shadow:none;display:inline-flex;align-items:center}button.simpay-badge{cursor:pointer}button.simpay-badge:hover{background:#d4d4d8}.simpay-badge__icon{opacity:.8;margin:2px 5px 0 0}.simpay-badge--green{color:#0e6245;background:#cbf4c9}.simpay-badge--yellow{color:#983705;background:#f8e5b9}.simpay-stripe-account-info{display:flex;align-items:center;margin-bottom:8px}.simpay-stripe-account-info .spinner{float:none;margin-top:0;margin-left:0}.simple-pay_page_simpay_settings .simpay-settings-upgrade,.post-type-simple-pay .simpay-settings-upgrade{margin-top:20px;padding:1px;position:relative;background:#fff;border-radius:4px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2),0 5px 10px rgba(0,0,0,.1);max-width:677px}.simple-pay_page_simpay_settings .simpay-settings-upgrade__inner,.post-type-simple-pay .simpay-settings-upgrade__inner{text-align:center;margin:0;padding:30px}.simple-pay_page_simpay_settings .simpay-settings-upgrade h3,.post-type-simple-pay .simpay-settings-upgrade h3{line-height:1.5;font-size:22px;margin:0 0 1.5rem}.simple-pay_page_simpay_settings .simpay-settings-upgrade ul,.post-type-simple-pay .simpay-settings-upgrade ul{margin:1.5rem 0 calc(1.5rem - 6px);display:flex;flex-wrap:wrap;justify-content:center}@media screen and (min-width: 782px){.simple-pay_page_simpay_settings .simpay-settings-upgrade ul,.post-type-simple-pay .simpay-settings-upgrade ul{margin-left:4rem;margin-right:4rem}}.simple-pay_page_simpay_settings .simpay-settings-upgrade li,.post-type-simple-pay .simpay-settings-upgrade li{font-size:15px;margin:6px 0;width:100%}.simple-pay_page_simpay_settings .simpay-settings-upgrade li a,.post-type-simple-pay .simpay-settings-upgrade li a{color:#3c434a;text-decoration:none}.simple-pay_page_simpay_settings .simpay-settings-upgrade li a:hover,.post-type-simple-pay .simpay-settings-upgrade li a:hover{color:var(--wp-admin-theme-color);text-decoration:underline}@media screen and (min-width: 782px){.simple-pay_page_simpay_settings .simpay-settings-upgrade li,.post-type-simple-pay .simpay-settings-upgrade li{text-align:left;width:50%}}.simple-pay_page_simpay_settings .simpay-settings-upgrade .button.button-large,.post-type-simple-pay .simpay-settings-upgrade .button.button-large{font-size:17px;line-height:30px;padding:10px 20px}.simple-pay_page_simpay_settings .simpay-settings-upgrade small,.post-type-simple-pay .simpay-settings-upgrade small{color:#666;margin:15px 0 0;display:block}.simple-pay_page_simpay_settings .simpay-settings-upgrade .dashicons-yes,.post-type-simple-pay .simpay-settings-upgrade .dashicons-yes{color:#428bca}.simple-pay_page_simpay_settings .simpay-settings-upgrade .button-link,.post-type-simple-pay .simpay-settings-upgrade .button-link{position:absolute;top:0;right:0;font-size:20px;color:#666;font-weight:bold;text-decoration:none;margin-left:5px;padding:6px 10px;z-index:2}.simple-pay_page_simpay_settings .simpay-settings-upgrade .button-link:hover,.simple-pay_page_simpay_settings .simpay-settings-upgrade .button-link:active,.simple-pay_page_simpay_settings .simpay-settings-upgrade .button-link:focus,.post-type-simple-pay .simpay-settings-upgrade .button-link:hover,.post-type-simple-pay .simpay-settings-upgrade .button-link:active,.post-type-simple-pay .simpay-settings-upgrade .button-link:focus{color:#666;text-decoration:none}.simple-pay_page_simpay_settings .simpay-settings-upgrade .simpay-upgrade-btn-subtext,.post-type-simple-pay .simpay-settings-upgrade .simpay-upgrade-btn-subtext{text-align:center;margin:0;padding:30px 20px 20px;background-color:#fcf9e8;border:1px solid #edeac9;border-width:1px 0 0;position:relative;border-radius:0;border-bottom-left-radius:4px;border-bottom-right-radius:4px}@media screen and (min-width: 782px){.simple-pay_page_simpay_settings .simpay-settings-upgrade .simpay-upgrade-btn-subtext,.post-type-simple-pay .simpay-settings-upgrade .simpay-upgrade-btn-subtext{padding-left:4rem;padding-right:4rem}}.simple-pay_page_simpay_settings .simpay-settings-upgrade .simpay-upgrade-btn-subtext svg,.post-type-simple-pay .simpay-settings-upgrade .simpay-upgrade-btn-subtext svg{background:#00a32a;fill:#fff;border-radius:50%;border:4px solid #fff;box-shadow:0 0 0 1px #edeac9;width:28px;height:28px;position:absolute;top:-18px;left:50%;margin-left:-18px}.simple-pay_page_simpay_settings .simpay-settings-upgrade .simpay-upgrade-btn-subtext u,.post-type-simple-pay .simpay-settings-upgrade .simpay-upgrade-btn-subtext u{text-decoration:none;font-weight:bold;color:#00a32a}.simple-pay_page_simpay_settings .simpay-settings-upgrade .simpay-upgrade-btn-subtext a,.post-type-simple-pay .simpay-settings-upgrade .simpay-upgrade-btn-subtext a{font-weight:normal;display:inline-block}#simpay-payment-form-settings table{width:100%;border-collapse:collapse}#simpay-payment-form-settings ::-webkit-input-placeholder{color:#9ba1a9}#simpay-payment-form-settings ::-moz-placeholder{color:#9ba1a9;opacity:1}#simpay-payment-form-settings :-ms-input-placeholder{color:#9ba1a9}#simpay-payment-form-settings .inside{margin:0;padding:0}#simpay-payment-form-settings .simpay-panel-field .toolbar{margin-bottom:-4px}#simpay-payment-form-settings .simpay-panel-field .toolbar .simpay-field-select{margin:0 0 4px;width:auto;max-width:70%}#simpay-payment-form-settings .simpay-tabs{margin:0;padding:0;list-style:none;background:#fafafa;border-right:1px solid #ccd0d4;line-height:1em;position:relative;flex:0 0 25%}@media screen and (max-width: 782px){#simpay-payment-form-settings .simpay-tabs{flex-basis:100%;flex-grow:1;border-right:0}}#simpay-payment-form-settings .simpay-tabs li{margin:0;padding:0}#simpay-payment-form-settings .simpay-tabs li:first-child{margin-top:-1px}#simpay-payment-form-settings .simpay-tabs li:last-child{margin-bottom:20px}@media screen and (max-width: 782px){#simpay-payment-form-settings .simpay-tabs li:last-child{margin-bottom:0}}#simpay-payment-form-settings .simpay-tabs li.active{margin-left:-1px;box-shadow:0 1px 1px rgba(0,0,0,.04);position:relative}#simpay-payment-form-settings .simpay-tabs li.active:focus:after{display:none}#simpay-payment-form-settings .simpay-tabs li.active:before,#simpay-payment-form-settings .simpay-tabs li.active:after{content:\"\";width:calc(100% + 1px);height:1px;background:#ccd0d4;position:absolute;top:0;left:0;right:0;z-index:2}#simpay-payment-form-settings .simpay-tabs li.active:after{top:auto;bottom:0}#simpay-payment-form-settings .simpay-tabs li.active a{font-weight:bold;background-color:#fff;position:relative;margin-right:-1px}#simpay-payment-form-settings .simpay-tabs li.active a:before{content:\"\";position:absolute;top:0;left:0;bottom:0;width:4px;height:100%;background:currentColor;z-index:3}@media screen and (max-width: 782px){#simpay-payment-form-settings .simpay-tabs li.active a{margin-right:0}}#simpay-payment-form-settings .simpay-tabs li .simpay-tab-item{display:flex;align-items:center;line-height:20px;margin:0;padding:10px 10px 10px 14px;text-decoration:none;transition:all .05s ease-in-out}#simpay-payment-form-settings .simpay-tabs li .simpay-tab-item svg,#simpay-payment-form-settings .simpay-tabs li .simpay-tab-item .dashicons{margin-right:6px}@media screen and (max-width: 782px){#simpay-payment-form-settings .simpay-tabs li .simpay-tab-item{padding:18px}}#simpay-payment-form-settings .simpay-tabs li .simpay-tab-item:focus{outline:0;position:relative;z-index:3;box-shadow:inset 0 0 0 2px currentColor}#simpay-payment-form-settings .simpay-tabs li:not(.active) .simpay-tab-item{color:inherit}#simpay-payment-form-settings .simpay-panels-wrap{background:#fff;display:flex}@media screen and (max-width: 782px){#simpay-payment-form-settings .simpay-panels-wrap{flex-direction:column}}#simpay-payment-form-settings .simpay-panels{flex:0 0 75%;display:flex}@media screen and (max-width: 782px){#simpay-payment-form-settings .simpay-panels{flex-basis:100%}}#simpay-payment-form-settings .simpay-panel,#simpay-payment-form-settings .simpay-panel-section{width:100%}#simpay-payment-form-settings .simpay-panel>table,#simpay-payment-form-settings .simpay-panel>table>tr,#simpay-payment-form-settings .simpay-panel>table>tbody,#simpay-payment-form-settings .simpay-panel>table>tbody>tr,#simpay-payment-form-settings .simpay-panel>table>thead,#simpay-payment-form-settings .simpay-panel>table>thead>tr{display:block;width:100%}#simpay-payment-form-settings .simpay-panel>table:last-child>tbody:last-child>tr:last-child>td{border-bottom:0}#simpay-payment-form-settings .simpay-panel-field--requires-upgrade{position:relative}#simpay-payment-form-settings .simpay-panel-field--requires-upgrade td>div{margin-right:80px}#simpay-payment-form-settings .simpay-panel-field--requires-upgrade td>div .button-small{position:absolute;top:calc(50% - 13px);right:18px}#simpay-payment-form-settings .simpay-panel-field,#simpay-payment-form-settings .simpay-panel-field>td,#simpay-payment-form-settings .simpay-panel-field>th{text-align:left;display:block}#simpay-payment-form-settings .simpay-panel-field>td,#simpay-payment-form-settings .simpay-panel-field>th{width:calc(100% - 36px);margin-left:18px;margin-right:18px}#simpay-payment-form-settings .simpay-panel-field th{font-weight:bold;padding-top:18px;padding-bottom:5px}#simpay-payment-form-settings .simpay-panel-field td{border-bottom:1px solid #ddd;padding-bottom:18px}#simpay-payment-form-settings .simpay-panel-field p.description{margin-top:4px}#simpay-payment-form-settings .simpay-panel-field p.description:last-of-type{margin-bottom:0}#simpay-payment-form-settings .simpay-panel-field .simpay-panel-field__nested{margin-top:18px}#simpay-payment-form-settings .simpay-panel-field .simpay-panel-field__nested label{font-weight:bold;display:block;margin-bottom:4px}#simpay-payment-form-settings .simpay-panel-field .simpay-field-select,#simpay-payment-form-settings .simpay-panel-field .simpay-field-text{min-width:75%;max-width:100%}@media screen and (max-width: 782px){#simpay-payment-form-settings .simpay-panel-field .simpay-field-select,#simpay-payment-form-settings .simpay-panel-field .simpay-field-text{min-width:0;width:100%}}#simpay-payment-form-settings .simpay-panel-field .simpay-field-textarea{width:100%;max-width:100%}#simpay-payment-form-settings .simpay-panel-field .notice:last-of-type{margin-bottom:0}#simpay-payment-form-settings .simpay-panel-field .error,#simpay-payment-form-settings .simpay-panel-field .simpay-important{color:#a94442;font-weight:normal}#simpay-payment-form-settings .simpay-panel-field .simpay-image-preview-wrap{position:relative;margin-top:12px}#simpay-payment-form-settings .simpay-panel-field .simpay-image-preview-wrap .simpay-remove-image-preview{position:absolute;top:-15px;left:-15px;cursor:pointer;background-color:#fff}#simpay-payment-form-settings .simpay-panel-field .simpay-image-preview-wrap .simpay-remove-image-preview::before{font-size:22px;line-height:26px}#simpay-payment-form-settings .simpay-panel-field .simpay-image-preview-wrap .simpay-image-preview{max-height:128px;max-width:128px;border:1px solid #ddd}#simpay-payment-form-settings .simpay-panel .simpay-promo-under-box{background-color:#f4f4f4;border:1px solid #e5e5e5;padding:18px;margin-top:18px;position:relative}#simpay-payment-form-settings .simpay-panel .simpay-promo-under-box__dismiss{color:inherit;text-decoration:none;position:absolute;top:8px;right:8px}#simpay-payment-form-settings .simpay-panel .simpay-promo-under-box__dismiss .dashicons-dismiss{font-size:16px;width:16px;height:16px}#simpay-payment-form-settings .simpay-panel .simpay-promo-under-box h3{font-size:18px;font-weight:600;margin:0;padding:0}#simpay-payment-form-settings .simpay-panel .simpay-promo-under-box p{font-size:14px}#simpay-payment-form-settings .simpay-panel .simpay-promo-under-box p:last-child{margin-bottom:0}#simpay-payment-form-settings .simpay-metabox-content{margin-bottom:-1px;background-color:#f5f5f5;border:1px solid #c3c4c7;border-width:1px 0;box-shadow:0 1px 1px rgba(0,0,0,.04);position:relative}#simpay-payment-form-settings .simpay-show-if,#simpay-payment-form-settings .simpay-panel-hidden{display:none}#simpay-payment-form-settings .simpay-payment-methods{border:1px solid #ccd0d4;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,.04)}#simpay-payment-form-settings .simpay-panel-field-payment-method{display:block;border-top:1px solid #ccd0d4;padding:7px;box-sizing:border-box}#simpay-payment-form-settings .simpay-panel-field-payment-method:first-child{border-top:0;border-top-left-radius:4px;border-top-right-radius:4px}#simpay-payment-form-settings .simpay-panel-field-payment-method input[type=checkbox]{margin-top:0;margin-right:8px}#simpay-payment-form-settings .simpay-panel-field-payment-method__help{color:#666;text-decoration:none;margin-right:5px}#simpay-payment-form-settings .simpay-panel-field-payment-method__help .dashicons{font-size:18px;width:18px;height:18px}#simpay-payment-form-settings .simpay-panel-field-payment-method__restrictions{margin-left:65px}#simpay-payment-form-settings .simpay-panel-field-payment-method__icon{border-radius:3px;overflow:hidden;margin:0 8px 0 5px;width:30px;height:30px;flex-shrink:0}#simpay-payment-form-settings .simpay-panel-field-payment-method__icon svg{width:30px;height:30px}#simpay-global-settings .sortable-placeholder,#simpay-form-settings .sortable-placeholder{margin:5px;display:block;min-height:36px}#simpay-global-settings .chosen-container,#simpay-form-settings .chosen-container{min-width:20em;max-width:30em}#simpay-global-settings .simpay-field.simpay-small-text,#simpay-form-settings .simpay-field.simpay-small-text{width:7em}#simpay-global-settings .simpay-field.simpay-medium-text,#simpay-form-settings .simpay-field.simpay-medium-text{width:15em}#simpay-global-settings .simpay-field-radios ul,#simpay-form-settings .simpay-field-radios ul{margin:0}#simpay-global-settings .simpay-field-radios>i,#simpay-form-settings .simpay-field-radios>i{margin-left:5px;vertical-align:middle}#simpay-global-settings ul.simpay-field-radios-inline,#simpay-form-settings ul.simpay-field-radios-inline{margin:0 0 -10px}#simpay-global-settings ul.simpay-field-radios-inline li,#simpay-form-settings ul.simpay-field-radios-inline li{display:inline-block;margin:0 10px 10px 0}#simpay-global-settings ul.simpay-field-radios-inline li:last-child,#simpay-form-settings ul.simpay-field-radios-inline li:last-child{margin-right:0}#simpay-global-settings .simpay-currency-field,#simpay-form-settings .simpay-currency-field{display:flex;align-items:center}>#simpay-global-settings .simpay-currency-field:focus,>#simpay-form-settings .simpay-currency-field:focus{position:relative;z-index:5}#simpay-global-settings .simpay-currency-symbol,#simpay-form-settings .simpay-currency-symbol{margin:0;padding-left:8px;padding-right:8px;line-height:28px;font-size:14px}@media screen and (max-width: 782px){#simpay-global-settings .simpay-currency-symbol,#simpay-form-settings .simpay-currency-symbol{line-height:38px}}#simpay-global-settings .simpay-currency-symbol-left,#simpay-form-settings .simpay-currency-symbol-left{border-top-left-radius:4px;border-bottom-left-radius:4px}#simpay-global-settings .simpay-currency-symbol-right,#simpay-form-settings .simpay-currency-symbol-right{border-top-right-radius:4px;border-bottom-right-radius:4px}#simpay-global-settings div.simpay-currency-symbol,#simpay-form-settings div.simpay-currency-symbol{border-color:#7e8993;border-style:solid;background-color:#fff}#simpay-global-settings select.simpay-currency-symbol,#simpay-form-settings select.simpay-currency-symbol{padding-right:25px}#simpay-global-settings .simpay-currency-symbol-left,#simpay-form-settings .simpay-currency-symbol-left{border-width:1px 0 1px 1px}#simpay-global-settings .simpay-currency-symbol-left+.simpay-field-amount,#simpay-form-settings .simpay-currency-symbol-left+.simpay-field-amount{border-radius:0 4px 4px 0}#simpay-global-settings .simpay-currency-symbol-right,#simpay-form-settings .simpay-currency-symbol-right{border-width:1px 1px 1px 0}#simpay-global-settings .simpay-field-amount,#simpay-form-settings .simpay-field-amount{margin:0;padding-left:8px;padding-right:8px;font-size:14px;width:6em;position:relative;z-index:2;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px}#simpay-global-settings .simpay-error,#simpay-form-settings .simpay-error{color:red}#simpay-global-settings .simpay-docs-link-wrap,#simpay-form-settings .simpay-docs-link-wrap{position:absolute;right:0;bottom:0;color:#666;font-size:13px;font-style:italic;padding:15px 18px}#simpay-global-settings .simpay-docs-link-wrap a .dashicons-editor-help,#simpay-form-settings .simpay-docs-link-wrap a .dashicons-editor-help{color:#666;text-decoration:none;width:17px;height:17px;font-size:17px;padding-left:4px}#simpay-global-settings .simpay-docs-icon,#simpay-form-settings .simpay-docs-icon{color:#666}#simpay-global-settings .simpay-docs-icon,#simpay-global-settings .simpay-docs-icon .dashicons-editor-help,#simpay-form-settings .simpay-docs-icon,#simpay-form-settings .simpay-docs-icon .dashicons-editor-help{text-decoration:none;width:17px;height:17px;font-size:17px}.button.button-primary.simpay-upgrade-btn{background-color:#428bca;border:1px solid #428bca;color:#fff;display:inline-block}.button.button-primary.simpay-upgrade-btn:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #2d6ca2}.button.button-primary.simpay-upgrade-btn:hover{background-color:#037ad0;border:1px solid #428bca}.simpay-upgrade-btn-subtext{color:#3c434a;font-size:14px;line-height:1.5;text-align:center;margin:40px 0 0;padding:30px 35px 20px;background-color:#fcf9e8;border:3px solid #ebe29a;border-radius:4px;position:relative}.simpay-upgrade-btn-subtext svg{background:#00a32a;fill:#fff;border-radius:50%;border:3px solid #ebe29a;width:28px;height:28px;position:absolute;top:-14px;left:50%;margin-left:-14px}.simpay-upgrade-btn-subtext u{text-decoration:none;font-weight:bold;color:#00a32a}.simpay-upgrade-btn-subtext a{text-decoration:none;display:block;margin-top:6px;font-weight:bold}.post-type-simple-pay #post-body-content{display:none}.simpay-card{margin:0 0 20px;padding:30px;background:#fff;border:1px solid #c3c4c7;box-shadow:0 1px 1px rgba(0,0,0,.04)}.simpay-card,.simpay-card p{line-height:1.5;font-size:16px}.simpay-card h3{line-height:1.6;font-size:18px;margin:0 0 20px;color:#23282c}.simpay-card p{margin:0 0 20px}.simpay-card p:last-child,.simpay-card ul:last-child{margin-bottom:0}.simpay-card figure{float:right;margin:0 0 30px 30px;max-width:400px}.simpay-card figure iframe,.simpay-card figure img{max-width:100%}.simpay-card figure figcaption{text-align:center}@media screen and (max-width: 782px){.simpay-card figure{margin:0 0 30px;max-width:100%;float:none}}.simpay-doc-suggestions{width:100%;display:flex;flex-wrap:wrap;padding:0}.simpay-doc-suggestion{text-align:center;display:flex;flex-direction:column;justify-content:center;align-items:center;flex:0 1 33.333%;padding:30px;border-right:1px solid #c3c4c7;box-sizing:border-box}.simpay-doc-suggestion:nth-child(3n){border-right:0}@media screen and (max-width: 782px){.simpay-doc-suggestion{flex:0 1 100%;border-bottom:1px solid #c3c4c7;border-right:0}.simpay-doc-suggestion:last-child{border-bottom:0}}.simpay-doc-suggestion h3{font-size:20px;margin-bottom:10px}.simpay-doc-suggestion p{font-size:15px}.simpay-doc-suggestion .dashicons{font-size:40px;width:40px;height:40px;display:block;margin-bottom:10px}.simpay-doc-suggestion .button-large{font-size:16px}.simpay-addons{display:flex;flex-wrap:wrap;justify-content:space-between;margin:20px 0}.simpay-addon{background:#fff;border:1px solid #c3c4c7;box-shadow:0 1px 1px rgba(0,0,0,.04);margin-bottom:20px;display:flex;flex-direction:column;flex-basis:calc(33% - 10px);box-sizing:border-box}@media screen and (max-width: 782px){.simpay-addon{flex-basis:100%}}.simpay-addon img{float:left;max-width:75px}.simpay-addon h5{margin:0 0 10px 100px;font-size:16px}.simpay-addon__details{padding:20px;flex:1 0 auto}.simpay-addon__actions{display:flex;align-items:center;justify-content:space-between;flex:0 1 auto;background-color:#f7f7f7;border-top:1px solid #ddd;margin-top:auto;padding:20px;position:relative}.simpay-addon__actions .msg{text-align:center;justify-content:center;display:flex;align-items:center;position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;background-color:#f7f7f7;z-index:3}.simpay-addon .error,.simpay-addon .status-label.status-installed{color:#d63638}.simpay-addon .success,.simpay-addon .status-label.status-active{color:#00a32a}.simpay-addon .addon-desc{margin:0 0 0 100px}.form-table td .simpay-stripe-connect-help{margin:15px 0;display:flex;align-items:center}.form-table td .simpay-stripe-connect-help .dashicons{margin-right:4px}.simpay-currency-field{display:flex;align-items:center}>.simpay-currency-field:focus{position:relative;z-index:5}.simpay-currency-symbol{margin:0;padding-left:8px;padding-right:8px;line-height:28px;font-size:14px}@media screen and (max-width: 782px){.simpay-currency-symbol{line-height:38px}}.simpay-currency-symbol-left{border-top-left-radius:4px;border-bottom-left-radius:4px}.simpay-currency-symbol-right{border-top-right-radius:4px;border-bottom-right-radius:4px}div.simpay-currency-symbol{border-color:#7e8993;border-style:solid;background-color:#fff}select.simpay-currency-symbol{padding-right:25px}.simpay-currency-symbol-left{border-width:1px 0 1px 1px}.simpay-currency-symbol-left+.simpay-field-amount{border-radius:0 4px 4px 0}.simpay-currency-symbol-right{border-width:1px 1px 1px 0}.simpay-field-amount{margin:0;padding-left:8px;padding-right:8px;font-size:14px;width:6em;position:relative;z-index:2;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.post-new-php.post-type-simple-pay #screen-meta-links,.post-php.post-type-simple-pay #screen-meta-links,.edit-php.post-type-simple-pay #screen-meta-links{display:none}.simpay-branding-bar{margin-left:-20px;padding:14px 20px 14px 22px;background:#fff;border-bottom:1px solid #c3c4c7;box-shadow:0 1px 1px rgba(0,0,0,.04)}.simpay-branding-bar__title{display:flex;align-items:center;float:left;margin:8px 0}.simpay-branding-bar__logo{width:200px}.simpay-branding-bar__divider{color:#dadbdf;font-size:23px;font-weight:400;margin:0 15px}.simpay-branding-bar__actions{float:right;margin-top:4px;display:flex;align-items:center}.simpay-branding-bar__actions>div{margin-left:10px;min-width:40px}.simpay-branding-bar__actions-button{color:#000;cursor:pointer;padding:10px;width:40px;height:40px;background-color:#f3f4f5;border-radius:50%;border:0;box-shadow:none;position:relative;transition:background-color .2s ease;box-sizing:border-box;display:block}.simpay-branding-bar__actions-button:hover{background-color:#e5e5e5}.simpay-branding-bar__actions-button:active,.simpay-branding-bar__actions-button:focus{box-shadow:0 0 0 2px var(--wp-admin-theme-color)}.simpay-branding-bar__actions-button-count{font-weight:600;font-size:10px;line-height:16px;color:#fff;margin:0;background-color:#df2a4a;border-radius:100%;width:16px;height:16px;position:absolute;top:-8px;left:50%;margin-left:-8px}.simpay-branding-bar .wp-heading-inline{font-size:23px;font-weight:400;margin:0}.simpay-branding-bar .page-title-action{font-weight:600;font-size:13px;line-height:normal;cursor:pointer;text-shadow:none;text-decoration:none;margin-left:10px;padding:4px 8px;border:1px solid currentColor;border-radius:2px;background:#f6f7f7}.simpay-landing-zone{text-align:center;max-width:700px;margin:40px auto}.simpay-landing-zone__title{font-size:26px;font-weight:600;margin:0 0 1.5rem;padding:0}.simpay-landing-zone__subtitle{font-size:17px;color:#666;margin:.25rem 0}.simpay-landing-zone__subtitle strong{color:#444}.simpay-landing-zone section{margin:2rem 0}.simpay-landing-zone__empty-state-graphic img{width:425px}.simpay-landing-zone__screenshot>*{vertical-align:middle}.simpay-landing-zone__screenshot-img{display:inline-block;position:relative;width:315px;padding:5px;background-color:#fff;box-shadow:0px 2px 5px 0px rgba(0,0,0,.05);border-radius:3px}.simpay-landing-zone__screenshot-img img{max-width:100%;display:block}.simpay-landing-zone__screenshot-img .hover{position:absolute;opacity:0;height:calc(100% - 10px);width:calc(100% - 10px);top:0;left:0;border:5px solid #fff;background-color:rgba(0,0,0,.15);background-image:url(data:image/svg+xml;base64,PHN2ZyBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiPjxwYXRoIGQ9Ik01MCAwYzI3LjYxNCAwIDUwIDIyLjM4NiA1MCA1MHMtMjIuMzg2IDUwLTUwIDUwUzAgNzcuNjE0IDAgNTAgMjIuMzg2IDAgNTAgMHoiIGZpbGw9IiMxNjg1YjciLz48cGF0aCBkPSJNNzMuMDIzIDY3LjA2N2wtOS4zNDQtOS4zNDRhMi4yNDcgMi4yNDcgMCAwMC0xLjU5My0uNjU2aC0xLjUyOGExOS4zOTkgMTkuMzk5IDAgMDA0LjEyNC0xMS45OTZjMC0xMC43Ny04LjcyNS0xOS40OTUtMTkuNDk0LTE5LjQ5NS0xMC43NjggMC0xOS40OTQgOC43MjYtMTkuNDk0IDE5LjQ5NSAwIDEwLjc2OCA4LjcyNiAxOS40OTMgMTkuNDk0IDE5LjQ5M2ExOS40IDE5LjQgMCAwMDExLjk5Ny00LjEyM3YxLjUyN2MwIC42LjIzNCAxLjE3Mi42NTUgMS41OTRsOS4zNDQgOS4zNDRhMi4yNCAyLjI0IDAgMDAzLjE3OCAwbDIuNjUyLTIuNjUzYTIuMjYgMi4yNiAwIDAwLjAxLTMuMTg2em0tMjcuODM1LTEwYy02LjYyNiAwLTExLjk5Ni01LjM2MS0xMS45OTYtMTEuOTk2IDAtNi42MjcgNS4zNi0xMS45OTcgMTEuOTk2LTExLjk5NyA2LjYyNiAwIDExLjk5NyA1LjM2MSAxMS45OTcgMTEuOTk3IDAgNi42MjYtNS4zNjEgMTEuOTk2LTExLjk5NyAxMS45OTZ6IiBmaWxsPSIjZmZmIi8+PC9zdmc+);background-repeat:no-repeat;background-position:center;background-size:50px;transition:all .3s}.simpay-landing-zone__screenshot-img:hover .hover{opacity:1;transition:all .3s}.simpay-landing-zone__screenshot ul{text-align:left;display:inline-block;margin:0 0 0 30px;list-style-type:none;max-width:calc(100% - 350px)}@media screen and (max-width: 782px){.simpay-landing-zone__screenshot ul{text-align:center;margin:30px auto;max-width:100%;display:block}}.simpay-landing-zone__screenshot li{margin:16px 0;padding:0;font-size:15px;color:#777;position:relative}.simpay-landing-zone__screenshot li:before{content:\"\";background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEzLjc3NjIgNi40NTYwNUw4LjcyMDMyIDEuNDAwMDVDOC41NzU5OSAxLjI1NTcyIDguMzgzNjQgMS4xNzY1IDguMTc4NTMgMS4xNzY1QzcuOTczMiAxLjE3NjUgNy43ODA5NiAxLjI1NTg0IDcuNjM2NjQgMS40MDAwNUw3LjE3NzYgMS44NTkyQzcuMDMzMzkgMi4wMDMyOSA2Ljk1Mzk1IDIuMTk1NzYgNi45NTM5NSAyLjQwMDk4QzYuOTUzOTUgMi42MDYwOCA3LjAzMzM5IDIuODA1MDQgNy4xNzc2IDIuOTQ5MTRMMTAuMTI3MSA1LjkwNTE2SDAuNzU2MzM0QzAuMzMzODM0IDUuOTA1MTYgMCA2LjIzNTkyIDAgNi42NTg1NFY3LjMwNzY1QzAgNy43MzAyNyAwLjMzMzgzNCA4LjA5NDM4IDAuNzU2MzM0IDguMDk0MzhIMTAuMTYwNkw3LjE3NzcyIDExLjA2NjlDNy4wMzM1MSAxMS4yMTEyIDYuOTU0MDYgMTEuMzk4NSA2Ljk1NDA2IDExLjYwMzdDNi45NTQwNiAxMS44MDg3IDcuMDMzNTEgMTEuOTk4NiA3LjE3NzcyIDEyLjE0MjhMNy42MzY3NSAxMi42MDA1QzcuNzgxMDcgMTIuNzQ0OCA3Ljk3MzMyIDEyLjgyMzUgOC4xNzg2NSAxMi44MjM1QzguMzgzNzUgMTIuODIzNSA4LjU3NjExIDEyLjc0MzggOC43MjA0MyAxMi41OTk1TDEzLjc3NjMgNy41NDM2QzEzLjkyMSA3LjM5ODgyIDE0LjAwMDUgNy4yMDU1NiAxNCA3LjAwMDExQzE0LjAwMDQgNi43OTM5OCAxMy45MjEgNi42MDA2IDEzLjc3NjIgNi40NTYwNVY2LjQ1NjA1WiIgZmlsbD0iIzQyOEJDQSIvPgo8L3N2Zz4K);background-position:center;background-repeat:no-repeat;background-size:14px;width:14px;height:14px;display:inline-block;margin:-3px 5px 0 0;vertical-align:middle}.simpay-landing-zone .button.button-large{font-size:17px;line-height:30px;padding:10px 20px}.simpay-landing-zone__purchased{display:block;margin:15px 0 0}.simpay-upgrade-modal{padding:0 !important}.simpay-upgrade-modal *{box-sizing:border-box}.simpay-upgrade-modal__content{text-align:center;display:flex;flex-direction:column;align-items:center;padding:16px 32px 32px}.simpay-upgrade-modal__content>.dashicons{color:#333;font-size:48px;width:48px;height:48px}.simpay-upgrade-modal__title{font-size:22px;line-height:1.5;display:block;margin:12px 0 0}.simpay-upgrade-modal__description{color:#777;font-size:16px;margin:16px 0 24px}.simpay-upgrade-modal__description strong{color:#333}.simpay-upgrade-modal__discount{font-size:15px;text-align:center;margin:32px -32px -32px;padding:24px 40px;background-color:#fcf9e8;position:relative}.simpay-upgrade-modal__discount svg{background:#00a32a;fill:#fff;border-radius:50%;border:4px solid #fff;width:32px;height:32px;position:absolute;top:-16px;left:50%;margin-left:-16px}.simpay-upgrade-modal__discount u{text-decoration:none;font-weight:bold;color:#00a32a}.simpay-upgrade-modal .button-large{font-size:16px;font-weight:bold;margin:0 0 15px;padding:8px 30px !important;height:auto}.simpay-teaser-float{margin:50px;position:relative}.simpay-teaser-float__card{text-align:center;padding:30px;background:#fff;border-radius:4px;box-shadow:0 0 30px 15px rgba(0,0,0,.18);position:relative;z-index:2}#poststuff .simpay-teaser-float h2,.simpay-teaser-float h2{font-size:24px;font-weight:600;margin:0;padding:0}.simpay-teaser-float p{font-size:15px;line-height:1.35;color:#666}.simpay-teaser-float p strong{color:#444}.simpay-teaser-float ul{text-align:left;display:inline-block;margin:-10px 0 20px;list-style-type:none}.simpay-teaser-float li{margin:16px 0;padding:0 0 0 24px;font-size:15px;background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEzLjc3NjIgNi40NTYwNUw4LjcyMDMyIDEuNDAwMDVDOC41NzU5OSAxLjI1NTcyIDguMzgzNjQgMS4xNzY1IDguMTc4NTMgMS4xNzY1QzcuOTczMiAxLjE3NjUgNy43ODA5NiAxLjI1NTg0IDcuNjM2NjQgMS40MDAwNUw3LjE3NzYgMS44NTkyQzcuMDMzMzkgMi4wMDMyOSA2Ljk1Mzk1IDIuMTk1NzYgNi45NTM5NSAyLjQwMDk4QzYuOTUzOTUgMi42MDYwOCA3LjAzMzM5IDIuODA1MDQgNy4xNzc2IDIuOTQ5MTRMMTAuMTI3MSA1LjkwNTE2SDAuNzU2MzM0QzAuMzMzODM0IDUuOTA1MTYgMCA2LjIzNTkyIDAgNi42NTg1NFY3LjMwNzY1QzAgNy43MzAyNyAwLjMzMzgzNCA4LjA5NDM4IDAuNzU2MzM0IDguMDk0MzhIMTAuMTYwNkw3LjE3NzcyIDExLjA2NjlDNy4wMzM1MSAxMS4yMTEyIDYuOTU0MDYgMTEuMzk4NSA2Ljk1NDA2IDExLjYwMzdDNi45NTQwNiAxMS44MDg3IDcuMDMzNTEgMTEuOTk4NiA3LjE3NzcyIDEyLjE0MjhMNy42MzY3NSAxMi42MDA1QzcuNzgxMDcgMTIuNzQ0OCA3Ljk3MzMyIDEyLjgyMzUgOC4xNzg2NSAxMi44MjM1QzguMzgzNzUgMTIuODIzNSA4LjU3NjExIDEyLjc0MzggOC43MjA0MyAxMi41OTk1TDEzLjc3NjMgNy41NDM2QzEzLjkyMSA3LjM5ODgyIDE0LjAwMDUgNy4yMDU1NiAxNCA3LjAwMDExQzE0LjAwMDQgNi43OTM5OCAxMy45MjEgNi42MDA2IDEzLjc3NjIgNi40NTYwNVY2LjQ1NjA1WiIgZmlsbD0iIzQyOEJDQSIvPgo8L3N2Zz4K);background-position:left 3px;background-repeat:no-repeat;background-size:14px;color:#777}.simpay-teaser-float .button.button-large{font-size:17px;line-height:30px;padding:10px 20px}.simpay-teaser-float .simpay-notice-dismiss{position:absolute;top:0;right:0;font-size:20px;color:#666;font-weight:bold;text-decoration:none;margin-left:5px;padding:6px 10px;z-index:2}.simpay-teaser-float .simpay-notice-dismiss:hover,.simpay-teaser-float .simpay-notice-dismiss:active,.simpay-teaser-float .simpay-notice-dismiss:focus{color:#666;text-decoration:none}.simpay-teaser-float:after,.simpay-teaser-float:before{opacity:.75;z-index:0;content:\"\";position:absolute;left:-30px;right:-30px;top:-35px;width:calc(100% + 60px);height:170px;background-image:linear-gradient(#ddd, #ddd),linear-gradient(#eee, #eee),linear-gradient(#ddd, #ddd),linear-gradient(#eee, #eee);background-repeat:no-repeat;background-size:100% 20px,100% 40px,100% 20px,100% 40px;background-position:0 0,0 30px,0 100px,0 130px}.simpay-teaser-float:before{top:170px}.simpay-teaser-float .simpay-upgrade-btn-subtext{margin:24px -30px -30px;padding:32px 40px;border-bottom-left-radius:2px;border-bottom-right-radius:2px;border:0}.simpay-teaser-float .simpay-upgrade-btn-subtext svg{border-color:#fff}.simpay-teaser-float--inline{margin:40px 30px 30px}.simpay-teaser-float--inline .simpay-teaser-float__card{padding:30px;box-shadow:0 0 12px 6px rgba(0,0,0,.16)}#poststuff .simpay-teaser-float--inline h2,.simpay-teaser-float--inline h2{font-size:20px}.simpay-teaser-float--inline p{font-size:15px;margin:.75rem 0}.simpay-teaser-float--inline .button.button-large{font-size:15px;line-height:24px;margin:1rem 0;padding:8px 14px;display:inline-block}.simpay-teaser-float--inline:before,.simpay-teaser-float--inline:after{opacity:.6}.simpay-teaser-float--inline:before{display:none}.simpay-teaser-float--inline:after{top:15px}.simpay-form-settings-notice{color:#1d2327;position:relative;margin:18px 18px 0;padding:14px;border-radius:4px;background:#f5f5ff}.simpay-form-settings-notice a{color:#635aff}.simpay-form-settings-notice .simpay-external-link .dashicons-external{margin:1px 0 0 2px}.simpay-form-settings-notice strong{font-size:14px}.simpay-form-settings-notice p{margin:5px 0 0 23px}.simpay-form-settings-notice .simpay-notice-dismiss{font-size:20px;color:#b0b0f0;font-weight:bold;line-height:1;position:absolute;top:0;right:5px;text-decoration:none;padding:0 5px;z-index:2}.simpay-form-settings-notice .simpay-notice-dismiss:hover,.simpay-form-settings-notice .simpay-notice-dismiss:active,.simpay-form-settings-notice .simpay-notice-dismiss:focus{color:#9191ef;text-decoration:none;background:none}.post-type-simple-pay .lity{z-index:999999999;padding:20px}.post-type-simple-pay .lity-close{margin:10px}.post-type-simple-pay .lity-content{max-width:80vw;max-height:80vh}.post-type-simple-pay .lity-content img{max-height:80vh !important;max-width:80vw !important}#wpsp-api-keys-row-hide{display:none}.post-type-simple-pay #post-preview:not(.simpay-preview-button){display:none}.simpay-license-field-wrapper{margin:20px 0}#simpay-settings-license-key-license-key{margin:0}#simpay-settings-license-key-license-key[readonly]{background:#fff}.simpay-license-message__loading,.simpay-license-field{display:flex;align-items:center}.wp-core-ui .button.simpay-license-button.button-primary,.wp-core-ui .button.simpay-license-button.button-secondary{font-size:1rem;line-height:1;margin:0 8px;padding:13px}.simpay-license-message{font-size:15px;margin-top:8px}.simpay-license-message--valid{color:green}.simpay-license-message--invalid{color:#cc1818}"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./css/admin/admin.scss"],"names":[],"mappings":"AAAA,6BAA6B,aAAa,mBAAmB,iCAAiC,yCAAyC,gBAAgB,qBAAqB,aAAa,aAAa,mBAAmB,oDAAoD,WAAW,YAAY,eAAe,iBAAiB,mDAAmD,yCAAyC,kBAAkB,UAAU,yDAAyD,cAAc,+CAA+C,8BAA8B,WAAW,gBAAgB,6BAA6B,UAAU,oKAAoK,WAAW,kBAAkB,0DAA0D,aAAa,mBAAmB,kFAAkF,gBAAgB,yCAAyC,eAAe,iBAAiB,iBAAiB,0BAA0B,8BAA8B,6BAA6B,qBAAqB,WAAW,YAAY,gBAAgB,UAAU,kBAAkB,UAAU,wBAAwB,UAAU,iBAAiB,qCAAqC,wBAAwB,iBAAiB,sCAAsC,eAAe,yBAAyB,UAAU,2CAA2C,8BAA8B,6BAA6B,qBAAqB,WAAW,YAAY,gBAAgB,UAAU,kBAAkB,UAAU,mFAAmF,aAAa,sBAAsB,sBAAsB,0BAA0B,0BAA0B,mBAAmB,iBAAiB,oBAAoB,kBAAkB,gCAAgC,cAAc,kBAAkB,2CAA2C,cAAc,iBAAiB,8CAA8C,mBAAmB,kBAAkB,WAAW,YAAY,SAAS,gBAAgB,gBAAgB,UAAU,oDAAoD,SAAS,gBAAgB,gBAAgB,yDAAyD,cAAc,kBAAkB,WAAW,YAAY,cAAc,SAAS,YAAY,YAAY,cAAc,cAAc,kBAAkB,cAAc,gBAAgB,kBAAkB,mBAAmB,SAAS,gBAAgB,oBAAoB,mBAAmB,oBAAoB,eAAe,0BAA0B,mBAAmB,oBAAoB,WAAW,mBAAmB,qBAAqB,cAAc,mBAAmB,sBAAsB,cAAc,mBAAmB,4BAA4B,aAAa,mBAAmB,kBAAkB,qCAAqC,WAAW,aAAa,cAAc,yGAAyG,gBAAgB,YAAY,kBAAkB,gBAAgB,kBAAkB,oEAAoE,gBAAgB,uHAAuH,kBAAkB,SAAS,aAAa,+GAA+G,gBAAgB,eAAe,kBAAkB,+GAA+G,mCAAmC,aAAa,eAAe,uBAAuB,qCAAqC,+GAA+G,iBAAiB,mBAAmB,+GAA+G,eAAe,aAAa,WAAW,mHAAmH,cAAc,qBAAqB,+HAA+H,kCAAkC,0BAA0B,qCAAqC,+GAA+G,gBAAgB,WAAW,mJAAmJ,eAAe,iBAAiB,kBAAkB,qHAAqH,WAAW,gBAAgB,cAAc,uIAAuI,cAAc,mIAAmI,kBAAkB,MAAM,QAAQ,eAAe,WAAW,iBAAiB,qBAAqB,gBAAgB,iBAAiB,UAAU,+aAA+a,WAAW,qBAAqB,iKAAiK,kBAAkB,SAAS,uBAAuB,yBAAyB,yBAAyB,qBAAqB,kBAAkB,gBAAgB,8BAA8B,+BAA+B,qCAAqC,iKAAiK,kBAAkB,oBAAoB,yKAAyK,mBAAmB,UAAU,kBAAkB,sBAAsB,6BAA6B,WAAW,YAAY,kBAAkB,UAAU,SAAS,kBAAkB,qKAAqK,qBAAqB,iBAAiB,cAAc,qKAAqK,mBAAmB,qBAAqB,oCAAoC,WAAW,yBAAyB,0DAA0D,cAAc,iDAAiD,cAAc,UAAU,qDAAqD,cAAc,sCAAsC,SAAS,UAAU,2DAA2D,mBAAmB,gFAAgF,eAAe,WAAW,cAAc,2CAA2C,SAAS,UAAU,gBAAgB,mBAAmB,+BAA+B,gBAAgB,kBAAkB,aAAa,qCAAqC,2CAA2C,gBAAgB,YAAY,gBAAgB,8CAA8C,SAAS,UAAU,0DAA0D,gBAAgB,yDAAyD,mBAAmB,qCAAqC,yDAAyD,iBAAiB,qDAAqD,iBAAiB,qCAAqC,kBAAkB,iEAAiE,aAAa,uHAAuH,WAAW,uBAAuB,WAAW,mBAAmB,kBAAkB,MAAM,OAAO,QAAQ,UAAU,2DAA2D,SAAS,SAAS,uDAAuD,iBAAiB,sBAAsB,kBAAkB,kBAAkB,8DAA8D,WAAW,kBAAkB,MAAM,OAAO,SAAS,UAAU,YAAY,wBAAwB,UAAU,qCAAqC,uDAAuD,gBAAgB,+DAA+D,aAAa,mBAAmB,iBAAiB,SAAS,4BAA4B,qBAAqB,gCAAgC,6IAA6I,iBAAiB,qCAAqC,+DAA+D,cAAc,qEAAqE,UAAU,kBAAkB,UAAU,wCAAwC,4EAA4E,cAAc,kDAAkD,gBAAgB,aAAa,qCAAqC,kDAAkD,uBAAuB,6CAA6C,aAAa,aAAa,qCAAqC,6CAA6C,iBAAiB,gGAAgG,WAAW,6UAA6U,cAAc,WAAW,+FAA+F,gBAAgB,oEAAoE,kBAAkB,2EAA2E,kBAAkB,yFAAyF,kBAAkB,qBAAqB,WAAW,4JAA4J,gBAAgB,cAAc,0GAA0G,wBAAwB,iBAAiB,kBAAkB,qDAAqD,iBAAiB,iBAAiB,mBAAmB,qDAAqD,6BAA6B,oBAAoB,gEAAgE,eAAe,6EAA6E,gBAAgB,8EAA8E,gBAAgB,oFAAoF,iBAAiB,cAAc,kBAAkB,4IAA4I,cAAc,eAAe,qCAAqC,4IAA4I,YAAY,YAAY,yEAAyE,WAAW,eAAe,uEAAuE,gBAAgB,6HAA6H,cAAc,mBAAmB,6EAA6E,kBAAkB,gBAAgB,0GAA0G,kBAAkB,UAAU,WAAW,eAAe,sBAAsB,kHAAkH,eAAe,iBAAiB,mGAAmG,iBAAiB,gBAAgB,sBAAsB,oEAAoE,yBAAyB,yBAAyB,aAAa,gBAAgB,kBAAkB,6EAA6E,cAAc,qBAAqB,kBAAkB,QAAQ,UAAU,gGAAgG,eAAe,WAAW,YAAY,uEAAuE,eAAe,gBAAgB,SAAS,UAAU,sEAAsE,eAAe,iFAAiF,gBAAgB,sDAAsD,mBAAmB,yBAAyB,yBAAyB,mBAAmB,qCAAqC,kBAAkB,iGAAiG,aAAa,sDAAsD,yBAAyB,kBAAkB,qCAAqC,iEAAiE,cAAc,6BAA6B,YAAY,sBAAsB,6EAA6E,aAAa,2BAA2B,4BAA4B,sFAAsF,aAAa,iBAAiB,uEAAuE,WAAW,qBAAqB,iBAAiB,kFAAkF,eAAe,WAAW,YAAY,kKAAkK,iBAAiB,uEAAuE,kBAAkB,gBAAgB,mBAAmB,WAAW,YAAY,cAAc,2EAA2E,WAAW,YAAY,0FAA0F,WAAW,cAAc,gBAAgB,kFAAkF,eAAe,eAAe,8GAA8G,UAAU,gHAAgH,WAAW,8FAA8F,SAAS,4FAA4F,gBAAgB,sBAAsB,0GAA0G,iBAAiB,gHAAgH,qBAAqB,qBAAqB,sIAAsI,eAAe,4FAA4F,aAAa,mBAAmB,0GAA0G,kBAAkB,UAAU,8FAA8F,SAAS,iBAAiB,kBAAkB,iBAAiB,eAAe,qCAAqC,8FAA8F,kBAAkB,wGAAwG,2BAA2B,8BAA8B,0GAA0G,4BAA4B,+BAA+B,oGAAoG,qBAAqB,mBAAmB,sBAAsB,0GAA0G,mBAAmB,wGAAwG,2BAA2B,kJAAkJ,0BAA0B,0GAA0G,2BAA2B,wFAAwF,SAAS,iBAAiB,kBAAkB,eAAe,UAAU,kBAAkB,UAAU,gBAAgB,2BAA2B,8BAA8B,0EAA0E,UAAU,4FAA4F,kBAAkB,QAAQ,SAAS,WAAW,eAAe,kBAAkB,kBAAkB,8IAA8I,WAAW,qBAAqB,WAAW,YAAY,eAAe,iBAAiB,kFAAkF,WAAW,kNAAkN,qBAAqB,WAAW,YAAY,eAAe,0CAA0C,yBAAyB,yBAAyB,WAAW,qBAAqB,gDAAgD,4CAA4C,gDAAgD,yBAAyB,yBAAyB,4BAA4B,cAAc,eAAe,gBAAgB,kBAAkB,gBAAgB,uBAAuB,yBAAyB,yBAAyB,kBAAkB,kBAAkB,gCAAgC,mBAAmB,UAAU,kBAAkB,yBAAyB,WAAW,YAAY,kBAAkB,UAAU,SAAS,kBAAkB,8BAA8B,qBAAqB,iBAAiB,cAAc,8BAA8B,qBAAqB,cAAc,eAAe,iBAAiB,yCAAyC,aAAa,aAAa,gBAAgB,aAAa,gBAAgB,yBAAyB,qCAAqC,4BAA4B,gBAAgB,eAAe,gBAAgB,gBAAgB,eAAe,gBAAgB,cAAc,eAAe,gBAAgB,qDAAqD,gBAAgB,oBAAoB,YAAY,qBAAqB,gBAAgB,mDAAmD,eAAe,+BAA+B,kBAAkB,qCAAqC,oBAAoB,gBAAgB,eAAe,YAAY,wBAAwB,WAAW,aAAa,eAAe,UAAU,uBAAuB,kBAAkB,aAAa,sBAAsB,uBAAuB,mBAAmB,iBAAiB,aAAa,+BAA+B,sBAAsB,qCAAqC,eAAe,qCAAqC,uBAAuB,cAAc,gCAAgC,eAAe,kCAAkC,iBAAiB,0BAA0B,eAAe,mBAAmB,yBAAyB,eAAe,kCAAkC,eAAe,WAAW,YAAY,cAAc,mBAAmB,qCAAqC,eAAe,eAAe,aAAa,eAAe,8BAA8B,cAAc,cAAc,gBAAgB,yBAAyB,qCAAqC,mBAAmB,aAAa,sBAAsB,4BAA4B,sBAAsB,qCAAqC,cAAc,iBAAiB,kBAAkB,WAAW,eAAe,iBAAiB,sBAAsB,eAAe,uBAAuB,aAAa,cAAc,uBAAuB,aAAa,mBAAmB,8BAA8B,cAAc,yBAAyB,0BAA0B,gBAAgB,aAAa,kBAAkB,4BAA4B,kBAAkB,uBAAuB,aAAa,mBAAmB,kBAAkB,MAAM,QAAQ,SAAS,OAAO,WAAW,YAAY,yBAAyB,UAAU,kEAAkE,cAAc,iEAAiE,cAAc,0BAA0B,mBAAmB,2CAA2C,cAAc,aAAa,mBAAmB,sDAAsD,iBAAiB,uBAAuB,aAAa,mBAAmB,8BAA8B,kBAAkB,UAAU,wBAAwB,SAAS,iBAAiB,kBAAkB,iBAAiB,eAAe,qCAAqC,wBAAwB,kBAAkB,6BAA6B,2BAA2B,8BAA8B,8BAA8B,4BAA4B,+BAA+B,2BAA2B,qBAAqB,mBAAmB,sBAAsB,8BAA8B,mBAAmB,6BAA6B,2BAA2B,kDAAkD,0BAA0B,8BAA8B,2BAA2B,qBAAqB,SAAS,iBAAiB,kBAAkB,eAAe,UAAU,kBAAkB,UAAU,gBAAgB,2BAA2B,8BAA8B,0JAA0J,aAAa,qBAAqB,kBAAkB,4BAA4B,gBAAgB,gCAAgC,qCAAqC,4BAA4B,aAAa,mBAAmB,WAAW,aAAa,2BAA2B,YAAY,8BAA8B,cAAc,eAAe,gBAAgB,cAAc,8BAA8B,YAAY,eAAe,aAAa,mBAAmB,kCAAkC,iBAAiB,eAAe,qCAAqC,WAAW,eAAe,aAAa,WAAW,YAAY,yBAAyB,kBAAkB,SAAS,gBAAgB,kBAAkB,qCAAqC,sBAAsB,cAAc,2CAA2C,yBAAyB,uFAAuF,iDAAiD,2CAA2C,gBAAgB,eAAe,iBAAiB,WAAW,SAAS,yBAAyB,mBAAmB,WAAW,YAAY,kBAAkB,SAAS,SAAS,iBAAiB,wCAAwC,eAAe,gBAAgB,SAAS,wCAAwC,gBAAgB,eAAe,mBAAmB,eAAe,iBAAiB,qBAAqB,iBAAiB,gBAAgB,8BAA8B,kBAAkB,mBAAmB,qBAAqB,kBAAkB,gBAAgB,iBAAiB,4BAA4B,eAAe,gBAAgB,kBAAkB,UAAU,+BAA+B,eAAe,WAAW,gBAAgB,sCAAsC,WAAW,6BAA6B,cAAc,8CAA8C,YAAY,mCAAmC,sBAAsB,qCAAqC,qBAAqB,kBAAkB,YAAY,YAAY,sBAAsB,2CAA2C,kBAAkB,yCAAyC,eAAe,cAAc,4CAA4C,kBAAkB,UAAU,yBAAyB,wBAAwB,MAAM,OAAO,sBAAsB,iCAAiC,wCAAwC,i8BAAi8B,4BAA4B,2BAA2B,qBAAqB,mBAAmB,kDAAkD,UAAU,mBAAmB,oCAAoC,gBAAgB,qBAAqB,kBAAkB,qBAAqB,6BAA6B,qCAAqC,oCAAoC,kBAAkB,iBAAiB,eAAe,eAAe,oCAAoC,cAAc,UAAU,eAAe,WAAW,kBAAkB,2CAA2C,WAAW,wCAAwC,ilCAAilC,2BAA2B,4BAA4B,qBAAqB,WAAW,YAAY,qBAAqB,oBAAoB,sBAAsB,0CAA0C,eAAe,iBAAiB,kBAAkB,gCAAgC,cAAc,gBAAgB,sBAAsB,qBAAqB,wBAAwB,sBAAsB,+BAA+B,kBAAkB,aAAa,sBAAsB,mBAAmB,uBAAuB,0CAA0C,WAAW,eAAe,WAAW,YAAY,6BAA6B,eAAe,gBAAgB,cAAc,gBAAgB,mCAAmC,WAAW,eAAe,mBAAmB,0CAA0C,WAAW,gCAAgC,eAAe,kBAAkB,wBAAwB,kBAAkB,yBAAyB,kBAAkB,oCAAoC,mBAAmB,UAAU,kBAAkB,sBAAsB,WAAW,YAAY,kBAAkB,UAAU,SAAS,kBAAkB,kCAAkC,qBAAqB,iBAAiB,cAAc,oCAAoC,eAAe,iBAAiB,gBAAgB,4BAA4B,YAAY,qBAAqB,YAAY,kBAAkB,2BAA2B,kBAAkB,aAAa,gBAAgB,kBAAkB,yCAAyC,kBAAkB,UAAU,2DAA2D,eAAe,gBAAgB,SAAS,UAAU,uBAAuB,eAAe,iBAAiB,WAAW,8BAA8B,WAAW,wBAAwB,gBAAgB,qBAAqB,oBAAoB,qBAAqB,wBAAwB,cAAc,mBAAmB,eAAe,wCAAwC,ilCAAilC,6BAA6B,4BAA4B,qBAAqB,WAAW,0CAA0C,eAAe,iBAAiB,kBAAkB,4CAA4C,kBAAkB,MAAM,QAAQ,eAAe,WAAW,iBAAiB,qBAAqB,gBAAgB,iBAAiB,UAAU,uJAAuJ,WAAW,qBAAqB,uDAAuD,YAAY,UAAU,WAAW,kBAAkB,WAAW,YAAY,UAAU,wBAAwB,aAAa,iIAAiI,4BAA4B,wDAAwD,+CAA+C,4BAA4B,UAAU,iDAAiD,wBAAwB,kBAAkB,8BAA8B,+BAA+B,SAAS,qDAAqD,kBAAkB,6BAA6B,sBAAsB,wDAAwD,aAAa,wCAAwC,2EAA2E,eAAe,+BAA+B,eAAe,gBAAgB,kDAAkD,eAAe,iBAAiB,cAAc,iBAAiB,qBAAqB,uEAAuE,WAAW,oCAAoC,aAAa,mCAAmC,SAAS,6BAA6B,mBAAmB,cAAc,kBAAkB,mBAAmB,aAAa,kBAAkB,mBAAmB,+BAA+B,cAAc,uEAAuE,mBAAmB,oCAAoC,eAAe,+BAA+B,oBAAoB,oDAAoD,eAAe,cAAc,iBAAiB,cAAc,kBAAkB,MAAM,UAAU,qBAAqB,cAAc,UAAU,+KAA+K,cAAc,qBAAqB,gBAAgB,8CAA8C,yBAAyB,qCAAqC,4BAA4B,kBAAkB,aAAa,kCAAkC,YAAY,oCAAoC,eAAe,gBAAgB,wCAAwC,2BAA2B,0BAA0B,wBAAwB,aAAa,gEAAgE,aAAa,8BAA8B,cAAc,yCAAyC,SAAS,mDAAmD,gBAAgB,uDAAuD,aAAa,mBAAmB,oHAAoH,eAAe,cAAc,aAAa,aAAa,wBAAwB,eAAe,eAAe,+BAA+B,YAAY,iCAAiC,c","file":"./../css/simpay-admin.min.css","sourcesContent":[".simpay-settings-subsections{display:flex;align-items:center;box-shadow:inset 0 -1px 0 0 #ccc}.simpay-settings-subsections__subsection{font-weight:500;text-decoration:none;padding:15px;display:flex;align-items:center}.simpay-settings-subsections__subsection .dashicons{width:18px;height:18px;font-size:18px;margin-right:4px}.simpay-settings-subsections__subsection.is-active{box-shadow:inset 0 -4px 0 0 currentColor;position:relative;z-index:1}.simpay-settings-subsections__subsection:not(.is-active){color:#23282d}.simpay-settings form>h2:not(.nav-tab-wrapper){clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;position:absolute !important;width:1px}.simpay-settings .form-table td fieldset+p,.simpay-settings .form-table td label+p,.simpay-settings .form-table td select+p,.simpay-settings .form-table td input+p{color:#666;font-style:italic}.simpay-settings .simpay-settings-subsections__subsection{display:flex;align-items:center}.simpay-settings .simpay-settings-subsections__subsection .simpay-settings-bubble{margin-left:5px}.button.button-large.simpay-button-large{font-size:14px;line-height:30px;padding:4px 12px}.simpay-copy-hidden-input{clip:rect(1px, 1px, 1px, 1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.fixed .column-livemode{width:15%;text-align:right}@media screen and (max-width: 782px){.fixed .column-livemode{text-align:left}}.fixed .column-livemode .simpay-badge{margin-top:3px}.fixed .column-shortcode{width:25%}.fixed .column-shortcode .simpay-shortcode{clip:rect(1px, 1px, 1px, 1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.post-type-simple-pay .misc-pub-curtime,.post-type-simple-pay .misc-pub-visibility{display:none}.simpay-metabox-title{border:1px solid #eee}.simpay-shortcode-section{border-top:1px solid #ddd;border-width:1px 0;padding-top:15px;padding-bottom:15px;position:relative}.simpay-shortcode-section label{display:block;margin-bottom:6px}.simpay-shortcode-section label .dashicons{color:#8c8f94;margin-right:3px}.simpay-shortcode-section .simpay-copy-button{line-height:normal;position:absolute;right:20px;bottom:20px;border:0;background:none;box-shadow:none;padding:0}.simpay-shortcode-section .simpay-copy-button:hover{border:0;background:none;box-shadow:none}.simpay-shortcode-section .simpay-copy-button .dashicons{color:#3c434a}.simpay-shortcode{width:100%;padding:8px;line-height:1;margin:0;height:32px;resize:none}.simpay-badge{color:#3f3f46;text-align:center;line-height:1;padding:5px 7px;border-radius:3px;background:#e4e4e7;border:0;box-shadow:none;display:inline-flex;align-items:center}button.simpay-badge{cursor:pointer}button.simpay-badge:hover{background:#d4d4d8}.simpay-badge__icon{opacity:.8;margin:2px 5px 0 0}.simpay-badge--green{color:#0e6245;background:#cbf4c9}.simpay-badge--yellow{color:#983705;background:#f8e5b9}.simpay-stripe-account-info{display:flex;align-items:center;margin-bottom:8px}.simpay-stripe-account-info .spinner{float:none;margin-top:0;margin-left:0}.simple-pay_page_simpay_settings .simpay-settings-upgrade,.post-type-simple-pay .simpay-settings-upgrade{margin-top:20px;padding:1px;position:relative;background:#fff;border-radius:4px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2),0 5px 10px rgba(0,0,0,.1);max-width:677px}.simple-pay_page_simpay_settings .simpay-settings-upgrade__inner,.post-type-simple-pay .simpay-settings-upgrade__inner{text-align:center;margin:0;padding:30px}.simple-pay_page_simpay_settings .simpay-settings-upgrade h3,.post-type-simple-pay .simpay-settings-upgrade h3{line-height:1.5;font-size:22px;margin:0 0 1.5rem}.simple-pay_page_simpay_settings .simpay-settings-upgrade ul,.post-type-simple-pay .simpay-settings-upgrade ul{margin:1.5rem 0 calc(1.5rem - 6px);display:flex;flex-wrap:wrap;justify-content:center}@media screen and (min-width: 782px){.simple-pay_page_simpay_settings .simpay-settings-upgrade ul,.post-type-simple-pay .simpay-settings-upgrade ul{margin-left:4rem;margin-right:4rem}}.simple-pay_page_simpay_settings .simpay-settings-upgrade li,.post-type-simple-pay .simpay-settings-upgrade li{font-size:15px;margin:6px 0;width:100%}.simple-pay_page_simpay_settings .simpay-settings-upgrade li a,.post-type-simple-pay .simpay-settings-upgrade li a{color:#3c434a;text-decoration:none}.simple-pay_page_simpay_settings .simpay-settings-upgrade li a:hover,.post-type-simple-pay .simpay-settings-upgrade li a:hover{color:var(--wp-admin-theme-color);text-decoration:underline}@media screen and (min-width: 782px){.simple-pay_page_simpay_settings .simpay-settings-upgrade li,.post-type-simple-pay .simpay-settings-upgrade li{text-align:left;width:50%}}.simple-pay_page_simpay_settings .simpay-settings-upgrade .button.button-large,.post-type-simple-pay .simpay-settings-upgrade .button.button-large{font-size:17px;line-height:30px;padding:10px 20px}.simple-pay_page_simpay_settings .simpay-settings-upgrade small,.post-type-simple-pay .simpay-settings-upgrade small{color:#666;margin:15px 0 0;display:block}.simple-pay_page_simpay_settings .simpay-settings-upgrade .dashicons-yes,.post-type-simple-pay .simpay-settings-upgrade .dashicons-yes{color:#428bca}.simple-pay_page_simpay_settings .simpay-settings-upgrade .button-link,.post-type-simple-pay .simpay-settings-upgrade .button-link{position:absolute;top:0;right:0;font-size:20px;color:#666;font-weight:bold;text-decoration:none;margin-left:5px;padding:6px 10px;z-index:2}.simple-pay_page_simpay_settings .simpay-settings-upgrade .button-link:hover,.simple-pay_page_simpay_settings .simpay-settings-upgrade .button-link:active,.simple-pay_page_simpay_settings .simpay-settings-upgrade .button-link:focus,.post-type-simple-pay .simpay-settings-upgrade .button-link:hover,.post-type-simple-pay .simpay-settings-upgrade .button-link:active,.post-type-simple-pay .simpay-settings-upgrade .button-link:focus{color:#666;text-decoration:none}.simple-pay_page_simpay_settings .simpay-settings-upgrade .simpay-upgrade-btn-subtext,.post-type-simple-pay .simpay-settings-upgrade .simpay-upgrade-btn-subtext{text-align:center;margin:0;padding:30px 20px 20px;background-color:#fcf9e8;border:1px solid #edeac9;border-width:1px 0 0;position:relative;border-radius:0;border-bottom-left-radius:4px;border-bottom-right-radius:4px}@media screen and (min-width: 782px){.simple-pay_page_simpay_settings .simpay-settings-upgrade .simpay-upgrade-btn-subtext,.post-type-simple-pay .simpay-settings-upgrade .simpay-upgrade-btn-subtext{padding-left:4rem;padding-right:4rem}}.simple-pay_page_simpay_settings .simpay-settings-upgrade .simpay-upgrade-btn-subtext svg,.post-type-simple-pay .simpay-settings-upgrade .simpay-upgrade-btn-subtext svg{background:#00a32a;fill:#fff;border-radius:50%;border:4px solid #fff;box-shadow:0 0 0 1px #edeac9;width:28px;height:28px;position:absolute;top:-18px;left:50%;margin-left:-18px}.simple-pay_page_simpay_settings .simpay-settings-upgrade .simpay-upgrade-btn-subtext u,.post-type-simple-pay .simpay-settings-upgrade .simpay-upgrade-btn-subtext u{text-decoration:none;font-weight:bold;color:#00a32a}.simple-pay_page_simpay_settings .simpay-settings-upgrade .simpay-upgrade-btn-subtext a,.post-type-simple-pay .simpay-settings-upgrade .simpay-upgrade-btn-subtext a{font-weight:normal;display:inline-block}#simpay-payment-form-settings table{width:100%;border-collapse:collapse}#simpay-payment-form-settings ::-webkit-input-placeholder{color:#9ba1a9}#simpay-payment-form-settings ::-moz-placeholder{color:#9ba1a9;opacity:1}#simpay-payment-form-settings :-ms-input-placeholder{color:#9ba1a9}#simpay-payment-form-settings .inside{margin:0;padding:0}#simpay-payment-form-settings .simpay-panel-field .toolbar{margin-bottom:-4px}#simpay-payment-form-settings .simpay-panel-field .toolbar .simpay-field-select{margin:0 0 4px;width:auto;max-width:70%}#simpay-payment-form-settings .simpay-tabs{margin:0;padding:0;list-style:none;background:#fafafa;border-right:1px solid #ccd0d4;line-height:1em;position:relative;flex:0 0 25%}@media screen and (max-width: 782px){#simpay-payment-form-settings .simpay-tabs{flex-basis:100%;flex-grow:1;border-right:0}}#simpay-payment-form-settings .simpay-tabs li{margin:0;padding:0}#simpay-payment-form-settings .simpay-tabs li:first-child{margin-top:-1px}#simpay-payment-form-settings .simpay-tabs li:last-child{margin-bottom:20px}@media screen and (max-width: 782px){#simpay-payment-form-settings .simpay-tabs li:last-child{margin-bottom:0}}#simpay-payment-form-settings .simpay-tabs li.active{margin-left:-1px;box-shadow:0 1px 1px rgba(0,0,0,.04);position:relative}#simpay-payment-form-settings .simpay-tabs li.active:focus:after{display:none}#simpay-payment-form-settings .simpay-tabs li.active:before,#simpay-payment-form-settings .simpay-tabs li.active:after{content:\"\";width:calc(100% + 1px);height:1px;background:#ccd0d4;position:absolute;top:0;left:0;right:0;z-index:2}#simpay-payment-form-settings .simpay-tabs li.active:after{top:auto;bottom:0}#simpay-payment-form-settings .simpay-tabs li.active a{font-weight:bold;background-color:#fff;position:relative;margin-right:-1px}#simpay-payment-form-settings .simpay-tabs li.active a:before{content:\"\";position:absolute;top:0;left:0;bottom:0;width:4px;height:100%;background:currentColor;z-index:3}@media screen and (max-width: 782px){#simpay-payment-form-settings .simpay-tabs li.active a{margin-right:0}}#simpay-payment-form-settings .simpay-tabs li .simpay-tab-item{display:flex;align-items:center;line-height:20px;margin:0;padding:10px 10px 10px 14px;text-decoration:none;transition:all .05s ease-in-out}#simpay-payment-form-settings .simpay-tabs li .simpay-tab-item svg,#simpay-payment-form-settings .simpay-tabs li .simpay-tab-item .dashicons{margin-right:6px}@media screen and (max-width: 782px){#simpay-payment-form-settings .simpay-tabs li .simpay-tab-item{padding:18px}}#simpay-payment-form-settings .simpay-tabs li .simpay-tab-item:focus{outline:0;position:relative;z-index:3;box-shadow:inset 0 0 0 2px currentColor}#simpay-payment-form-settings .simpay-tabs li:not(.active) .simpay-tab-item{color:inherit}#simpay-payment-form-settings .simpay-panels-wrap{background:#fff;display:flex}@media screen and (max-width: 782px){#simpay-payment-form-settings .simpay-panels-wrap{flex-direction:column}}#simpay-payment-form-settings .simpay-panels{flex:0 0 75%;display:flex}@media screen and (max-width: 782px){#simpay-payment-form-settings .simpay-panels{flex-basis:100%}}#simpay-payment-form-settings .simpay-panel,#simpay-payment-form-settings .simpay-panel-section{width:100%}#simpay-payment-form-settings .simpay-panel>table,#simpay-payment-form-settings .simpay-panel>table>tr,#simpay-payment-form-settings .simpay-panel>table>tbody,#simpay-payment-form-settings .simpay-panel>table>tbody>tr,#simpay-payment-form-settings .simpay-panel>table>thead,#simpay-payment-form-settings .simpay-panel>table>thead>tr{display:block;width:100%}#simpay-payment-form-settings .simpay-panel>table:last-child>tbody:last-child>tr:last-child>td{border-bottom:0}#simpay-payment-form-settings .simpay-panel-field--requires-upgrade{position:relative}#simpay-payment-form-settings .simpay-panel-field--requires-upgrade td>div{margin-right:80px}#simpay-payment-form-settings .simpay-panel-field--requires-upgrade td>div .button-small{position:absolute;top:calc(50% - 13px);right:18px}#simpay-payment-form-settings .simpay-panel-field,#simpay-payment-form-settings .simpay-panel-field>td,#simpay-payment-form-settings .simpay-panel-field>th{text-align:left;display:block}#simpay-payment-form-settings .simpay-panel-field>td,#simpay-payment-form-settings .simpay-panel-field>th{width:calc(100% - 36px);margin-left:18px;margin-right:18px}#simpay-payment-form-settings .simpay-panel-field th{font-weight:bold;padding-top:18px;padding-bottom:5px}#simpay-payment-form-settings .simpay-panel-field td{border-bottom:1px solid #ddd;padding-bottom:18px}#simpay-payment-form-settings .simpay-panel-field p.description{margin-top:4px}#simpay-payment-form-settings .simpay-panel-field p.description:last-of-type{margin-bottom:0}#simpay-payment-form-settings .simpay-panel-field .simpay-panel-field__nested{margin-top:18px}#simpay-payment-form-settings .simpay-panel-field .simpay-panel-field__nested label{font-weight:bold;display:block;margin-bottom:4px}#simpay-payment-form-settings .simpay-panel-field .simpay-field-select,#simpay-payment-form-settings .simpay-panel-field .simpay-field-text{min-width:75%;max-width:100%}@media screen and (max-width: 782px){#simpay-payment-form-settings .simpay-panel-field .simpay-field-select,#simpay-payment-form-settings .simpay-panel-field .simpay-field-text{min-width:0;width:100%}}#simpay-payment-form-settings .simpay-panel-field .simpay-field-textarea{width:100%;max-width:100%}#simpay-payment-form-settings .simpay-panel-field .notice:last-of-type{margin-bottom:0}#simpay-payment-form-settings .simpay-panel-field .error,#simpay-payment-form-settings .simpay-panel-field .simpay-important{color:#a94442;font-weight:normal}#simpay-payment-form-settings .simpay-panel-field .simpay-image-preview-wrap{position:relative;margin-top:12px}#simpay-payment-form-settings .simpay-panel-field .simpay-image-preview-wrap .simpay-remove-image-preview{position:absolute;top:-15px;left:-15px;cursor:pointer;background-color:#fff}#simpay-payment-form-settings .simpay-panel-field .simpay-image-preview-wrap .simpay-remove-image-preview::before{font-size:22px;line-height:26px}#simpay-payment-form-settings .simpay-panel-field .simpay-image-preview-wrap .simpay-image-preview{max-height:128px;max-width:128px;border:1px solid #ddd}#simpay-payment-form-settings .simpay-panel .simpay-promo-under-box{background-color:#f4f4f4;border:1px solid #e5e5e5;padding:18px;margin-top:18px;position:relative}#simpay-payment-form-settings .simpay-panel .simpay-promo-under-box__dismiss{color:inherit;text-decoration:none;position:absolute;top:8px;right:8px}#simpay-payment-form-settings .simpay-panel .simpay-promo-under-box__dismiss .dashicons-dismiss{font-size:16px;width:16px;height:16px}#simpay-payment-form-settings .simpay-panel .simpay-promo-under-box h3{font-size:18px;font-weight:600;margin:0;padding:0}#simpay-payment-form-settings .simpay-panel .simpay-promo-under-box p{font-size:14px}#simpay-payment-form-settings .simpay-panel .simpay-promo-under-box p:last-child{margin-bottom:0}#simpay-payment-form-settings .simpay-metabox-content{margin-bottom:-1px;background-color:#f5f5f5;border:1px solid #c3c4c7;border-width:1px 0;box-shadow:0 1px 1px rgba(0,0,0,.04);position:relative}#simpay-payment-form-settings .simpay-show-if,#simpay-payment-form-settings .simpay-panel-hidden{display:none}#simpay-payment-form-settings .simpay-payment-methods{border:1px solid #ccd0d4;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,.04)}#simpay-payment-form-settings .simpay-panel-field-payment-method{display:block;border-top:1px solid #ccd0d4;padding:7px;box-sizing:border-box}#simpay-payment-form-settings .simpay-panel-field-payment-method:first-child{border-top:0;border-top-left-radius:4px;border-top-right-radius:4px}#simpay-payment-form-settings .simpay-panel-field-payment-method input[type=checkbox]{margin-top:0;margin-right:8px}#simpay-payment-form-settings .simpay-panel-field-payment-method__help{color:#666;text-decoration:none;margin-right:5px}#simpay-payment-form-settings .simpay-panel-field-payment-method__help .dashicons{font-size:18px;width:18px;height:18px}#simpay-payment-form-settings .simpay-panel-field-payment-method__restrictions,#simpay-payment-form-settings .simpay-panel-field-payment-method__restrictions-ach{margin-left:72px}#simpay-payment-form-settings .simpay-panel-field-payment-method__icon{border-radius:3px;overflow:hidden;margin:0 8px 0 5px;width:30px;height:30px;flex-shrink:0}#simpay-payment-form-settings .simpay-panel-field-payment-method__icon svg{width:30px;height:30px}#simpay-global-settings .sortable-placeholder,#simpay-form-settings .sortable-placeholder{margin:5px;display:block;min-height:36px}#simpay-global-settings .chosen-container,#simpay-form-settings .chosen-container{min-width:20em;max-width:30em}#simpay-global-settings .simpay-field.simpay-small-text,#simpay-form-settings .simpay-field.simpay-small-text{width:7em}#simpay-global-settings .simpay-field.simpay-medium-text,#simpay-form-settings .simpay-field.simpay-medium-text{width:15em}#simpay-global-settings .simpay-field-radios ul,#simpay-form-settings .simpay-field-radios ul{margin:0}#simpay-global-settings .simpay-field-radios>i,#simpay-form-settings .simpay-field-radios>i{margin-left:5px;vertical-align:middle}#simpay-global-settings ul.simpay-field-radios-inline,#simpay-form-settings ul.simpay-field-radios-inline{margin:0 0 -10px}#simpay-global-settings ul.simpay-field-radios-inline li,#simpay-form-settings ul.simpay-field-radios-inline li{display:inline-block;margin:0 10px 10px 0}#simpay-global-settings ul.simpay-field-radios-inline li:last-child,#simpay-form-settings ul.simpay-field-radios-inline li:last-child{margin-right:0}#simpay-global-settings .simpay-currency-field,#simpay-form-settings .simpay-currency-field{display:flex;align-items:center}>#simpay-global-settings .simpay-currency-field:focus,>#simpay-form-settings .simpay-currency-field:focus{position:relative;z-index:5}#simpay-global-settings .simpay-currency-symbol,#simpay-form-settings .simpay-currency-symbol{margin:0;padding-left:8px;padding-right:8px;line-height:28px;font-size:14px}@media screen and (max-width: 782px){#simpay-global-settings .simpay-currency-symbol,#simpay-form-settings .simpay-currency-symbol{line-height:38px}}#simpay-global-settings .simpay-currency-symbol-left,#simpay-form-settings .simpay-currency-symbol-left{border-top-left-radius:4px;border-bottom-left-radius:4px}#simpay-global-settings .simpay-currency-symbol-right,#simpay-form-settings .simpay-currency-symbol-right{border-top-right-radius:4px;border-bottom-right-radius:4px}#simpay-global-settings div.simpay-currency-symbol,#simpay-form-settings div.simpay-currency-symbol{border-color:#7e8993;border-style:solid;background-color:#fff}#simpay-global-settings select.simpay-currency-symbol,#simpay-form-settings select.simpay-currency-symbol{padding-right:25px}#simpay-global-settings .simpay-currency-symbol-left,#simpay-form-settings .simpay-currency-symbol-left{border-width:1px 0 1px 1px}#simpay-global-settings .simpay-currency-symbol-left+.simpay-field-amount,#simpay-form-settings .simpay-currency-symbol-left+.simpay-field-amount{border-radius:0 4px 4px 0}#simpay-global-settings .simpay-currency-symbol-right,#simpay-form-settings .simpay-currency-symbol-right{border-width:1px 1px 1px 0}#simpay-global-settings .simpay-field-amount,#simpay-form-settings .simpay-field-amount{margin:0;padding-left:8px;padding-right:8px;font-size:14px;width:6em;position:relative;z-index:2;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px}#simpay-global-settings .simpay-error,#simpay-form-settings .simpay-error{color:red}#simpay-global-settings .simpay-docs-link-wrap,#simpay-form-settings .simpay-docs-link-wrap{position:absolute;right:0;bottom:0;color:#666;font-size:13px;font-style:italic;padding:15px 18px}#simpay-global-settings .simpay-docs-link-wrap a .dashicons-editor-help,#simpay-form-settings .simpay-docs-link-wrap a .dashicons-editor-help{color:#666;text-decoration:none;width:17px;height:17px;font-size:17px;padding-left:4px}#simpay-global-settings .simpay-docs-icon,#simpay-form-settings .simpay-docs-icon{color:#666}#simpay-global-settings .simpay-docs-icon,#simpay-global-settings .simpay-docs-icon .dashicons-editor-help,#simpay-form-settings .simpay-docs-icon,#simpay-form-settings .simpay-docs-icon .dashicons-editor-help{text-decoration:none;width:17px;height:17px;font-size:17px}.button.button-primary.simpay-upgrade-btn{background-color:#428bca;border:1px solid #428bca;color:#fff;display:inline-block}.button.button-primary.simpay-upgrade-btn:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #2d6ca2}.button.button-primary.simpay-upgrade-btn:hover{background-color:#037ad0;border:1px solid #428bca}.simpay-upgrade-btn-subtext{color:#3c434a;font-size:14px;line-height:1.5;text-align:center;margin:40px 0 0;padding:30px 35px 20px;background-color:#fcf9e8;border:3px solid #ebe29a;border-radius:4px;position:relative}.simpay-upgrade-btn-subtext svg{background:#00a32a;fill:#fff;border-radius:50%;border:3px solid #ebe29a;width:28px;height:28px;position:absolute;top:-14px;left:50%;margin-left:-14px}.simpay-upgrade-btn-subtext u{text-decoration:none;font-weight:bold;color:#00a32a}.simpay-upgrade-btn-subtext a{text-decoration:none;display:block;margin-top:6px;font-weight:bold}.post-type-simple-pay #post-body-content{display:none}.simpay-card{margin:0 0 20px;padding:30px;background:#fff;border:1px solid #c3c4c7;box-shadow:0 1px 1px rgba(0,0,0,.04)}.simpay-card,.simpay-card p{line-height:1.5;font-size:16px}.simpay-card h3{line-height:1.6;font-size:18px;margin:0 0 20px;color:#23282c}.simpay-card p{margin:0 0 20px}.simpay-card p:last-child,.simpay-card ul:last-child{margin-bottom:0}.simpay-card figure{float:right;margin:0 0 30px 30px;max-width:400px}.simpay-card figure iframe,.simpay-card figure img{max-width:100%}.simpay-card figure figcaption{text-align:center}@media screen and (max-width: 782px){.simpay-card figure{margin:0 0 30px;max-width:100%;float:none}}.simpay-doc-suggestions{width:100%;display:flex;flex-wrap:wrap;padding:0}.simpay-doc-suggestion{text-align:center;display:flex;flex-direction:column;justify-content:center;align-items:center;flex:0 1 33.333%;padding:30px;border-right:1px solid #c3c4c7;box-sizing:border-box}.simpay-doc-suggestion:nth-child(3n){border-right:0}@media screen and (max-width: 782px){.simpay-doc-suggestion{flex:0 1 100%;border-bottom:1px solid #c3c4c7;border-right:0}.simpay-doc-suggestion:last-child{border-bottom:0}}.simpay-doc-suggestion h3{font-size:20px;margin-bottom:10px}.simpay-doc-suggestion p{font-size:15px}.simpay-doc-suggestion .dashicons{font-size:40px;width:40px;height:40px;display:block;margin-bottom:10px}.simpay-doc-suggestion .button-large{font-size:16px}.simpay-addons{display:flex;flex-wrap:wrap;justify-content:space-between;margin:20px 0}.simpay-addon{background:#fff;border:1px solid #c3c4c7;box-shadow:0 1px 1px rgba(0,0,0,.04);margin-bottom:20px;display:flex;flex-direction:column;flex-basis:calc(33% - 10px);box-sizing:border-box}@media screen and (max-width: 782px){.simpay-addon{flex-basis:100%}}.simpay-addon img{float:left;max-width:75px}.simpay-addon h5{margin:0 0 10px 100px;font-size:16px}.simpay-addon__details{padding:20px;flex:1 0 auto}.simpay-addon__actions{display:flex;align-items:center;justify-content:space-between;flex:0 1 auto;background-color:#f7f7f7;border-top:1px solid #ddd;margin-top:auto;padding:20px;position:relative}.simpay-addon__actions .msg{text-align:center;justify-content:center;display:flex;align-items:center;position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;background-color:#f7f7f7;z-index:3}.simpay-addon .error,.simpay-addon .status-label.status-installed{color:#d63638}.simpay-addon .success,.simpay-addon .status-label.status-active{color:#00a32a}.simpay-addon .addon-desc{margin:0 0 0 100px}.form-table td .simpay-stripe-connect-help{margin:15px 0;display:flex;align-items:center}.form-table td .simpay-stripe-connect-help .dashicons{margin-right:4px}.simpay-currency-field{display:flex;align-items:center}>.simpay-currency-field:focus{position:relative;z-index:5}.simpay-currency-symbol{margin:0;padding-left:8px;padding-right:8px;line-height:28px;font-size:14px}@media screen and (max-width: 782px){.simpay-currency-symbol{line-height:38px}}.simpay-currency-symbol-left{border-top-left-radius:4px;border-bottom-left-radius:4px}.simpay-currency-symbol-right{border-top-right-radius:4px;border-bottom-right-radius:4px}div.simpay-currency-symbol{border-color:#7e8993;border-style:solid;background-color:#fff}select.simpay-currency-symbol{padding-right:25px}.simpay-currency-symbol-left{border-width:1px 0 1px 1px}.simpay-currency-symbol-left+.simpay-field-amount{border-radius:0 4px 4px 0}.simpay-currency-symbol-right{border-width:1px 1px 1px 0}.simpay-field-amount{margin:0;padding-left:8px;padding-right:8px;font-size:14px;width:6em;position:relative;z-index:2;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.post-new-php.post-type-simple-pay #screen-meta-links,.post-php.post-type-simple-pay #screen-meta-links,.edit-php.post-type-simple-pay #screen-meta-links{display:none}.simpay-branding-bar{margin-left:-20px;padding:14px 20px 14px 22px;background:#fff;border-bottom:1px solid #c3c4c7;box-shadow:0 1px 1px rgba(0,0,0,.04)}.simpay-branding-bar__title{display:flex;align-items:center;float:left;margin:8px 0}.simpay-branding-bar__logo{width:200px}.simpay-branding-bar__divider{color:#dadbdf;font-size:23px;font-weight:400;margin:0 15px}.simpay-branding-bar__actions{float:right;margin-top:4px;display:flex;align-items:center}.simpay-branding-bar__actions>div{margin-left:10px;min-width:40px}.simpay-branding-bar__actions-button{color:#000;cursor:pointer;padding:10px;width:40px;height:40px;background-color:#f3f4f5;border-radius:50%;border:0;box-shadow:none;position:relative;transition:background-color .2s ease;box-sizing:border-box;display:block}.simpay-branding-bar__actions-button:hover{background-color:#e5e5e5}.simpay-branding-bar__actions-button:active,.simpay-branding-bar__actions-button:focus{box-shadow:0 0 0 2px var(--wp-admin-theme-color)}.simpay-branding-bar__actions-button-count{font-weight:600;font-size:10px;line-height:16px;color:#fff;margin:0;background-color:#df2a4a;border-radius:100%;width:16px;height:16px;position:absolute;top:-8px;left:50%;margin-left:-8px}.simpay-branding-bar .wp-heading-inline{font-size:23px;font-weight:400;margin:0}.simpay-branding-bar .page-title-action{font-weight:600;font-size:13px;line-height:normal;cursor:pointer;text-shadow:none;text-decoration:none;margin-left:10px;padding:4px 8px;border:1px solid currentColor;border-radius:2px;background:#f6f7f7}.simpay-landing-zone{text-align:center;max-width:700px;margin:40px auto}.simpay-landing-zone__title{font-size:26px;font-weight:600;margin:0 0 1.5rem;padding:0}.simpay-landing-zone__subtitle{font-size:17px;color:#666;margin:.25rem 0}.simpay-landing-zone__subtitle strong{color:#444}.simpay-landing-zone section{margin:2rem 0}.simpay-landing-zone__empty-state-graphic img{width:425px}.simpay-landing-zone__screenshot>*{vertical-align:middle}.simpay-landing-zone__screenshot-img{display:inline-block;position:relative;width:315px;padding:5px;background-color:#fff;box-shadow:0px 2px 5px 0px rgba(0,0,0,.05);border-radius:3px}.simpay-landing-zone__screenshot-img img{max-width:100%;display:block}.simpay-landing-zone__screenshot-img .hover{position:absolute;opacity:0;height:calc(100% - 10px);width:calc(100% - 10px);top:0;left:0;border:5px solid #fff;background-color:rgba(0,0,0,.15);background-image:url(data:image/svg+xml;base64,PHN2ZyBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiPjxwYXRoIGQ9Ik01MCAwYzI3LjYxNCAwIDUwIDIyLjM4NiA1MCA1MHMtMjIuMzg2IDUwLTUwIDUwUzAgNzcuNjE0IDAgNTAgMjIuMzg2IDAgNTAgMHoiIGZpbGw9IiMxNjg1YjciLz48cGF0aCBkPSJNNzMuMDIzIDY3LjA2N2wtOS4zNDQtOS4zNDRhMi4yNDcgMi4yNDcgMCAwMC0xLjU5My0uNjU2aC0xLjUyOGExOS4zOTkgMTkuMzk5IDAgMDA0LjEyNC0xMS45OTZjMC0xMC43Ny04LjcyNS0xOS40OTUtMTkuNDk0LTE5LjQ5NS0xMC43NjggMC0xOS40OTQgOC43MjYtMTkuNDk0IDE5LjQ5NSAwIDEwLjc2OCA4LjcyNiAxOS40OTMgMTkuNDk0IDE5LjQ5M2ExOS40IDE5LjQgMCAwMDExLjk5Ny00LjEyM3YxLjUyN2MwIC42LjIzNCAxLjE3Mi42NTUgMS41OTRsOS4zNDQgOS4zNDRhMi4yNCAyLjI0IDAgMDAzLjE3OCAwbDIuNjUyLTIuNjUzYTIuMjYgMi4yNiAwIDAwLjAxLTMuMTg2em0tMjcuODM1LTEwYy02LjYyNiAwLTExLjk5Ni01LjM2MS0xMS45OTYtMTEuOTk2IDAtNi42MjcgNS4zNi0xMS45OTcgMTEuOTk2LTExLjk5NyA2LjYyNiAwIDExLjk5NyA1LjM2MSAxMS45OTcgMTEuOTk3IDAgNi42MjYtNS4zNjEgMTEuOTk2LTExLjk5NyAxMS45OTZ6IiBmaWxsPSIjZmZmIi8+PC9zdmc+);background-repeat:no-repeat;background-position:center;background-size:50px;transition:all .3s}.simpay-landing-zone__screenshot-img:hover .hover{opacity:1;transition:all .3s}.simpay-landing-zone__screenshot ul{text-align:left;display:inline-block;margin:0 0 0 30px;list-style-type:none;max-width:calc(100% - 350px)}@media screen and (max-width: 782px){.simpay-landing-zone__screenshot ul{text-align:center;margin:30px auto;max-width:100%;display:block}}.simpay-landing-zone__screenshot li{margin:16px 0;padding:0;font-size:15px;color:#777;position:relative}.simpay-landing-zone__screenshot li:before{content:\"\";background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEzLjc3NjIgNi40NTYwNUw4LjcyMDMyIDEuNDAwMDVDOC41NzU5OSAxLjI1NTcyIDguMzgzNjQgMS4xNzY1IDguMTc4NTMgMS4xNzY1QzcuOTczMiAxLjE3NjUgNy43ODA5NiAxLjI1NTg0IDcuNjM2NjQgMS40MDAwNUw3LjE3NzYgMS44NTkyQzcuMDMzMzkgMi4wMDMyOSA2Ljk1Mzk1IDIuMTk1NzYgNi45NTM5NSAyLjQwMDk4QzYuOTUzOTUgMi42MDYwOCA3LjAzMzM5IDIuODA1MDQgNy4xNzc2IDIuOTQ5MTRMMTAuMTI3MSA1LjkwNTE2SDAuNzU2MzM0QzAuMzMzODM0IDUuOTA1MTYgMCA2LjIzNTkyIDAgNi42NTg1NFY3LjMwNzY1QzAgNy43MzAyNyAwLjMzMzgzNCA4LjA5NDM4IDAuNzU2MzM0IDguMDk0MzhIMTAuMTYwNkw3LjE3NzcyIDExLjA2NjlDNy4wMzM1MSAxMS4yMTEyIDYuOTU0MDYgMTEuMzk4NSA2Ljk1NDA2IDExLjYwMzdDNi45NTQwNiAxMS44MDg3IDcuMDMzNTEgMTEuOTk4NiA3LjE3NzcyIDEyLjE0MjhMNy42MzY3NSAxMi42MDA1QzcuNzgxMDcgMTIuNzQ0OCA3Ljk3MzMyIDEyLjgyMzUgOC4xNzg2NSAxMi44MjM1QzguMzgzNzUgMTIuODIzNSA4LjU3NjExIDEyLjc0MzggOC43MjA0MyAxMi41OTk1TDEzLjc3NjMgNy41NDM2QzEzLjkyMSA3LjM5ODgyIDE0LjAwMDUgNy4yMDU1NiAxNCA3LjAwMDExQzE0LjAwMDQgNi43OTM5OCAxMy45MjEgNi42MDA2IDEzLjc3NjIgNi40NTYwNVY2LjQ1NjA1WiIgZmlsbD0iIzQyOEJDQSIvPgo8L3N2Zz4K);background-position:center;background-repeat:no-repeat;background-size:14px;width:14px;height:14px;display:inline-block;margin:-3px 5px 0 0;vertical-align:middle}.simpay-landing-zone .button.button-large{font-size:17px;line-height:30px;padding:10px 20px}.simpay-landing-zone__purchased{display:block;margin:15px 0 0}.simpay-upgrade-modal{padding:0 !important}.simpay-upgrade-modal *{box-sizing:border-box}.simpay-upgrade-modal__content{text-align:center;display:flex;flex-direction:column;align-items:center;padding:16px 32px 32px}.simpay-upgrade-modal__content>.dashicons{color:#333;font-size:48px;width:48px;height:48px}.simpay-upgrade-modal__title{font-size:22px;line-height:1.5;display:block;margin:12px 0 0}.simpay-upgrade-modal__description{color:#777;font-size:16px;margin:16px 0 24px}.simpay-upgrade-modal__description strong{color:#333}.simpay-upgrade-modal__discount{font-size:15px;text-align:center;margin:32px -32px -32px;padding:24px 40px;background-color:#fcf9e8;position:relative}.simpay-upgrade-modal__discount svg{background:#00a32a;fill:#fff;border-radius:50%;border:4px solid #fff;width:32px;height:32px;position:absolute;top:-16px;left:50%;margin-left:-16px}.simpay-upgrade-modal__discount u{text-decoration:none;font-weight:bold;color:#00a32a}.simpay-upgrade-modal .button-large{font-size:16px;font-weight:bold;margin:0 0 15px;padding:8px 30px !important;height:auto}.simpay-teaser-float{margin:50px;position:relative}.simpay-teaser-float__card{text-align:center;padding:30px;background:#fff;border-radius:4px;box-shadow:0 0 30px 15px rgba(0,0,0,.18);position:relative;z-index:2}#poststuff .simpay-teaser-float h2,.simpay-teaser-float h2{font-size:24px;font-weight:600;margin:0;padding:0}.simpay-teaser-float p{font-size:15px;line-height:1.35;color:#666}.simpay-teaser-float p strong{color:#444}.simpay-teaser-float ul{text-align:left;display:inline-block;margin:-10px 0 20px;list-style-type:none}.simpay-teaser-float li{margin:16px 0;padding:0 0 0 24px;font-size:15px;background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEzLjc3NjIgNi40NTYwNUw4LjcyMDMyIDEuNDAwMDVDOC41NzU5OSAxLjI1NTcyIDguMzgzNjQgMS4xNzY1IDguMTc4NTMgMS4xNzY1QzcuOTczMiAxLjE3NjUgNy43ODA5NiAxLjI1NTg0IDcuNjM2NjQgMS40MDAwNUw3LjE3NzYgMS44NTkyQzcuMDMzMzkgMi4wMDMyOSA2Ljk1Mzk1IDIuMTk1NzYgNi45NTM5NSAyLjQwMDk4QzYuOTUzOTUgMi42MDYwOCA3LjAzMzM5IDIuODA1MDQgNy4xNzc2IDIuOTQ5MTRMMTAuMTI3MSA1LjkwNTE2SDAuNzU2MzM0QzAuMzMzODM0IDUuOTA1MTYgMCA2LjIzNTkyIDAgNi42NTg1NFY3LjMwNzY1QzAgNy43MzAyNyAwLjMzMzgzNCA4LjA5NDM4IDAuNzU2MzM0IDguMDk0MzhIMTAuMTYwNkw3LjE3NzcyIDExLjA2NjlDNy4wMzM1MSAxMS4yMTEyIDYuOTU0MDYgMTEuMzk4NSA2Ljk1NDA2IDExLjYwMzdDNi45NTQwNiAxMS44MDg3IDcuMDMzNTEgMTEuOTk4NiA3LjE3NzcyIDEyLjE0MjhMNy42MzY3NSAxMi42MDA1QzcuNzgxMDcgMTIuNzQ0OCA3Ljk3MzMyIDEyLjgyMzUgOC4xNzg2NSAxMi44MjM1QzguMzgzNzUgMTIuODIzNSA4LjU3NjExIDEyLjc0MzggOC43MjA0MyAxMi41OTk1TDEzLjc3NjMgNy41NDM2QzEzLjkyMSA3LjM5ODgyIDE0LjAwMDUgNy4yMDU1NiAxNCA3LjAwMDExQzE0LjAwMDQgNi43OTM5OCAxMy45MjEgNi42MDA2IDEzLjc3NjIgNi40NTYwNVY2LjQ1NjA1WiIgZmlsbD0iIzQyOEJDQSIvPgo8L3N2Zz4K);background-position:left 3px;background-repeat:no-repeat;background-size:14px;color:#777}.simpay-teaser-float .button.button-large{font-size:17px;line-height:30px;padding:10px 20px}.simpay-teaser-float .simpay-notice-dismiss{position:absolute;top:0;right:0;font-size:20px;color:#666;font-weight:bold;text-decoration:none;margin-left:5px;padding:6px 10px;z-index:2}.simpay-teaser-float .simpay-notice-dismiss:hover,.simpay-teaser-float .simpay-notice-dismiss:active,.simpay-teaser-float .simpay-notice-dismiss:focus{color:#666;text-decoration:none}.simpay-teaser-float:after,.simpay-teaser-float:before{opacity:.75;z-index:0;content:\"\";position:absolute;left:-30px;right:-30px;top:-35px;width:calc(100% + 60px);height:170px;background-image:linear-gradient(#ddd, #ddd),linear-gradient(#eee, #eee),linear-gradient(#ddd, #ddd),linear-gradient(#eee, #eee);background-repeat:no-repeat;background-size:100% 20px,100% 40px,100% 20px,100% 40px;background-position:0 0,0 30px,0 100px,0 130px}.simpay-teaser-float:before{top:170px}.simpay-teaser-float .simpay-upgrade-btn-subtext{margin:24px -30px -30px;padding:32px 40px;border-bottom-left-radius:2px;border-bottom-right-radius:2px;border:0}.simpay-teaser-float .simpay-upgrade-btn-subtext svg{border-color:#fff}.simpay-teaser-float--inline{margin:40px 30px 30px}.simpay-teaser-float--inline .simpay-teaser-float__card{padding:30px;box-shadow:0 0 12px 6px rgba(0,0,0,.16)}#poststuff .simpay-teaser-float--inline h2,.simpay-teaser-float--inline h2{font-size:20px}.simpay-teaser-float--inline p{font-size:15px;margin:.75rem 0}.simpay-teaser-float--inline .button.button-large{font-size:15px;line-height:24px;margin:1rem 0;padding:8px 14px;display:inline-block}.simpay-teaser-float--inline:before,.simpay-teaser-float--inline:after{opacity:.6}.simpay-teaser-float--inline:before{display:none}.simpay-teaser-float--inline:after{top:15px}.simpay-form-settings-notice{font-weight:normal;color:#1d2327;position:relative;margin:18px 18px 0;padding:14px;border-radius:4px;background:#f5f5ff}.simpay-form-settings-notice a{color:#635aff}.simpay-form-settings-notice .simpay-external-link .dashicons-external{margin:1px 0 0 2px}.simpay-form-settings-notice strong{font-size:14px}.simpay-form-settings-notice p{margin:5px 0 0 23px}.simpay-form-settings-notice .simpay-notice-dismiss{font-size:20px;color:#b0b0f0;font-weight:bold;line-height:1;position:absolute;top:0;right:5px;text-decoration:none;padding:0 5px;z-index:2}.simpay-form-settings-notice .simpay-notice-dismiss:hover,.simpay-form-settings-notice .simpay-notice-dismiss:active,.simpay-form-settings-notice .simpay-notice-dismiss:focus{color:#9191ef;text-decoration:none;background:none}.simpay-settings .simpay-form-settings-notice{border:2px solid #645aff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.post-type-simple-pay .lity{z-index:999999999;padding:20px}.post-type-simple-pay .lity-close{margin:10px}.post-type-simple-pay .lity-content{max-width:80vw;max-height:80vh}.post-type-simple-pay .lity-content img{max-height:80vh !important;max-width:80vw !important}#wpsp-api-keys-row-hide{display:none}.post-type-simple-pay #post-preview:not(.simpay-preview-button){display:none}.simpay-license-field-wrapper{margin:20px 0}#simpay-settings-license-key-license-key{margin:0}#simpay-settings-license-key-license-key[readonly]{background:#fff}.simpay-license-message__loading,.simpay-license-field{display:flex;align-items:center}.wp-core-ui .button.simpay-license-button.button-primary,.wp-core-ui .button.simpay-license-button.button-secondary{font-size:1rem;line-height:1;margin:0 8px;padding:13px}.simpay-license-message{font-size:15px;margin-top:8px}.simpay-license-message--valid{color:green}.simpay-license-message--invalid{color:#cc1818}"],"sourceRoot":""} \ No newline at end of file diff --git a/includes/core/assets/js/admin/index.js b/includes/core/assets/js/admin/index.js index d41b178e..b1d6fc73 100644 --- a/includes/core/assets/js/admin/index.js +++ b/includes/core/assets/js/admin/index.js @@ -57,6 +57,7 @@ let spAdmin = {}; '_subscription_type', '_subscription_custom_amount', '_form_type', + '_tax_status', '_enable_payment_page', '.simpay-total-amount-label-recurring', '.simpay-total-amount-label-tax', diff --git a/includes/core/assets/js/admin/payment-form/index.js b/includes/core/assets/js/admin/payment-form/index.js index 5bdb38ac..e53b82eb 100644 --- a/includes/core/assets/js/admin/payment-form/index.js +++ b/includes/core/assets/js/admin/payment-form/index.js @@ -1,6 +1,7 @@ import './general.js'; import './prices.js'; import './payment-methods.js'; +import './taxes.js'; import './custom-fields.js'; import './stripe-checkout.js'; import './payment-page.js'; diff --git a/includes/core/assets/js/admin/payment-form/taxes.js b/includes/core/assets/js/admin/payment-form/taxes.js new file mode 100644 index 00000000..b41eef50 --- /dev/null +++ b/includes/core/assets/js/admin/payment-form/taxes.js @@ -0,0 +1,20 @@ +/** + * WordPress dependencies + */ +import domReady from '@wordpress/dom-ready'; + +/** + * Internal dependencies + */ +import { maybeBlockSelectWithUpgradeModal } from '@wpsimplepay/utils'; + +/** + * DOM ready. + */ +domReady( () => { + const selector = document.getElementById( '_tax_status_lite' ); + + if ( selector ) { + selector.addEventListener( 'change', maybeBlockSelectWithUpgradeModal ); + } +} ); diff --git a/includes/core/assets/js/frontend/index.js b/includes/core/assets/js/frontend/index.js index 9bd3cee0..299de8d1 100644 --- a/includes/core/assets/js/frontend/index.js +++ b/includes/core/assets/js/frontend/index.js @@ -5,7 +5,6 @@ */ import { default as hooks, doAction } from '@wpsimplepay/hooks'; import * as paymentForms from '@wpsimplepay/payment-forms'; -import * as api from '@wpsimplepay/api'; import { default as legacyHelpers } from './utils/legacy.js'; import './payment-forms'; @@ -14,27 +13,10 @@ import './payment-forms'; * * @todo Create automatically with Webpack. */ - -// Don't expose api.apiRequest to window. -const { - customers, - paymentintents, - sessions, - setupintents, - subscriptions, -} = api; - window.wpsp = { hooks, paymentForms, initPaymentForm, - api: { - customers, - paymentintents, - sessions, - setupintents, - subscriptions, - }, }; /** @@ -100,7 +82,11 @@ function initPaymentForm( $paymentForm, __unstableFormVars = false ) { form: { prices, livemode, config = {} }, } = paymentFormData; - const { taxRates = [], paymentMethods = [] } = config; + const { + taxRates = [], + paymentMethods = [], + taxStatus = 'fixed-global', + } = config; // Merge localized form data in to a semi-simplified object. // Maintained for backwards compatibility. @@ -150,6 +136,7 @@ function initPaymentForm( $paymentForm, __unstableFormVars = false ) { } ), paymentMethod: _.first( paymentMethods ), taxRates, + taxStatus, paymentMethods, livemode, displayType: formData.formDisplayType, @@ -163,6 +150,24 @@ function initPaymentForm( $paymentForm, __unstableFormVars = false ) { }; }; + // Attach a helper to get the form data/state. + $paymentForm.getFormData = function () { + const _formData = { + ...$paymentForm.__unstableLegacyFormData, + ...$paymentForm.state, + }; + + // Remove additional data that is not needed and may trigger WAF rules. + const { + order: _o, + customer: _cus, + paymentMethods: _pms, + ...cleanFormData // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment#rest_property + } = _formData; + + return JSON.stringify( cleanFormData ); + }; + // Attach a Stripe instance to the Payment Form jQuery object. const { key: publishableKey, diff --git a/includes/core/assets/js/frontend/payment-forms/index.js b/includes/core/assets/js/frontend/payment-forms/index.js index ece0faf1..80e2a69b 100644 --- a/includes/core/assets/js/frontend/payment-forms/index.js +++ b/includes/core/assets/js/frontend/payment-forms/index.js @@ -75,7 +75,7 @@ async function submitPaymentForm( paymentForm ) { } ); - submit().catch( onError ); + submit(); } catch ( error ) { onError( error ); } diff --git a/includes/core/assets/js/frontend/payment-forms/stripe-checkout/submit.js b/includes/core/assets/js/frontend/payment-forms/stripe-checkout/submit.js index d543a945..a8a28c93 100644 --- a/includes/core/assets/js/frontend/payment-forms/stripe-checkout/submit.js +++ b/includes/core/assets/js/frontend/payment-forms/stripe-checkout/submit.js @@ -27,24 +27,44 @@ async function submit( paymentForm ) { // Only generate a custom Customer if we need to map on-page form fields. if ( hasCustomerFields ) { + const customerData = await customers + .create( {}, paymentForm ) + .catch( onError ); + + if ( ! customerData ) { + return; + } + const { customer: { id }, - } = await customers.create( {}, paymentForm ); + } = customerData; customerId = id; } // Generate a Checkout Session. + const session = await sessions + .create( + { + customer_id: customerId, + payment_method_type: __unstableLegacyFormData.paymentMethods + ? __unstableLegacyFormData.paymentMethods[ 0 ].id + : 'card', + }, + paymentForm + ) + .catch( onError ); + + // Bail if there was an error. + if ( ! session ) { + return; + } + const { sessionId, session: { url }, redirect_type: redirectType, - } = await sessions.create( - { - customer_id: customerId, - }, - paymentForm - ); + } = session; // Redirect to Stripe. if ( 'stripe' === redirectType ) { diff --git a/includes/core/assets/js/packages/api/src/customers.js b/includes/core/assets/js/packages/api/src/customers.js index e7053a01..dfe79a8f 100644 --- a/includes/core/assets/js/packages/api/src/customers.js +++ b/includes/core/assets/js/packages/api/src/customers.js @@ -20,14 +20,11 @@ import { apiRequest } from './api-request.js'; * @return {jqXHR} jQuery XMLHttpRequest object. */ export function create( data = {}, paymentForm ) { - const { id, state, __unstableLegacyFormData } = paymentForm; + const { id, getFormData } = paymentForm; return apiRequest( 'v2/customer', { form_values: serialize( paymentForm[ 0 ], { hash: true } ), - form_data: JSON.stringify( { - ...__unstableLegacyFormData, - ...state, - } ), + form_data: getFormData(), form_id: id, ...data, } ); diff --git a/includes/core/assets/js/packages/api/src/index.js b/includes/core/assets/js/packages/api/src/index.js index d6907b20..58b28006 100644 --- a/includes/core/assets/js/packages/api/src/index.js +++ b/includes/core/assets/js/packages/api/src/index.js @@ -2,6 +2,7 @@ export * from './api-request.js'; export * as customers from './customers.js'; export * as paymentintents from './paymentintents.js'; +export * as orders from './orders.js'; export * as sessions from './sessions.js'; export * as setupintents from './setupintents.js'; export * as subscriptions from './subscriptions.js'; diff --git a/includes/core/assets/js/packages/api/src/orders.js b/includes/core/assets/js/packages/api/src/orders.js new file mode 100644 index 00000000..03bad6a5 --- /dev/null +++ b/includes/core/assets/js/packages/api/src/orders.js @@ -0,0 +1,55 @@ +/** + * "Order" refers to an internal order, not a Stripe Order object. + */ + +/** + * Internal dependencies. + */ +import { apiRequest } from './api-request.js'; +import { createToken } from '../../../frontend/utils/recaptcha.js'; + +/** @typedef {import('@wpsimplepay/payment-forms').PaymentForm} PaymentForm */ + +/** + * Creates and returns an order preview. + * + * @since 4.6.0 + * + * @param {Object} data Data to pass to REST endpoint. + * @return {jqXHR} jQuery XMLHttpRequest object. + */ +export async function preview( data ) { + // Create a token for the reCAPTCHA. + const recaptcha = await createToken( + `simple_pay_form_${ data.form_id }_order_preview` + ); + + return apiRequest( 'v2/order/preview', { + ...data, + captcha: { + recaptcha, + }, + } ); +} + +/** + * Submits an Order. + * + * @since 4.6.0 + * + * @param {Object} data Data to pass to REST endpoint. + * @return {jqXHR} jQuery XMLHttpRequest object. + */ +export async function submit( data ) { + // Create a token for the reCAPTCHA. + const recaptcha = await createToken( + `simple_pay_form_${ data.form_id }_order_submit` + ); + + return apiRequest( 'v2/order/submit', { + ...data, + captcha: { + recaptcha, + }, + } ); +} diff --git a/includes/core/assets/js/packages/api/src/paymentintents.js b/includes/core/assets/js/packages/api/src/paymentintents.js index 3388899b..127947f1 100644 --- a/includes/core/assets/js/packages/api/src/paymentintents.js +++ b/includes/core/assets/js/packages/api/src/paymentintents.js @@ -20,14 +20,11 @@ import { apiRequest } from './api-request.js'; * @return {jqXHR} jQuery XMLHttpRequest object. */ export function create( data = {}, paymentForm ) { - const { id, state, __unstableLegacyFormData } = paymentForm; + const { id, getFormData } = paymentForm; return apiRequest( 'v2/paymentintent/create', { form_values: serialize( paymentForm[ 0 ], { hash: true } ), - form_data: JSON.stringify( { - ...__unstableLegacyFormData, - ...state, - } ), + form_data: getFormData(), form_id: id, ...data, } ); diff --git a/includes/core/assets/js/packages/api/src/sessions.js b/includes/core/assets/js/packages/api/src/sessions.js index e56d8bf7..e07a9ac8 100644 --- a/includes/core/assets/js/packages/api/src/sessions.js +++ b/includes/core/assets/js/packages/api/src/sessions.js @@ -20,14 +20,11 @@ import { apiRequest } from './api-request.js'; * @return {jqXHR} jQuery XMLHttpRequest object. */ export function create( data = {}, paymentForm ) { - const { id, state, __unstableLegacyFormData } = paymentForm; + const { id, getFormData } = paymentForm; return apiRequest( 'v2/checkout-session', { form_values: serialize( paymentForm[ 0 ], { hash: true } ), - form_data: JSON.stringify( { - ...__unstableLegacyFormData, - ...state, - } ), + form_data: getFormData(), form_id: id, ...data, } ); diff --git a/includes/core/assets/js/packages/api/src/setupintents.js b/includes/core/assets/js/packages/api/src/setupintents.js index 1dafdf77..83b1a514 100644 --- a/includes/core/assets/js/packages/api/src/setupintents.js +++ b/includes/core/assets/js/packages/api/src/setupintents.js @@ -20,11 +20,11 @@ import { apiRequest } from './api-request.js'; * @return {jqXHR} jQuery XMLHttpRequest object. */ export function create( data = {}, paymentForm ) { - const { id, state } = paymentForm; + const { id, getFormData } = paymentForm; return apiRequest( 'v2/setupintent/create', { form_values: serialize( paymentForm[ 0 ], { hash: true } ), - form_data: JSON.stringify( state ), + form_data: getFormData(), form_id: id, ...data, } ); diff --git a/includes/core/assets/js/packages/api/src/subscriptions.js b/includes/core/assets/js/packages/api/src/subscriptions.js index cb6cdc09..46268b40 100644 --- a/includes/core/assets/js/packages/api/src/subscriptions.js +++ b/includes/core/assets/js/packages/api/src/subscriptions.js @@ -20,14 +20,11 @@ import { apiRequest } from './api-request.js'; * @return {jqXHR} jQuery XMLHttpRequest object. */ export function create( data = {}, paymentForm ) { - const { id, state, __unstableLegacyFormData } = paymentForm; + const { id, getFormData } = paymentForm; return apiRequest( 'v2/subscription', { form_values: serialize( paymentForm[ 0 ], { hash: true } ), - form_data: JSON.stringify( { - ...__unstableLegacyFormData, - ...state, - } ), + form_data: getFormData(), form_id: id, ...data, } ); diff --git a/includes/core/assets/js/packages/cart/src/cart.js b/includes/core/assets/js/packages/cart/src/cart.js index 6a7ac72d..12e6a951 100644 --- a/includes/core/assets/js/packages/cart/src/cart.js +++ b/includes/core/assets/js/packages/cart/src/cart.js @@ -24,6 +24,9 @@ export const Cart = class Cart { this.currency = 'usd'; this.taxPercent = 0; this.taxRates = []; + this.taxStatus = 'fixed-global'; + this.taxBehavior = 'exclusive'; + this.automaticTax = {}; this.coupon = false; this.isNonDecimalCurrency = false; @@ -48,6 +51,9 @@ export const Cart = class Cart { currency, taxPercent, taxRates, + taxStatus, + taxBehavior, + automaticTax, coupon, isNonDecimalCurrency, } = { @@ -75,11 +81,23 @@ export const Cart = class Cart { this.taxPercent = parseFloat( taxPercent ); } - // Tax rates. + // Tax. if ( taxRates && Array.isArray( taxRates ) ) { this.taxRates = taxRates; } + if ( taxStatus && 'string' === typeof taxStatus ) { + this.taxStatus = taxStatus; + } + + if ( taxBehavior && 'string' === typeof taxBehavior ) { + this.taxBehavior = taxBehavior; + } + + if ( automaticTax && 'object' === typeof automaticTax ) { + this.automaticTax = automaticTax; + } + // Set coupon. // @todo Validate coupon data. if ( ! ( false === coupon || 'object' === typeof coupon ) ) { @@ -289,6 +307,10 @@ export const Cart = class Cart { * @return {number} Cart tax. */ getTax() { + if ( 'none' === this.taxStatus ) { + return 0; + } + return this.getLineItems().reduce( ( tax, lineItem ) => { return ( tax += lineItem.getTax() ); }, 0 ); @@ -429,6 +451,16 @@ export const Cart = class Cart { * @return {number} Cart total due today. */ getTotalDueToday() { + let initialTax = 0; + + if ( + 'exclusive' === this.taxBehavior && + this.automaticTax && + ! this.hasFreeTrial() + ) { + initialTax = parseInt( this.automaticTax.amount_tax || initialTax ); + } + return this.getLineItems().reduce( ( total, lineItem ) => { // Return current total if the line item has a free trial. if ( lineItem.hasFreeTrial() ) { @@ -437,7 +469,7 @@ export const Cart = class Cart { // Add line item total to existing total. return ( total += lineItem.getTotal() ); - }, 0 ); + }, initialTax ); } /** @@ -496,28 +528,39 @@ export const Cart = class Cart { const recurringSubtotal = recurring.getUnitPrice() * recurring.getQuantity(); - const taxRates = this.getTaxRates(); - const taxRate = this.getTaxPercent( 'inclusive' ) / 100; - - const inclusiveTaxAmount = Math.round( - recurringSubtotal - recurringSubtotal / ( 1 + taxRate ) - ); - - const postInclusiveTaxAmount = Math.round( - recurringSubtotal - inclusiveTaxAmount - ); - const taxAmount = taxRates.reduce( - ( tax, { percentage, calculation } ) => { - if ( 'inclusive' === calculation ) { - return tax; - } - - return ( tax += Math.round( - postInclusiveTaxAmount * ( percentage / 100 ) - ) ); - }, - 0 - ); + let taxAmount = 0; + + if ( 'automatic' !== this.taxStatus && 'none' !== this.taxStatus ) { + const taxRates = this.getTaxRates(); + const taxRate = this.getTaxPercent( 'inclusive' ) / 100; + + const inclusiveTaxAmount = Math.round( + recurringSubtotal - recurringSubtotal / ( 1 + taxRate ) + ); + + const postInclusiveTaxAmount = Math.round( + recurringSubtotal - inclusiveTaxAmount + ); + + taxAmount = taxRates.reduce( + ( tax, { percentage, calculation } ) => { + if ( 'inclusive' === calculation ) { + return tax; + } + + return ( tax += Math.round( + postInclusiveTaxAmount * ( percentage / 100 ) + ) ); + }, + 0 + ); + } else if ( + 'automatic' === this.taxStatus && + 'exclusive' === this.taxBehavior && + this.automaticTax + ) { + taxAmount = this.automaticTax.upcomingInvoice?.amount_tax || 0; + } return Math.round( recurringSubtotal + taxAmount ); } @@ -557,28 +600,39 @@ export const Cart = class Cart { recurringSubtotal = Math.round( recurringSubtotal - discount ); } - const taxRates = this.getTaxRates(); - const taxRate = this.getTaxPercent( 'inclusive' ) / 100; - - const inclusiveTaxAmount = Math.round( - recurringSubtotal - recurringSubtotal / ( 1 + taxRate ) - ); - - const postInclusiveTaxAmount = Math.round( - recurringSubtotal - inclusiveTaxAmount - ); - const taxAmount = taxRates.reduce( - ( tax, { percentage, calculation } ) => { - if ( 'inclusive' === calculation ) { - return tax; - } - - return ( tax += Math.round( - postInclusiveTaxAmount * ( percentage / 100 ) - ) ); - }, - 0 - ); + let taxAmount = 0; + + if ( 'automatic' !== this.taxStatus && 'none' !== this.taxStatus ) { + const taxRates = this.getTaxRates(); + const taxRate = this.getTaxPercent( 'inclusive' ) / 100; + + const inclusiveTaxAmount = Math.round( + recurringSubtotal - recurringSubtotal / ( 1 + taxRate ) + ); + + const postInclusiveTaxAmount = Math.round( + recurringSubtotal - inclusiveTaxAmount + ); + + taxAmount = taxRates.reduce( + ( tax, { percentage, calculation } ) => { + if ( 'inclusive' === calculation ) { + return tax; + } + + return ( tax += Math.round( + postInclusiveTaxAmount * ( percentage / 100 ) + ) ); + }, + 0 + ); + } else if ( + 'automatic' === this.taxStatus && + 'exclusive' === this.taxBehavior && + this.automaticTax + ) { + taxAmount = this.automaticTax.upcomingInvoice?.amount_tax || 0; + } return Math.round( recurringSubtotal + taxAmount ); } diff --git a/includes/core/assets/js/packages/cart/src/line-item.js b/includes/core/assets/js/packages/cart/src/line-item.js index b65ada1c..908e6c77 100644 --- a/includes/core/assets/js/packages/cart/src/line-item.js +++ b/includes/core/assets/js/packages/cart/src/line-item.js @@ -261,6 +261,13 @@ export const LineItem = class LineItem { * @return {number} Cart line item tax. */ getTax() { + if ( + 'automatic' === this.cart.taxStatus || + 'none' === this.cart.taxStatus + ) { + return 0; + } + const taxableAmount = this.getTaxableAmount(); const taxPercent = this.cart.getTaxPercent( 'exclusive' ); @@ -292,7 +299,11 @@ export const LineItem = class LineItem { return false; } - return price.recurring && price.recurring.trial_period_days; + return ( + false !== this.subscription && + price.recurring && + price.recurring.trial_period_days + ); } }; diff --git a/includes/core/assets/js/packages/payment-forms/src/utils.js b/includes/core/assets/js/packages/payment-forms/src/utils.js index 064eb13c..891ef192 100644 --- a/includes/core/assets/js/packages/payment-forms/src/utils.js +++ b/includes/core/assets/js/packages/payment-forms/src/utils.js @@ -9,7 +9,7 @@ */ export function __unstableUpdatePaymentFormCart( paymentForm, cart ) { const { - state: { price, taxRates }, + state: { price, taxRates, taxStatus }, } = paymentForm; // Create a cart from the default price. @@ -23,6 +23,7 @@ export function __unstableUpdatePaymentFormCart( paymentForm, cart ) { cart.update( { currency, taxRates, + taxStatus, } ); cart.addLineItem( { diff --git a/includes/core/assets/js/packages/utils/src/upgrade-modal.js b/includes/core/assets/js/packages/utils/src/upgrade-modal.js index 9f7e3165..1da5f01b 100644 --- a/includes/core/assets/js/packages/utils/src/upgrade-modal.js +++ b/includes/core/assets/js/packages/utils/src/upgrade-modal.js @@ -76,8 +76,7 @@ export function maybeBlockButtonWithUpgradeModal( e ) { * * @since 4.4.7 * - * @param {Event} e Click event. - * @param {HTMLElement} e.target Button being pressed. + * @param {Event} e Change event. */ export function maybeBlockSelectWithUpgradeModal( e ) { const { target } = e; diff --git a/includes/core/assets/js/simpay-admin-notices.min.js b/includes/core/assets/js/simpay-admin-notices.min.js index 1542bcb0..397ef02d 100644 --- a/includes/core/assets/js/simpay-admin-notices.min.js +++ b/includes/core/assets/js/simpay-admin-notices.min.js @@ -1 +1 @@ -!function(t){var e={};function n(o){if(e[o])return e[o].exports;var i=e[o]={i:o,l:!1,exports:{}};return t[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=t,n.c=e,n.d=function(t,e,o){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:o})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(o,i,function(e){return t[e]}.bind(null,i));return o},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=344)}({14:function(t,e){t.exports=jQuery},344:function(t,e,n){"use strict";n.r(e),function(t){var e=n(5);Object(e.a)((function(){var e;document.querySelectorAll(".simpay-admin-notice-five-star-rating").forEach((function(t){var e=t.querySelectorAll("[data-navigate]");e&&e.forEach((function(t){t.addEventListener("click",(function(t){var e=t.target.dataset.navigate,n=document.querySelector('.simpay-admin-notice-five-star-rating[data-step="'.concat(e,'"]')),o=document.querySelectorAll('.simpay-admin-notice-five-star-rating:not([data-step="'.concat(e,'"])'));n&&(n.style.display="block"),o.length>0&&o.forEach((function(t){t.style.display="none"}))}))}))})),(e=document.querySelector('#adminmenu a[href^="https://wpsimplepay.com/lite-vs-pro"]'))&&e.setAttribute("target","_blank"),t(".simpay-notice").each((function(){var e=t(this),n=e.data("id"),o=e.data("nonce"),i=e.data("lifespan");e.on("click",".notice-dismiss, .simpay-notice-dismiss",(function(){wp.ajax.send("simpay_dismiss_admin_notice",{data:{notice_id:n,nonce:o,lifespan:i},success:function(){e.slideUp("fast");var t=userSettings.uid,o=void 0===t?0:t,i="simpay-notice-".concat(n,"-seen-").concat(o);window.localStorage.removeItem(i)}})}))}));var n=t(".simpay-admin-notice-top-of-page");if(n.length>0){var o=n.detach();t("#wpbody-content").prepend(o);var i=userSettings.uid,a=void 0===i?0:i,r=o.data("id"),c="simpay-notice-".concat(r,"-seen-").concat(a);window.localStorage.getItem(c)?o.show():setTimeout((function(){window.localStorage.setItem(c,!0),n.slideDown()}),1500)}}))}.call(this,n(14))},5:function(t,e,n){"use strict";function o(t){"complete"!==document.readyState&&"interactive"!==document.readyState?document.addEventListener("DOMContentLoaded",t):t()}n.d(e,"a",(function(){return o}))}}); \ No newline at end of file +!function(t){var e={};function n(o){if(e[o])return e[o].exports;var i=e[o]={i:o,l:!1,exports:{}};return t[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=t,n.c=e,n.d=function(t,e,o){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:o})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(o,i,function(e){return t[e]}.bind(null,i));return o},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=346)}({16:function(t,e){t.exports=jQuery},3:function(t,e,n){"use strict";function o(t){"complete"!==document.readyState&&"interactive"!==document.readyState?document.addEventListener("DOMContentLoaded",t):t()}n.d(e,"a",(function(){return o}))},346:function(t,e,n){"use strict";n.r(e),function(t){var e=n(3);Object(e.a)((function(){var e;document.querySelectorAll(".simpay-admin-notice-five-star-rating").forEach((function(t){var e=t.querySelectorAll("[data-navigate]");e&&e.forEach((function(t){t.addEventListener("click",(function(t){var e=t.target.dataset.navigate,n=document.querySelector('.simpay-admin-notice-five-star-rating[data-step="'.concat(e,'"]')),o=document.querySelectorAll('.simpay-admin-notice-five-star-rating:not([data-step="'.concat(e,'"])'));n&&(n.style.display="block"),o.length>0&&o.forEach((function(t){t.style.display="none"}))}))}))})),(e=document.querySelector('#adminmenu a[href^="https://wpsimplepay.com/lite-vs-pro"]'))&&e.setAttribute("target","_blank"),t(".simpay-notice").each((function(){var e=t(this),n=e.data("id"),o=e.data("nonce"),i=e.data("lifespan");e.on("click",".notice-dismiss, .simpay-notice-dismiss",(function(){wp.ajax.send("simpay_dismiss_admin_notice",{data:{notice_id:n,nonce:o,lifespan:i},success:function(){e.slideUp("fast");var t=userSettings.uid,o=void 0===t?0:t,i="simpay-notice-".concat(n,"-seen-").concat(o);window.localStorage.removeItem(i)}})}))}));var n=t(".simpay-admin-notice-top-of-page");if(n.length>0){var o=n.detach();t("#wpbody-content").prepend(o);var i=userSettings.uid,a=void 0===i?0:i,r=o.data("id"),c="simpay-notice-".concat(r,"-seen-").concat(a);window.localStorage.getItem(c)?o.show():setTimeout((function(){window.localStorage.setItem(c,!0),n.slideDown()}),1500)}}))}.call(this,n(16))}}); \ No newline at end of file diff --git a/includes/core/assets/js/simpay-admin-page-smtp.min.js b/includes/core/assets/js/simpay-admin-page-smtp.min.js index f80ca557..991464c1 100644 --- a/includes/core/assets/js/simpay-admin-page-smtp.min.js +++ b/includes/core/assets/js/simpay-admin-page-smtp.min.js @@ -1 +1 @@ -!function(t){var e={};function s(a){if(e[a])return e[a].exports;var n=e[a]={i:a,l:!1,exports:{}};return t[a].call(n.exports,n,n.exports,s),n.l=!0,n.exports}s.m=t,s.c=e,s.d=function(t,e,a){s.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:a})},s.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},s.t=function(t,e){if(1&e&&(t=s(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var a=Object.create(null);if(s.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)s.d(a,n,function(e){return t[e]}.bind(null,n));return a},s.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return s.d(e,"a",e),e},s.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},s.p="",s(s.s=345)}({14:function(t,e){t.exports=jQuery},345:function(t,e,s){"use strict";(function(t){(window.SimPaySMTP||function(t,e,s){var a={},n={init:function(){s(n.ready)},ready:function(){n.initVars(),n.events()},initVars:function(){a={$stepInstall:s("section.step-install"),$stepInstallNum:s("section.step-install .num img"),$stepSetup:s("section.step-setup"),$stepSetupNum:s("section.step-setup .num img")}},events:function(){a.$stepInstall.on("click","button",n.stepInstallClick),a.$stepSetup.on("click","button",n.gotoURL)},stepInstallClick:function(t){t.preventDefault();var i=s(this),r=i.attr("data-action"),l=i.attr("data-plugin"),p=i.text(),u="";if(!i.hasClass("disabled")){switch(r){case"activate":u="simpay_activate_plugin",i.text(simpay_smtp.activating);break;case"install":u="simpay_install_plugin",i.text(simpay_smtp.installing);break;case"goto-url":return void(e.location.href=i.attr("data-url"));default:return}i.addClass("disabled"),n.showSpinner(a.$stepInstallNum);var o={action:u,nonce:simpay_smtp.nonce,plugin:l};s.post(simpay_smtp.ajax_url,o).done((function(t){n.stepInstallDone(t,i,r)})).fail((function(){i.removeClass("disabled"),i.text(p)})).always((function(){n.hideSpinner(a.$stepInstallNum)}))}},stepInstallDone:function(t,e,s){if("install"===s?t.success&&t.data.is_activated:t.success)return a.$stepInstallNum.attr("src",a.$stepInstallNum.attr("src").replace("step-1.","step-complete.")),e.addClass("grey").removeClass("button-primary").text(simpay_smtp.activated),void n.stepInstallPluginStatus();var i="install"===s&&t.success&&!t.data.is_activated||"activate"===s,r=i?simpay_smtp.manual_activate_url:simpay_smtp.manual_install_url,l=i?simpay_smtp.error_could_not_activate:simpay_smtp.error_could_not_install,p=i?simpay_smtp.plugins_page:simpay_smtp.download_now;e.removeClass("grey disabled").text(p).attr("data-action","goto-url").attr("data-url",r),e.after('
'+l+"
")},stepInstallPluginStatus:function(){var t={action:"simpay_smtp_page_check_plugin_status",nonce:simpay_smtp.nonce};s.post(simpay_smtp.ajax_url,t).done(n.stepInstallPluginStatusDone)},stepInstallPluginStatusDone:function(t){if(t.success){if(a.$stepSetup.removeClass("grey"),a.$stepSetupBtn=a.$stepSetup.find("button"),a.$stepSetupBtn.removeClass("grey disabled").addClass("button-primary"),t.data.setup_status>0)return a.$stepSetupNum.attr("src",a.$stepSetupNum.attr("src").replace("step-2.svg","step-complete.svg")),void a.$stepSetupBtn.attr("data-url",simpay_smtp.smtp_settings_url).text(simpay_smtp.smtp_settings);a.$stepSetupBtn.attr("data-url",simpay_smtp.smtp_wizard_url).text(simpay_smtp.smtp_wizard)}},gotoURL:function(){var t=s(this);t.hasClass("disabled")||(e.location.href=t.attr("data-url"))},showSpinner:function(t){t.siblings(".loader").removeClass("hidden")},hideSpinner:function(t){t.siblings(".loader").addClass("hidden")}};return n}(document,window,t)).init()}).call(this,s(14))}}); \ No newline at end of file +!function(t){var e={};function s(a){if(e[a])return e[a].exports;var n=e[a]={i:a,l:!1,exports:{}};return t[a].call(n.exports,n,n.exports,s),n.l=!0,n.exports}s.m=t,s.c=e,s.d=function(t,e,a){s.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:a})},s.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},s.t=function(t,e){if(1&e&&(t=s(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var a=Object.create(null);if(s.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)s.d(a,n,function(e){return t[e]}.bind(null,n));return a},s.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return s.d(e,"a",e),e},s.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},s.p="",s(s.s=347)}({16:function(t,e){t.exports=jQuery},347:function(t,e,s){"use strict";(function(t){(window.SimPaySMTP||function(t,e,s){var a={},n={init:function(){s(n.ready)},ready:function(){n.initVars(),n.events()},initVars:function(){a={$stepInstall:s("section.step-install"),$stepInstallNum:s("section.step-install .num img"),$stepSetup:s("section.step-setup"),$stepSetupNum:s("section.step-setup .num img")}},events:function(){a.$stepInstall.on("click","button",n.stepInstallClick),a.$stepSetup.on("click","button",n.gotoURL)},stepInstallClick:function(t){t.preventDefault();var i=s(this),r=i.attr("data-action"),l=i.attr("data-plugin"),p=i.text(),u="";if(!i.hasClass("disabled")){switch(r){case"activate":u="simpay_activate_plugin",i.text(simpay_smtp.activating);break;case"install":u="simpay_install_plugin",i.text(simpay_smtp.installing);break;case"goto-url":return void(e.location.href=i.attr("data-url"));default:return}i.addClass("disabled"),n.showSpinner(a.$stepInstallNum);var o={action:u,nonce:simpay_smtp.nonce,plugin:l};s.post(simpay_smtp.ajax_url,o).done((function(t){n.stepInstallDone(t,i,r)})).fail((function(){i.removeClass("disabled"),i.text(p)})).always((function(){n.hideSpinner(a.$stepInstallNum)}))}},stepInstallDone:function(t,e,s){if("install"===s?t.success&&t.data.is_activated:t.success)return a.$stepInstallNum.attr("src",a.$stepInstallNum.attr("src").replace("step-1.","step-complete.")),e.addClass("grey").removeClass("button-primary").text(simpay_smtp.activated),void n.stepInstallPluginStatus();var i="install"===s&&t.success&&!t.data.is_activated||"activate"===s,r=i?simpay_smtp.manual_activate_url:simpay_smtp.manual_install_url,l=i?simpay_smtp.error_could_not_activate:simpay_smtp.error_could_not_install,p=i?simpay_smtp.plugins_page:simpay_smtp.download_now;e.removeClass("grey disabled").text(p).attr("data-action","goto-url").attr("data-url",r),e.after(''+l+"
")},stepInstallPluginStatus:function(){var t={action:"simpay_smtp_page_check_plugin_status",nonce:simpay_smtp.nonce};s.post(simpay_smtp.ajax_url,t).done(n.stepInstallPluginStatusDone)},stepInstallPluginStatusDone:function(t){if(t.success){if(a.$stepSetup.removeClass("grey"),a.$stepSetupBtn=a.$stepSetup.find("button"),a.$stepSetupBtn.removeClass("grey disabled").addClass("button-primary"),t.data.setup_status>0)return a.$stepSetupNum.attr("src",a.$stepSetupNum.attr("src").replace("step-2.svg","step-complete.svg")),void a.$stepSetupBtn.attr("data-url",simpay_smtp.smtp_settings_url).text(simpay_smtp.smtp_settings);a.$stepSetupBtn.attr("data-url",simpay_smtp.smtp_wizard_url).text(simpay_smtp.smtp_wizard)}},gotoURL:function(){var t=s(this);t.hasClass("disabled")||(e.location.href=t.attr("data-url"))},showSpinner:function(t){t.siblings(".loader").removeClass("hidden")},hideSpinner:function(t){t.siblings(".loader").addClass("hidden")}};return n}(document,window,t)).init()}).call(this,s(16))}}); \ No newline at end of file diff --git a/includes/core/assets/js/simpay-admin.min.js b/includes/core/assets/js/simpay-admin.min.js index eae91959..275bdd43 100644 --- a/includes/core/assets/js/simpay-admin.min.js +++ b/includes/core/assets/js/simpay-admin.min.js @@ -1 +1 @@ -!function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(t){return e[t]}.bind(null,a));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=334)}({108:function(e,t,n){var r=n(65);e.exports=function(e){if(Array.isArray(e))return r(e)},e.exports.__esModule=!0,e.exports.default=e.exports},109:function(e,t){e.exports=function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)},e.exports.__esModule=!0,e.exports.default=e.exports},110:function(e,t,n){var r=n(65);e.exports=function(e,t){if(e){if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}},e.exports.__esModule=!0,e.exports.default=e.exports},111:function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.__esModule=!0,e.exports.default=e.exports},14:function(e,t){e.exports=jQuery},145:function(e,t){Number.isInteger=Number.isInteger||function(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e},Number.isSafeInteger=Number.isSafeInteger||function(e){return Number.isInteger(e)&&Math.abs(e)<=Number.MAX_SAFE_INTEGER},Number.MAX_SAFE_INTEGER||(Number.MAX_SAFE_INTEGER=9007199254740991)},146:function(e,t,n){"use strict";(function(e){n.d(t,"b",(function(){return c})),n.d(t,"a",(function(){return s})),n.d(t,"c",(function(){return l})),n.d(t,"d",(function(){return u}));var r=n(6),a=n.n(r);function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t- | - %s - ', - __( 'Disabled', 'stripe' ) - ), - array( - 'span' => array( - 'class' => true, - ), - ) - ); - - echo wp_kses( - sprintf( - /* translators: %1$s Opening anchor tag, do not translate. %2$s Closing anchor tag, do not translate. */ - __( - '%1$sUpgrade to WP Simple Pay Pro%2$s to collect taxes or additional fees on payments.', - 'stripe' - ), - '', - '' - ), - array( - 'a' => array( - 'href' => true, - 'target' => true, - 'rel' => true, - ), - 'span' => array( - 'class' => true, - ), - ) - ); - ?> + |
---|
currency
to which bitcoin_amount_received
has been converted.
- * @property int $bitcoin_amount The amount of bitcoin that the customer should send to fill the receiver. The bitcoin_amount
is denominated in Satoshi: there are 10^8 Satoshi in one bitcoin.
- * @property int $bitcoin_amount_received The amount of bitcoin that has been sent by the customer to this receiver.
- * @property string $bitcoin_uri This URI can be displayed to the customer as a clickable link (to activate their bitcoin client) or as a QR code (for mobile wallets).
- * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
- * @property string $currency Three-letter ISO code for the currency to which the bitcoin will be converted.
- * @property null|string $customer The customer ID of the bitcoin receiver.
- * @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users.
- * @property null|string $email The customer's email address, set by the API call that creates the receiver.
- * @property bool $filled This flag is initially false and updates to true when the customer sends the bitcoin_amount
to this receiver.
- * @property string $inbound_address A bitcoin address that is specific to this receiver. The customer can send bitcoin to this address to fill the receiver.
- * @property bool $livemode Has the value true
if the object exists in live mode or the value false
if the object exists in test mode.
- * @property null|\SimplePay\Vendor\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
- * @property null|string $payment The ID of the payment created from the receiver, if any. Hidden when viewing the receiver with a publishable key.
- * @property null|string $refund_address The refund address of this bitcoin receiver.
- * @property \SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\BitcoinTransaction> $transactions A list with one entry for each time that the customer sent bitcoin to the receiver. Hidden when viewing the receiver with a publishable key.
- * @property bool $uncaptured_funds This receiver contains uncaptured funds that can be used for a payment or refunded.
- * @property null|bool $used_for_payment Indicate if this source is used for payment.
- */
-class BitcoinReceiver extends ApiResource
-{
- const OBJECT_NAME = 'bitcoin_receiver';
-
- use ApiOperations\All;
- use ApiOperations\Retrieve;
-
- /**
- * @return string The class URL for this resource. It needs to be special
- * cased because it doesn't fit into the standard resource pattern.
- */
- public static function classUrl()
- {
- return '/v1/bitcoin/receivers';
- }
-
- /**
- * @return string The instance URL for this resource. It needs to be special
- * cased because it doesn't fit into the standard resource pattern.
- */
- public function instanceUrl()
- {
- if ($this['customer']) {
- $base = Customer::classUrl();
- $parent = $this['customer'];
- $path = 'sources';
- $parentExtn = \urlencode(Util\Util::utf8($parent));
- $extn = \urlencode(Util\Util::utf8($this['id']));
-
- return "{$base}/{$parentExtn}/{$path}/{$extn}";
- }
-
- $base = BitcoinReceiver::classUrl();
- $extn = \urlencode(Util\Util::utf8($this['id']));
-
- return "{$base}/{$extn}";
- }
-}
diff --git a/lib/Stripe/lib/BitcoinTransaction.php b/lib/Stripe/lib/BitcoinTransaction.php
deleted file mode 100644
index 49d90560..00000000
--- a/lib/Stripe/lib/BitcoinTransaction.php
+++ /dev/null
@@ -1,19 +0,0 @@
-currency that the transaction was converted to in real-time.
- * @property int $bitcoin_amount The amount of bitcoin contained in the transaction.
- * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
- * @property string $currency Three-letter ISO code for the currency to which this transaction was converted.
- * @property string $receiver The receiver to which this transaction was sent.
- */
-class BitcoinTransaction extends ApiResource
-{
- const OBJECT_NAME = 'bitcoin_transaction';
-}
diff --git a/lib/Stripe/lib/Card.php b/lib/Stripe/lib/Card.php
index eca6fa9c..11bdacd6 100644
--- a/lib/Stripe/lib/Card.php
+++ b/lib/Stripe/lib/Card.php
@@ -38,7 +38,6 @@
* @property string $last4 The last four digits of the card.
* @property null|\SimplePay\Vendor\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
* @property null|string $name Cardholder name.
- * @property null|string|\SimplePay\Vendor\Stripe\Recipient $recipient The recipient that this card belongs to. This attribute will not be in the card object if the card belongs to a customer or account instead.
* @property null|string $status For external accounts, possible values are new
and errored
. If a transfer fails, the status is set to errored
and transfers are stopped until account details are updated.
* @property null|string $tokenization_method If the card number is tokenized, this is the method that was used. Can be android_pay
(includes Google Pay), apple_pay
, masterpass
, visa_checkout
, or null.
*/
@@ -92,12 +91,8 @@ public function instanceUrl()
$base = Account::classUrl();
$parent = $this['account'];
$path = 'external_accounts';
- } elseif ($this['recipient']) {
- $base = Recipient::classUrl();
- $parent = $this['recipient'];
- $path = 'cards';
} else {
- $msg = 'Cards cannot be accessed without a customer ID, account ID or recipient ID.';
+ $msg = 'Cards cannot be accessed without a customer ID, or account ID.';
throw new Exception\UnexpectedValueException($msg);
}
diff --git a/lib/Stripe/lib/CashBalance.php b/lib/Stripe/lib/CashBalance.php
index 5b9ee313..f67538cc 100644
--- a/lib/Stripe/lib/CashBalance.php
+++ b/lib/Stripe/lib/CashBalance.php
@@ -10,7 +10,7 @@
* for payment and can eventually be paid out to your bank account.
*
* @property string $object String representing the object's type. Objects of the same type share the same value.
- * @property null|\SimplePay\Vendor\Stripe\StripeObject $available A hash of all cash balances available to this customer. You cannot delete a customer with any cash balances, even if the balance is 0.
+ * @property null|\SimplePay\Vendor\Stripe\StripeObject $available A hash of all cash balances available to this customer. You cannot delete a customer with any cash balances, even if the balance is 0. Amounts are represented in the smallest currency unit.
* @property string $customer The ID of the customer whose cash balance this object represents.
* @property bool $livemode Has the value true
if the object exists in live mode or the value false
if the object exists in test mode.
* @property \SimplePay\Vendor\Stripe\StripeObject $settings
diff --git a/lib/Stripe/lib/Charge.php b/lib/Stripe/lib/Charge.php
index 5b2ab252..6fd6f22d 100644
--- a/lib/Stripe/lib/Charge.php
+++ b/lib/Stripe/lib/Charge.php
@@ -15,12 +15,14 @@
*
* @property string $id Unique identifier for the object.
* @property string $object String representing the object's type. Objects of the same type share the same value.
+ * @property \SimplePay\Vendor\Stripe\StripeObject $alternate_statement_descriptors
* @property int $amount Amount intended to be collected by this payment. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is $0.50 US or equivalent in charge currency. The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).
* @property int $amount_captured Amount in %s captured (can be less than the amount attribute on the charge if a partial capture was made).
* @property int $amount_refunded Amount in %s refunded (can be less than the amount attribute on the charge if a partial refund was issued).
* @property null|string|\SimplePay\Vendor\Stripe\StripeObject $application ID of the Connect application that created the charge.
* @property null|string|\SimplePay\Vendor\Stripe\ApplicationFee $application_fee The application fee (if any) for the charge. See the Connect documentation for details.
* @property null|int $application_fee_amount The amount of the application fee (if any) requested for the charge. See the Connect documentation for details.
+ * @property string $authorization_code Authorization code on the charge.
* @property null|string|\SimplePay\Vendor\Stripe\BalanceTransaction $balance_transaction ID of the balance transaction that describes the impact of this charge on your account balance (not including refunds or disputes).
* @property \SimplePay\Vendor\Stripe\StripeObject $billing_details
* @property null|string $calculated_statement_descriptor The full statement descriptor that is passed to card networks, and that is displayed on your customers' credit card and bank statements. Allows you to see what the statement descriptor looks like after the static and dynamic portions are combined.
@@ -37,6 +39,7 @@
* @property null|string $failure_message Message to user further explaining reason for charge failure if available.
* @property null|\SimplePay\Vendor\Stripe\StripeObject $fraud_details Information on fraud assessments for the charge.
* @property null|string|\SimplePay\Vendor\Stripe\Invoice $invoice ID of the invoice this charge is for if one exists.
+ * @property \SimplePay\Vendor\Stripe\StripeObject $level3
* @property bool $livemode Has the value true
if the object exists in live mode or the value false
if the object exists in test mode.
* @property \SimplePay\Vendor\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
* @property null|string|\SimplePay\Vendor\Stripe\Account $on_behalf_of The account (if any) the charge was made on behalf of without triggering an automatic transfer. See the Connect documentation for details.
@@ -53,7 +56,7 @@
* @property \SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\Refund> $refunds A list of refunds that have been applied to the charge.
* @property null|string|\SimplePay\Vendor\Stripe\Review $review ID of the review associated with this charge if one exists.
* @property null|\SimplePay\Vendor\Stripe\StripeObject $shipping Shipping information for the charge.
- * @property null|\SimplePay\Vendor\Stripe\Account|\SimplePay\Vendor\Stripe\AlipayAccount|\SimplePay\Vendor\Stripe\BankAccount|\SimplePay\Vendor\Stripe\BitcoinReceiver|\SimplePay\Vendor\Stripe\Card|\SimplePay\Vendor\Stripe\Source $source This is a legacy field that will be removed in the future. It contains the Source, Card, or BankAccount object used for the charge. For details about the payment method used for this charge, refer to payment_method
or payment_method_details
instead.
+ * @property null|\SimplePay\Vendor\Stripe\Account|\SimplePay\Vendor\Stripe\BankAccount|\SimplePay\Vendor\Stripe\Card|\SimplePay\Vendor\Stripe\Source $source This is a legacy field that will be removed in the future. It contains the Source, Card, or BankAccount object used for the charge. For details about the payment method used for this charge, refer to payment_method
or payment_method_details
instead.
* @property null|string|\SimplePay\Vendor\Stripe\Transfer $source_transfer The transfer ID which created this charge. Only present if the charge came from another SimplePay\Vendor\Stripe account. See the Connect documentation for details.
* @property null|string $statement_descriptor For card charges, use statement_descriptor_suffix
instead. Otherwise, you can use this value as the complete description of a charge on your customers’ statements. Must contain at least one letter, maximum 22 characters.
* @property null|string $statement_descriptor_suffix Provides information about the charge that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 22 characters for the concatenated descriptor.
diff --git a/lib/Stripe/lib/Checkout/Session.php b/lib/Stripe/lib/Checkout/Session.php
index 730e1367..d34cff8c 100644
--- a/lib/Stripe/lib/Checkout/Session.php
+++ b/lib/Stripe/lib/Checkout/Session.php
@@ -38,7 +38,7 @@
* @property null|string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency.
* @property null|string|\SimplePay\Vendor\Stripe\Customer $customer The ID of the customer for this Session. For Checkout Sessions in payment
or subscription
mode, Checkout will create a new customer object based on information provided during the payment flow unless an existing customer was provided when the Session was created.
* @property null|string $customer_creation Configure whether a Checkout Session creates a Customer when the Checkout Session completes.
- * @property null|\SimplePay\Vendor\Stripe\StripeObject $customer_details The customer details including the customer's tax exempt status and the customer's tax IDs. Only present on Sessions in payment
or subscription
mode.
+ * @property null|\SimplePay\Vendor\Stripe\StripeObject $customer_details The customer details including the customer's tax exempt status and the customer's tax IDs. Only the customer's email is present on Sessions in setup
mode.
* @property null|string $customer_email If provided, this value will be used when the Customer object is created. If not provided, customers will be asked to enter their email address. Use this parameter to prefill customer data if you already have an email on file. To access information about the customer once the payment flow is complete, use the customer
attribute.
* @property int $expires_at The timestamp at which the Checkout Session will expire.
* @property \SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\LineItem> $line_items The line items purchased by the customer.
@@ -54,10 +54,10 @@
* @property \SimplePay\Vendor\Stripe\StripeObject $phone_number_collection
* @property null|string $recovered_from The ID of the original expired Checkout Session that triggered the recovery flow.
* @property null|string|\SimplePay\Vendor\Stripe\SetupIntent $setup_intent The ID of the SetupIntent for Checkout Sessions in setup
mode.
- * @property null|\SimplePay\Vendor\Stripe\StripeObject $shipping Shipping information for this Checkout Session.
* @property null|\SimplePay\Vendor\Stripe\StripeObject $shipping_address_collection When set, provides configuration for Checkout to collect a shipping address from a customer.
+ * @property null|\SimplePay\Vendor\Stripe\StripeObject $shipping_cost The details of the customer cost of shipping, including the customer chosen ShippingRate.
+ * @property null|\SimplePay\Vendor\Stripe\StripeObject $shipping_details Shipping information for this Checkout Session.
* @property \SimplePay\Vendor\Stripe\StripeObject[] $shipping_options The shipping rate options applied to this Session.
- * @property null|string|\SimplePay\Vendor\Stripe\ShippingRate $shipping_rate The ID of the ShippingRate for Checkout Sessions in payment
mode.
* @property null|string $status The status of the Checkout Session, one of open
, complete
, or expired
.
* @property null|string $submit_type Describes the type of transaction being performed by Checkout in order to customize relevant text on the page, such as the submit button. submit_type
can only be specified on Checkout Sessions in payment
mode, but not Checkout Sessions in subscription
or setup
mode.
* @property null|string|\SimplePay\Vendor\Stripe\Subscription $subscription The ID of the subscription for Checkout Sessions in subscription
mode.
@@ -72,7 +72,6 @@ class Session extends \SimplePay\Vendor\Stripe\ApiResource
use \SimplePay\Vendor\Stripe\ApiOperations\All;
use \SimplePay\Vendor\Stripe\ApiOperations\Create;
- use \SimplePay\Vendor\Stripe\ApiOperations\NestedResource;
use \SimplePay\Vendor\Stripe\ApiOperations\Retrieve;
const BILLING_ADDRESS_COLLECTION_AUTO = 'auto';
@@ -115,19 +114,22 @@ public function expire($params = null, $opts = null)
return $this;
}
- const PATH_LINE_ITEMS = '/line_items';
-
/**
- * @param string $id the ID of the session on which to retrieve the items
+ * @param string $id
* @param null|array $params
* @param null|array|string $opts
*
* @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
*
- * @return \SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\LineItem> the list of items
+ * @return \SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\LineItem> list of LineItems
*/
public static function allLineItems($id, $params = null, $opts = null)
{
- return self::_allNestedResources($id, static::PATH_LINE_ITEMS, $params, $opts);
+ $url = static::resourceUrl($id) . '/line_items';
+ list($response, $opts) = static::_staticRequest('get', $url, $params, $opts);
+ $obj = \SimplePay\Vendor\Stripe\Util\Util::convertToStripeObject($response->json, $opts);
+ $obj->setLastResponse($response);
+
+ return $obj;
}
}
diff --git a/lib/Stripe/lib/Collection.php b/lib/Stripe/lib/Collection.php
index 90c40b4d..e6dc2c74 100644
--- a/lib/Stripe/lib/Collection.php
+++ b/lib/Stripe/lib/Collection.php
@@ -50,6 +50,9 @@ public function setFilters($filters)
$this->filters = $filters;
}
+ /**
+ * @return mixed
+ */
#[\ReturnTypeWillChange]
public function offsetGet($k)
{
diff --git a/lib/Stripe/lib/Coupon.php b/lib/Stripe/lib/Coupon.php
index e60cc03a..ec49b923 100644
--- a/lib/Stripe/lib/Coupon.php
+++ b/lib/Stripe/lib/Coupon.php
@@ -21,6 +21,7 @@
* @property \SimplePay\Vendor\Stripe\StripeObject $applies_to
* @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
* @property null|string $currency If amount_off
has been set, the three-letter ISO code for the currency of the amount to take off.
+ * @property \SimplePay\Vendor\Stripe\StripeObject $currency_options Coupons defined in each available currency option. Each key must be a three-letter ISO currency code and a supported currency.
* @property string $duration One of forever
, once
, and repeating
. Describes how long a customer who applies this coupon will get the discount.
* @property null|int $duration_in_months If duration
is repeating
, the number of months the coupon applies. Null if coupon duration
is forever
or once
.
* @property bool $livemode Has the value true
if the object exists in live mode or the value false
if the object exists in test mode.
diff --git a/lib/Stripe/lib/CreditNote.php b/lib/Stripe/lib/CreditNote.php
index 47747748..1d878a09 100644
--- a/lib/Stripe/lib/CreditNote.php
+++ b/lib/Stripe/lib/CreditNote.php
@@ -31,9 +31,11 @@
* @property null|string $reason Reason for issuing this credit note, one of duplicate
, fraudulent
, order_change
, or product_unsatisfactory
* @property null|string|\SimplePay\Vendor\Stripe\Refund $refund Refund related to this credit note.
* @property string $status Status of this credit note, one of issued
or void
. Learn more about voiding credit notes.
- * @property int $subtotal The integer amount in %s representing the amount of the credit note, excluding tax and invoice level discounts.
+ * @property int $subtotal The integer amount in %s representing the amount of the credit note, excluding exclusive tax and invoice level discounts.
+ * @property null|int $subtotal_excluding_tax The integer amount in %s representing the amount of the credit note, excluding all tax and invoice level discounts.
* @property \SimplePay\Vendor\Stripe\StripeObject[] $tax_amounts The aggregate amounts calculated per tax rate for all line items.
* @property int $total The integer amount in %s representing the total amount of the credit note, including tax and all discount.
+ * @property null|int $total_excluding_tax The integer amount in %s representing the total amount of the credit note, excluding tax, but including discounts.
* @property string $type Type of this credit note, one of pre_payment
or post_payment
. A pre_payment
credit note means it was issued when the invoice was open. A post_payment
credit note means it was issued when the invoice was paid.
* @property null|int $voided_at The time that the credit note was voided.
*/
@@ -76,6 +78,24 @@ public static function preview($params = null, $opts = null)
return $obj;
}
+ /**
+ * @param null|array $params
+ * @param null|array|string $opts
+ *
+ * @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
+ *
+ * @return \SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\CreditNoteLineItem> list of CreditNoteLineItems
+ */
+ public static function previewLines($params = null, $opts = null)
+ {
+ $url = static::classUrl() . '/preview/lines';
+ list($response, $opts) = static::_staticRequest('get', $url, $params, $opts);
+ $obj = \SimplePay\Vendor\Stripe\Util\Util::convertToStripeObject($response->json, $opts);
+ $obj->setLastResponse($response);
+
+ return $obj;
+ }
+
/**
* @param null|array $params
* @param null|array|string $opts
diff --git a/lib/Stripe/lib/CreditNoteLineItem.php b/lib/Stripe/lib/CreditNoteLineItem.php
index b22d156d..15723bd5 100644
--- a/lib/Stripe/lib/CreditNoteLineItem.php
+++ b/lib/Stripe/lib/CreditNoteLineItem.php
@@ -8,6 +8,7 @@
* @property string $id Unique identifier for the object.
* @property string $object String representing the object's type. Objects of the same type share the same value.
* @property int $amount The integer amount in %s representing the gross amount being credited for this line item, excluding (exclusive) tax and discounts.
+ * @property null|int $amount_excluding_tax The integer amount in %s representing the amount being credited for this line item, excluding all tax and discounts.
* @property null|string $description Description of the item being credited.
* @property int $discount_amount The integer amount in %s representing the discount being credited for this line item.
* @property \SimplePay\Vendor\Stripe\StripeObject[] $discount_amounts The amount of discount calculated per discount for this line item
@@ -19,6 +20,7 @@
* @property string $type The type of the credit note line item, one of invoice_line_item
or custom_line_item
. When the type is invoice_line_item
there is an additional invoice_line_item
property on the resource the value of which is the id of the credited line item on the invoice.
* @property null|int $unit_amount The cost of each unit of product being credited.
* @property null|string $unit_amount_decimal Same as unit_amount
, but contains a decimal value with at most 12 decimal places.
+ * @property null|string $unit_amount_excluding_tax The amount in %s representing the unit amount being credited for this line item, excluding all tax and discounts.
*/
class CreditNoteLineItem extends ApiResource
{
diff --git a/lib/Stripe/lib/Customer.php b/lib/Stripe/lib/Customer.php
index 8076d291..79e93cd5 100644
--- a/lib/Stripe/lib/Customer.php
+++ b/lib/Stripe/lib/Customer.php
@@ -19,11 +19,12 @@
* @property null|\SimplePay\Vendor\Stripe\CashBalance $cash_balance The current funds being held by SimplePay\Vendor\Stripe on behalf of the customer. These funds can be applied towards payment intents with source "cash_balance".The settings[reconciliation_mode] field describes whether these funds are applied to such payment intents manually or automatically.
* @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
* @property null|string $currency Three-letter ISO code for the currency the customer can be charged in for recurring billing purposes.
- * @property null|string|\SimplePay\Vendor\Stripe\Account|\SimplePay\Vendor\Stripe\AlipayAccount|\SimplePay\Vendor\Stripe\BankAccount|\SimplePay\Vendor\Stripe\BitcoinReceiver|\SimplePay\Vendor\Stripe\Card|\SimplePay\Vendor\Stripe\Source $default_source ID of the default payment source for the customer.
If you are using payment methods created via the PaymentMethods API, see the invoice_settings.default_payment_method field instead.
+ * @property null|string|\SimplePay\Vendor\Stripe\Account|\SimplePay\Vendor\Stripe\BankAccount|\SimplePay\Vendor\Stripe\Card|\SimplePay\Vendor\Stripe\Source $default_sourceID of the default payment source for the customer.
If you are using payment methods created via the PaymentMethods API, see the invoice_settings.default_payment_method field instead.
* @property null|bool $delinquentWhen the customer's latest invoice is billed by charging automatically, delinquent
is true
if the invoice's latest charge failed. When the customer's latest invoice is billed by sending an invoice, delinquent
is true
if the invoice isn't paid by its due date.
If an invoice is marked uncollectible by dunning, delinquent
doesn't get reset to false
.
true
if the object exists in live mode or the value false
if the object exists in test mode.
@@ -33,7 +34,7 @@
* @property null|string $phone The customer's phone number.
* @property null|string[] $preferred_locales The customer's preferred locales (languages), ordered by preference.
* @property null|\SimplePay\Vendor\Stripe\StripeObject $shipping Mailing and shipping address for the customer. Appears on invoices emailed to this customer.
- * @property \SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\Account|\SimplePay\Vendor\Stripe\AlipayAccount|\SimplePay\Vendor\Stripe\BankAccount|\SimplePay\Vendor\Stripe\BitcoinReceiver|\SimplePay\Vendor\Stripe\Card|\SimplePay\Vendor\Stripe\Source> $sources The customer's payment sources, if any.
+ * @property \SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\Account|\SimplePay\Vendor\Stripe\BankAccount|\SimplePay\Vendor\Stripe\Card|\SimplePay\Vendor\Stripe\Source> $sources The customer's payment sources, if any.
* @property \SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\Subscription> $subscriptions The customer's current subscriptions, if any.
* @property \SimplePay\Vendor\Stripe\StripeObject $tax
* @property null|string $tax_exempt Describes the customer's tax exemption status. One of none
, exempt
, or reverse
. When set to reverse
, invoice and receipt PDFs include the text "Reverse charge".
@@ -84,9 +85,9 @@ public function deleteDiscount($params = null, $opts = null)
}
/**
+ * @param string $id
* @param null|array $params
* @param null|array|string $opts
- * @param mixed $id
*
* @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
*
@@ -235,7 +236,7 @@ public static function updateBalanceTransaction($id, $balanceTransactionId, $par
*
* @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
*
- * @return \SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\AlipayAccount|\SimplePay\Vendor\Stripe\BankAccount|\SimplePay\Vendor\Stripe\BitcoinReceiver|\SimplePay\Vendor\Stripe\Card|\SimplePay\Vendor\Stripe\Source> the list of payment sources (AlipayAccount, BankAccount, BitcoinReceiver, Card or Source)
+ * @return \SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\BankAccount|\SimplePay\Vendor\Stripe\Card|\SimplePay\Vendor\Stripe\Source> the list of payment sources (BankAccount, Card or Source)
*/
public static function allSources($id, $params = null, $opts = null)
{
@@ -249,7 +250,7 @@ public static function allSources($id, $params = null, $opts = null)
*
* @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
*
- * @return \SimplePay\Vendor\Stripe\AlipayAccount|\SimplePay\Vendor\Stripe\BankAccount|\SimplePay\Vendor\Stripe\BitcoinReceiver|\SimplePay\Vendor\Stripe\Card|\SimplePay\Vendor\Stripe\Source
+ * @return \SimplePay\Vendor\Stripe\BankAccount|\SimplePay\Vendor\Stripe\Card|\SimplePay\Vendor\Stripe\Source
*/
public static function createSource($id, $params = null, $opts = null)
{
@@ -264,7 +265,7 @@ public static function createSource($id, $params = null, $opts = null)
*
* @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
*
- * @return \SimplePay\Vendor\Stripe\AlipayAccount|\SimplePay\Vendor\Stripe\BankAccount|\SimplePay\Vendor\Stripe\BitcoinReceiver|\SimplePay\Vendor\Stripe\Card|\SimplePay\Vendor\Stripe\Source
+ * @return \SimplePay\Vendor\Stripe\BankAccount|\SimplePay\Vendor\Stripe\Card|\SimplePay\Vendor\Stripe\Source
*/
public static function deleteSource($id, $sourceId, $params = null, $opts = null)
{
@@ -279,7 +280,7 @@ public static function deleteSource($id, $sourceId, $params = null, $opts = null
*
* @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
*
- * @return \SimplePay\Vendor\Stripe\AlipayAccount|\SimplePay\Vendor\Stripe\BankAccount|\SimplePay\Vendor\Stripe\BitcoinReceiver|\SimplePay\Vendor\Stripe\Card|\SimplePay\Vendor\Stripe\Source
+ * @return \SimplePay\Vendor\Stripe\BankAccount|\SimplePay\Vendor\Stripe\Card|\SimplePay\Vendor\Stripe\Source
*/
public static function retrieveSource($id, $sourceId, $params = null, $opts = null)
{
@@ -294,7 +295,7 @@ public static function retrieveSource($id, $sourceId, $params = null, $opts = nu
*
* @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
*
- * @return \SimplePay\Vendor\Stripe\AlipayAccount|\SimplePay\Vendor\Stripe\BankAccount|\SimplePay\Vendor\Stripe\BitcoinReceiver|\SimplePay\Vendor\Stripe\Card|\SimplePay\Vendor\Stripe\Source
+ * @return \SimplePay\Vendor\Stripe\BankAccount|\SimplePay\Vendor\Stripe\Card|\SimplePay\Vendor\Stripe\Source
*/
public static function updateSource($id, $sourceId, $params = null, $opts = null)
{
diff --git a/lib/Stripe/lib/Dispute.php b/lib/Stripe/lib/Dispute.php
index c807b2dc..df354b5e 100644
--- a/lib/Stripe/lib/Dispute.php
+++ b/lib/Stripe/lib/Dispute.php
@@ -64,17 +64,17 @@ class Dispute extends ApiResource
const STATUS_WON = 'won';
/**
+ * @param null|array $params
* @param null|array|string $opts
*
* @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
*
* @return \SimplePay\Vendor\Stripe\Dispute the closed dispute
*/
- // TODO: add $params to standardize signature
- public function close($opts = null)
+ public function close($params = null, $opts = null)
{
$url = $this->instanceUrl() . '/close';
- list($response, $opts) = $this->_request('post', $url, null, $opts);
+ list($response, $opts) = $this->_request('post', $url, $params, $opts);
$this->refreshFrom($response, $opts);
return $this;
diff --git a/lib/Stripe/lib/EphemeralKey.php b/lib/Stripe/lib/EphemeralKey.php
index a8034dac..18ed9b9b 100644
--- a/lib/Stripe/lib/EphemeralKey.php
+++ b/lib/Stripe/lib/EphemeralKey.php
@@ -11,7 +11,6 @@
* @property int $expires Time at which the key will expire. Measured in seconds since the Unix epoch.
* @property bool $livemode Has the value true
if the object exists in live mode or the value false
if the object exists in test mode.
* @property string $secret The key's secret. You can use this value to make authorized requests to the SimplePay\Vendor\Stripe API.
- * @property array $associated_objects
*/
class EphemeralKey extends ApiResource
{
diff --git a/lib/Stripe/lib/ErrorObject.php b/lib/Stripe/lib/ErrorObject.php
index eb968cfc..6bdf563c 100644
--- a/lib/Stripe/lib/ErrorObject.php
+++ b/lib/Stripe/lib/ErrorObject.php
@@ -40,28 +40,42 @@ class ErrorObject extends StripeObject
*
* @see https://stripe.com/docs/error-codes
*/
- const CODE_ACCOUNT_ALREADY_EXISTS = 'account_already_exists';
const CODE_ACCOUNT_COUNTRY_INVALID_ADDRESS = 'account_country_invalid_address';
+ const CODE_ACCOUNT_ERROR_COUNTRY_CHANGE_REQUIRES_ADDITIONAL_STEPS = 'account_error_country_change_requires_additional_steps';
+ const CODE_ACCOUNT_INFORMATION_MISMATCH = 'account_information_mismatch';
const CODE_ACCOUNT_INVALID = 'account_invalid';
const CODE_ACCOUNT_NUMBER_INVALID = 'account_number_invalid';
+ const CODE_ACSS_DEBIT_SESSION_INCOMPLETE = 'acss_debit_session_incomplete';
const CODE_ALIPAY_UPGRADE_REQUIRED = 'alipay_upgrade_required';
const CODE_AMOUNT_TOO_LARGE = 'amount_too_large';
const CODE_AMOUNT_TOO_SMALL = 'amount_too_small';
const CODE_API_KEY_EXPIRED = 'api_key_expired';
+ const CODE_AUTHENTICATION_REQUIRED = 'authentication_required';
const CODE_BALANCE_INSUFFICIENT = 'balance_insufficient';
+ const CODE_BANK_ACCOUNT_BAD_ROUTING_NUMBERS = 'bank_account_bad_routing_numbers';
+ const CODE_BANK_ACCOUNT_DECLINED = 'bank_account_declined';
const CODE_BANK_ACCOUNT_EXISTS = 'bank_account_exists';
const CODE_BANK_ACCOUNT_UNUSABLE = 'bank_account_unusable';
const CODE_BANK_ACCOUNT_UNVERIFIED = 'bank_account_unverified';
+ const CODE_BANK_ACCOUNT_VERIFICATION_FAILED = 'bank_account_verification_failed';
+ const CODE_BILLING_INVALID_MANDATE = 'billing_invalid_mandate';
const CODE_BITCOIN_UPGRADE_REQUIRED = 'bitcoin_upgrade_required';
+ const CODE_CARD_DECLINE_RATE_LIMIT_EXCEEDED = 'card_decline_rate_limit_exceeded';
const CODE_CARD_DECLINED = 'card_declined';
+ const CODE_CARDHOLDER_PHONE_NUMBER_REQUIRED = 'cardholder_phone_number_required';
const CODE_CHARGE_ALREADY_CAPTURED = 'charge_already_captured';
const CODE_CHARGE_ALREADY_REFUNDED = 'charge_already_refunded';
const CODE_CHARGE_DISPUTED = 'charge_disputed';
const CODE_CHARGE_EXCEEDS_SOURCE_LIMIT = 'charge_exceeds_source_limit';
const CODE_CHARGE_EXPIRED_FOR_CAPTURE = 'charge_expired_for_capture';
+ const CODE_CHARGE_INVALID_PARAMETER = 'charge_invalid_parameter';
+ const CODE_CLEARING_CODE_UNSUPPORTED = 'clearing_code_unsupported';
+ const CODE_COUNTRY_CODE_INVALID = 'country_code_invalid';
const CODE_COUNTRY_UNSUPPORTED = 'country_unsupported';
const CODE_COUPON_EXPIRED = 'coupon_expired';
+ const CODE_CUSTOMER_MAX_PAYMENT_METHODS = 'customer_max_payment_methods';
const CODE_CUSTOMER_MAX_SUBSCRIPTIONS = 'customer_max_subscriptions';
+ const CODE_DEBIT_NOT_AUTHORIZED = 'debit_not_authorized';
const CODE_EMAIL_INVALID = 'email_invalid';
const CODE_EXPIRED_CARD = 'expired_card';
const CODE_IDEMPOTENCY_KEY_IN_USE = 'idempotency_key_in_use';
@@ -69,8 +83,13 @@ class ErrorObject extends StripeObject
const CODE_INCORRECT_CVC = 'incorrect_cvc';
const CODE_INCORRECT_NUMBER = 'incorrect_number';
const CODE_INCORRECT_ZIP = 'incorrect_zip';
+ const CODE_INSTANT_PAYOUTS_LIMIT_EXCEEDED = 'instant_payouts_limit_exceeded';
const CODE_INSTANT_PAYOUTS_UNSUPPORTED = 'instant_payouts_unsupported';
+ const CODE_INSUFFICIENT_FUNDS = 'insufficient_funds';
+ const CODE_INTENT_INVALID_STATE = 'intent_invalid_state';
+ const CODE_INTENT_VERIFICATION_METHOD_MISSING = 'intent_verification_method_missing';
const CODE_INVALID_CARD_TYPE = 'invalid_card_type';
+ const CODE_INVALID_CHARACTERS = 'invalid_characters';
const CODE_INVALID_CHARGE_AMOUNT = 'invalid_charge_amount';
const CODE_INVALID_CVC = 'invalid_cvc';
const CODE_INVALID_EXPIRY_MONTH = 'invalid_expiry_month';
@@ -78,18 +97,17 @@ class ErrorObject extends StripeObject
const CODE_INVALID_NUMBER = 'invalid_number';
const CODE_INVALID_SOURCE_USAGE = 'invalid_source_usage';
const CODE_INVOICE_NO_CUSTOMER_LINE_ITEMS = 'invoice_no_customer_line_items';
+ const CODE_INVOICE_NO_PAYMENT_METHOD_TYPES = 'invoice_no_payment_method_types';
const CODE_INVOICE_NO_SUBSCRIPTION_LINE_ITEMS = 'invoice_no_subscription_line_items';
const CODE_INVOICE_NOT_EDITABLE = 'invoice_not_editable';
+ const CODE_INVOICE_ON_BEHALF_OF_NOT_EDITABLE = 'invoice_on_behalf_of_not_editable';
const CODE_INVOICE_PAYMENT_INTENT_REQUIRES_ACTION = 'invoice_payment_intent_requires_action';
const CODE_INVOICE_UPCOMING_NONE = 'invoice_upcoming_none';
const CODE_LIVEMODE_MISMATCH = 'livemode_mismatch';
const CODE_LOCK_TIMEOUT = 'lock_timeout';
const CODE_MISSING = 'missing';
+ const CODE_NO_ACCOUNT = 'no_account';
const CODE_NOT_ALLOWED_ON_STANDARD_ACCOUNT = 'not_allowed_on_standard_account';
- const CODE_ORDER_CREATION_FAILED = 'order_creation_failed';
- const CODE_ORDER_REQUIRED_SETTINGS = 'order_required_settings';
- const CODE_ORDER_STATUS_INVALID = 'order_status_invalid';
- const CODE_ORDER_UPSTREAM_TIMEOUT = 'order_upstream_timeout';
const CODE_OUT_OF_INVENTORY = 'out_of_inventory';
const CODE_PARAMETER_INVALID_EMPTY = 'parameter_invalid_empty';
const CODE_PARAMETER_INVALID_INTEGER = 'parameter_invalid_integer';
@@ -98,38 +116,64 @@ class ErrorObject extends StripeObject
const CODE_PARAMETER_MISSING = 'parameter_missing';
const CODE_PARAMETER_UNKNOWN = 'parameter_unknown';
const CODE_PARAMETERS_EXCLUSIVE = 'parameters_exclusive';
+ const CODE_PAYMENT_INTENT_ACTION_REQUIRED = 'payment_intent_action_required';
const CODE_PAYMENT_INTENT_AUTHENTICATION_FAILURE = 'payment_intent_authentication_failure';
const CODE_PAYMENT_INTENT_INCOMPATIBLE_PAYMENT_METHOD = 'payment_intent_incompatible_payment_method';
const CODE_PAYMENT_INTENT_INVALID_PARAMETER = 'payment_intent_invalid_parameter';
+ const CODE_PAYMENT_INTENT_KONBINI_REJECTED_CONFIRMATION_NUMBER = 'payment_intent_konbini_rejected_confirmation_number';
+ const CODE_PAYMENT_INTENT_MANDATE_INVALID = 'payment_intent_mandate_invalid';
+ const CODE_PAYMENT_INTENT_PAYMENT_ATTEMPT_EXPIRED = 'payment_intent_payment_attempt_expired';
const CODE_PAYMENT_INTENT_PAYMENT_ATTEMPT_FAILED = 'payment_intent_payment_attempt_failed';
const CODE_PAYMENT_INTENT_UNEXPECTED_STATE = 'payment_intent_unexpected_state';
+ const CODE_PAYMENT_METHOD_BANK_ACCOUNT_ALREADY_VERIFIED = 'payment_method_bank_account_already_verified';
+ const CODE_PAYMENT_METHOD_BANK_ACCOUNT_BLOCKED = 'payment_method_bank_account_blocked';
+ const CODE_PAYMENT_METHOD_BILLING_DETAILS_ADDRESS_MISSING = 'payment_method_billing_details_address_missing';
+ const CODE_PAYMENT_METHOD_CURRENCY_MISMATCH = 'payment_method_currency_mismatch';
+ const CODE_PAYMENT_METHOD_INVALID_PARAMETER = 'payment_method_invalid_parameter';
+ const CODE_PAYMENT_METHOD_INVALID_PARAMETER_TESTMODE = 'payment_method_invalid_parameter_testmode';
+ const CODE_PAYMENT_METHOD_MICRODEPOSIT_FAILED = 'payment_method_microdeposit_failed';
+ const CODE_PAYMENT_METHOD_MICRODEPOSIT_VERIFICATION_AMOUNTS_INVALID = 'payment_method_microdeposit_verification_amounts_invalid';
+ const CODE_PAYMENT_METHOD_MICRODEPOSIT_VERIFICATION_AMOUNTS_MISMATCH = 'payment_method_microdeposit_verification_amounts_mismatch';
+ const CODE_PAYMENT_METHOD_MICRODEPOSIT_VERIFICATION_ATTEMPTS_EXCEEDED = 'payment_method_microdeposit_verification_attempts_exceeded';
+ const CODE_PAYMENT_METHOD_MICRODEPOSIT_VERIFICATION_DESCRIPTOR_CODE_MISMATCH = 'payment_method_microdeposit_verification_descriptor_code_mismatch';
+ const CODE_PAYMENT_METHOD_MICRODEPOSIT_VERIFICATION_TIMEOUT = 'payment_method_microdeposit_verification_timeout';
+ const CODE_PAYMENT_METHOD_PROVIDER_DECLINE = 'payment_method_provider_decline';
+ const CODE_PAYMENT_METHOD_PROVIDER_TIMEOUT = 'payment_method_provider_timeout';
const CODE_PAYMENT_METHOD_UNACTIVATED = 'payment_method_unactivated';
const CODE_PAYMENT_METHOD_UNEXPECTED_STATE = 'payment_method_unexpected_state';
+ const CODE_PAYMENT_METHOD_UNSUPPORTED_TYPE = 'payment_method_unsupported_type';
const CODE_PAYOUTS_NOT_ALLOWED = 'payouts_not_allowed';
+ const CODE_PLATFORM_ACCOUNT_REQUIRED = 'platform_account_required';
const CODE_PLATFORM_API_KEY_EXPIRED = 'platform_api_key_expired';
const CODE_POSTAL_CODE_INVALID = 'postal_code_invalid';
const CODE_PROCESSING_ERROR = 'processing_error';
const CODE_PRODUCT_INACTIVE = 'product_inactive';
const CODE_RATE_LIMIT = 'rate_limit';
+ const CODE_REFER_TO_CUSTOMER = 'refer_to_customer';
+ const CODE_REFUND_DISPUTED_PAYMENT = 'refund_disputed_payment';
const CODE_RESOURCE_ALREADY_EXISTS = 'resource_already_exists';
const CODE_RESOURCE_MISSING = 'resource_missing';
+ const CODE_RETURN_INTENT_ALREADY_PROCESSED = 'return_intent_already_processed';
const CODE_ROUTING_NUMBER_INVALID = 'routing_number_invalid';
const CODE_SECRET_KEY_REQUIRED = 'secret_key_required';
const CODE_SEPA_UNSUPPORTED_ACCOUNT = 'sepa_unsupported_account';
const CODE_SETUP_ATTEMPT_FAILED = 'setup_attempt_failed';
const CODE_SETUP_INTENT_AUTHENTICATION_FAILURE = 'setup_intent_authentication_failure';
+ const CODE_SETUP_INTENT_INVALID_PARAMETER = 'setup_intent_invalid_parameter';
+ const CODE_SETUP_INTENT_SETUP_ATTEMPT_EXPIRED = 'setup_intent_setup_attempt_expired';
const CODE_SETUP_INTENT_UNEXPECTED_STATE = 'setup_intent_unexpected_state';
const CODE_SHIPPING_CALCULATION_FAILED = 'shipping_calculation_failed';
const CODE_SKU_INACTIVE = 'sku_inactive';
const CODE_STATE_UNSUPPORTED = 'state_unsupported';
const CODE_TAX_ID_INVALID = 'tax_id_invalid';
const CODE_TAXES_CALCULATION_FAILED = 'taxes_calculation_failed';
+ const CODE_TERMINAL_LOCATION_COUNTRY_UNSUPPORTED = 'terminal_location_country_unsupported';
const CODE_TESTMODE_CHARGES_ONLY = 'testmode_charges_only';
const CODE_TLS_VERSION_UNSUPPORTED = 'tls_version_unsupported';
const CODE_TOKEN_ALREADY_USED = 'token_already_used';
const CODE_TOKEN_IN_USE = 'token_in_use';
+ const CODE_TRANSFER_SOURCE_BALANCE_PARAMETERS_MISMATCH = 'transfer_source_balance_parameters_mismatch';
const CODE_TRANSFERS_NOT_ALLOWED = 'transfers_not_allowed';
- const CODE_UPSTREAM_ORDER_CREATION_FAILED = 'upstream_order_creation_failed';
const CODE_URL_INVALID = 'url_invalid';
/**
diff --git a/lib/Stripe/lib/Event.php b/lib/Stripe/lib/Event.php
index f11fdd9b..8882c6d2 100644
--- a/lib/Stripe/lib/Event.php
+++ b/lib/Stripe/lib/Event.php
@@ -118,6 +118,11 @@ class Event extends ApiResource
const CUSTOMER_TAX_ID_UPDATED = 'customer.tax_id.updated';
const CUSTOMER_UPDATED = 'customer.updated';
const FILE_CREATED = 'file.created';
+ const FINANCIAL_CONNECTIONS_ACCOUNT_CREATED = 'financial_connections.account.created';
+ const FINANCIAL_CONNECTIONS_ACCOUNT_DEACTIVATED = 'financial_connections.account.deactivated';
+ const FINANCIAL_CONNECTIONS_ACCOUNT_DISCONNECTED = 'financial_connections.account.disconnected';
+ const FINANCIAL_CONNECTIONS_ACCOUNT_REACTIVATED = 'financial_connections.account.reactivated';
+ const FINANCIAL_CONNECTIONS_ACCOUNT_REFRESHED_BALANCE = 'financial_connections.account.refreshed_balance';
const IDENTITY_VERIFICATION_SESSION_CANCELED = 'identity.verification_session.canceled';
const IDENTITY_VERIFICATION_SESSION_CREATED = 'identity.verification_session.created';
const IDENTITY_VERIFICATION_SESSION_PROCESSING = 'identity.verification_session.processing';
@@ -140,7 +145,6 @@ class Event extends ApiResource
const INVOICEITEM_CREATED = 'invoiceitem.created';
const INVOICEITEM_DELETED = 'invoiceitem.deleted';
const INVOICEITEM_UPDATED = 'invoiceitem.updated';
- const ISSUER_FRAUD_RECORD_CREATED = 'issuer_fraud_record.created';
const ISSUING_AUTHORIZATION_CREATED = 'issuing_authorization.created';
const ISSUING_AUTHORIZATION_REQUEST = 'issuing_authorization.request';
const ISSUING_AUTHORIZATION_UPDATED = 'issuing_authorization.updated';
@@ -157,10 +161,6 @@ class Event extends ApiResource
const ISSUING_TRANSACTION_UPDATED = 'issuing_transaction.updated';
const MANDATE_UPDATED = 'mandate.updated';
const ORDER_CREATED = 'order.created';
- const ORDER_PAYMENT_FAILED = 'order.payment_failed';
- const ORDER_PAYMENT_SUCCEEDED = 'order.payment_succeeded';
- const ORDER_UPDATED = 'order.updated';
- const ORDER_RETURN_CREATED = 'order_return.created';
const PAYMENT_INTENT_AMOUNT_CAPTURABLE_UPDATED = 'payment_intent.amount_capturable_updated';
const PAYMENT_INTENT_CANCELED = 'payment_intent.canceled';
const PAYMENT_INTENT_CREATED = 'payment_intent.created';
@@ -173,7 +173,6 @@ class Event extends ApiResource
const PAYMENT_LINK_UPDATED = 'payment_link.updated';
const PAYMENT_METHOD_ATTACHED = 'payment_method.attached';
const PAYMENT_METHOD_AUTOMATICALLY_UPDATED = 'payment_method.automatically_updated';
- const PAYMENT_METHOD_CARD_AUTOMATICALLY_UPDATED = 'payment_method.card_automatically_updated';
const PAYMENT_METHOD_DETACHED = 'payment_method.detached';
const PAYMENT_METHOD_UPDATED = 'payment_method.updated';
const PAYOUT_CANCELED = 'payout.canceled';
@@ -184,7 +183,6 @@ class Event extends ApiResource
const PERSON_CREATED = 'person.created';
const PERSON_DELETED = 'person.deleted';
const PERSON_UPDATED = 'person.updated';
- const PING = 'ping';
const PLAN_CREATED = 'plan.created';
const PLAN_DELETED = 'plan.deleted';
const PLAN_UPDATED = 'plan.updated';
@@ -195,7 +193,6 @@ class Event extends ApiResource
const PRODUCT_DELETED = 'product.deleted';
const PRODUCT_UPDATED = 'product.updated';
const PROMOTION_CODE_CREATED = 'promotion_code.created';
- const PROMOTION_CODE_DELETED = 'promotion_code.deleted';
const PROMOTION_CODE_UPDATED = 'promotion_code.updated';
const QUOTE_ACCEPTED = 'quote.accepted';
const QUOTE_CANCELED = 'quote.canceled';
@@ -249,8 +246,6 @@ class Event extends ApiResource
const TOPUP_REVERSED = 'topup.reversed';
const TOPUP_SUCCEEDED = 'topup.succeeded';
const TRANSFER_CREATED = 'transfer.created';
- const TRANSFER_FAILED = 'transfer.failed';
- const TRANSFER_PAID = 'transfer.paid';
const TRANSFER_REVERSED = 'transfer.reversed';
const TRANSFER_UPDATED = 'transfer.updated';
const TREASURY_CREDIT_REVERSAL_CREATED = 'treasury.credit_reversal.created';
@@ -279,7 +274,6 @@ class Event extends ApiResource
const TREASURY_OUTBOUND_TRANSFER_RETURNED = 'treasury.outbound_transfer.returned';
const TREASURY_RECEIVED_CREDIT_CREATED = 'treasury.received_credit.created';
const TREASURY_RECEIVED_CREDIT_FAILED = 'treasury.received_credit.failed';
- const TREASURY_RECEIVED_CREDIT_REVERSED = 'treasury.received_credit.reversed';
const TREASURY_RECEIVED_CREDIT_SUCCEEDED = 'treasury.received_credit.succeeded';
const TREASURY_RECEIVED_DEBIT_CREATED = 'treasury.received_debit.created';
}
diff --git a/lib/Stripe/lib/File.php b/lib/Stripe/lib/File.php
index 48c55cf0..7f510077 100644
--- a/lib/Stripe/lib/File.php
+++ b/lib/Stripe/lib/File.php
@@ -59,11 +59,6 @@ class File extends ApiResource
create as protected _create;
}
- public static function classUrl()
- {
- return '/v1/files';
- }
-
/**
* @param null|array $params
* @param null|array|string $opts
diff --git a/lib/Stripe/lib/FinancialConnections/Account.php b/lib/Stripe/lib/FinancialConnections/Account.php
index aabb03ea..35785f09 100644
--- a/lib/Stripe/lib/FinancialConnections/Account.php
+++ b/lib/Stripe/lib/FinancialConnections/Account.php
@@ -67,9 +67,9 @@ public function disconnect($params = null, $opts = null)
}
/**
+ * @param string $id
* @param null|array $params
* @param null|array|string $opts
- * @param mixed $id
*
* @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
*
diff --git a/lib/Stripe/lib/Invoice.php b/lib/Stripe/lib/Invoice.php
index dff7bcf6..1ad3c86e 100644
--- a/lib/Stripe/lib/Invoice.php
+++ b/lib/Stripe/lib/Invoice.php
@@ -48,7 +48,7 @@
* @property null|(string|\SimplePay\Vendor\Stripe\TaxId)[] $account_tax_ids The account tax IDs associated with the invoice. Only editable when the invoice is a draft.
* @property int $amount_due Final amount due at this time for this invoice. If the invoice's total is smaller than the minimum charge amount, for example, or if there is account credit that can be applied to the invoice, the amount_due
may be 0. If there is a positive starting_balance
for the invoice (the customer owes money), the amount_due
will also take that into account. The charge that gets generated for the invoice will be for the amount specified in amount_due
.
* @property int $amount_paid The amount, in %s, that was paid.
- * @property int $amount_remaining The amount remaining, in %s, that is due.
+ * @property int $amount_remaining The difference between amount_due and amount_paid, in %s.
* @property null|string|\SimplePay\Vendor\Stripe\StripeObject $application ID of the Connect Application that created the invoice.
* @property null|int $application_fee_amount The fee in %s that will be applied to the invoice and transferred to the application owner's SimplePay\Vendor\Stripe account when the invoice is paid.
* @property int $attempt_count Number of payment attempts made for this invoice, from the perspective of the payment retry schedule. Any payment attempt counts as the first attempt, and subsequently only automatic retries increment the attempt count. In other words, manual payment attempts after the first attempt do not affect the retry schedule.
@@ -70,7 +70,7 @@
* @property null|string $customer_tax_exempt The customer's tax exempt status. Until the invoice is finalized, this field will equal customer.tax_exempt
. Once the invoice is finalized, this field will no longer be updated.
* @property null|\SimplePay\Vendor\Stripe\StripeObject[] $customer_tax_ids The customer's tax IDs. Until the invoice is finalized, this field will contain the same tax IDs as customer.tax_ids
. Once the invoice is finalized, this field will no longer be updated.
* @property null|string|\SimplePay\Vendor\Stripe\PaymentMethod $default_payment_method ID of the default payment method for the invoice. It must belong to the customer associated with the invoice. If not set, defaults to the subscription's default payment method, if any, or to the default payment method in the customer's invoice settings.
- * @property null|string|\SimplePay\Vendor\Stripe\Account|\SimplePay\Vendor\Stripe\AlipayAccount|\SimplePay\Vendor\Stripe\BankAccount|\SimplePay\Vendor\Stripe\BitcoinReceiver|\SimplePay\Vendor\Stripe\Card|\SimplePay\Vendor\Stripe\Source $default_source ID of the default payment source for the invoice. It must belong to the customer associated with the invoice and be in a chargeable state. If not set, defaults to the subscription's default source, if any, or to the customer's default source.
+ * @property null|string|\SimplePay\Vendor\Stripe\Account|\SimplePay\Vendor\Stripe\BankAccount|\SimplePay\Vendor\Stripe\Card|\SimplePay\Vendor\Stripe\Source $default_source ID of the default payment source for the invoice. It must belong to the customer associated with the invoice and be in a chargeable state. If not set, defaults to the subscription's default source, if any, or to the customer's default source.
* @property \SimplePay\Vendor\Stripe\TaxRate[] $default_tax_rates The tax rates applied to this invoice, if any.
* @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users. Referenced as 'memo' in the Dashboard.
* @property null|\SimplePay\Vendor\Stripe\Discount $discount Describes the current discount applied to this invoice, if there is one. Not populated if there are multiple discounts.
@@ -97,19 +97,23 @@
* @property int $pre_payment_credit_notes_amount Total amount of all pre-payment credit notes issued for this invoice.
* @property null|string|\SimplePay\Vendor\Stripe\Quote $quote The quote this invoice was generated from.
* @property null|string $receipt_number This is the transaction number that appears on email receipts sent for this invoice.
+ * @property null|\SimplePay\Vendor\Stripe\StripeObject $rendering_options Options for invoice PDF rendering.
* @property int $starting_balance Starting customer balance before the invoice is finalized. If the invoice has not been finalized yet, this will be the current customer balance.
* @property null|string $statement_descriptor Extra information about an invoice for the customer's credit card statement.
* @property null|string $status The status of the invoice, one of draft
, open
, paid
, uncollectible
, or void
. Learn more
* @property \SimplePay\Vendor\Stripe\StripeObject $status_transitions
* @property null|string|\SimplePay\Vendor\Stripe\Subscription $subscription The subscription that this invoice was prepared for, if any.
* @property int $subscription_proration_date Only set for upcoming invoices that preview prorations. The time used to calculate prorations.
- * @property int $subtotal Total of all subscriptions, invoice items, and prorations on the invoice before any invoice level discount or tax is applied. Item discounts are already incorporated
+ * @property int $subtotal Total of all subscriptions, invoice items, and prorations on the invoice before any invoice level discount or exclusive tax is applied. Item discounts are already incorporated
+ * @property null|int $subtotal_excluding_tax The integer amount in %s representing the subtotal of the invoice before any invoice level discount or tax is applied. Item discounts are already incorporated
* @property null|int $tax The amount of tax on this invoice. This is the sum of all the tax amounts on this invoice.
* @property null|string|\SimplePay\Vendor\Stripe\TestHelpers\TestClock $test_clock ID of the test clock this invoice belongs to.
* @property \SimplePay\Vendor\Stripe\StripeObject $threshold_reason
* @property int $total Total after discounts and taxes.
* @property null|\SimplePay\Vendor\Stripe\StripeObject[] $total_discount_amounts The aggregate amounts calculated per discount across all line items.
+ * @property null|int $total_excluding_tax The integer amount in %s representing the total amount of the invoice including all discounts but excluding all tax.
* @property \SimplePay\Vendor\Stripe\StripeObject[] $total_tax_amounts The aggregate amounts calculated per tax rate for all line items.
+ * @property null|\SimplePay\Vendor\Stripe\StripeObject $transfer_data The account (if any) the payment will be attributed to for tax reporting, and where funds from the payment will be transferred to for the invoice.
* @property null|int $webhooks_delivered_at Invoices are automatically paid or sent 1 hour after webhooks are delivered, or until all webhook delivery attempts have been exhausted. This field tracks the time when webhooks for this invoice were successfully delivered. If the invoice had no webhooks to deliver, this will be set while the invoice is being created.
*/
class Invoice extends ApiResource
@@ -119,6 +123,7 @@ class Invoice extends ApiResource
use ApiOperations\All;
use ApiOperations\Create;
use ApiOperations\Delete;
+ use ApiOperations\NestedResource;
use ApiOperations\Retrieve;
use ApiOperations\Search;
use ApiOperations\Update;
@@ -126,6 +131,7 @@ class Invoice extends ApiResource
const BILLING_CHARGE_AUTOMATICALLY = 'charge_automatically';
const BILLING_SEND_INVOICE = 'send_invoice';
+ const BILLING_REASON_AUTOMATIC_PENDING_INVOICE_ITEM_INVOICE = 'automatic_pending_invoice_item_invoice';
const BILLING_REASON_MANUAL = 'manual';
const BILLING_REASON_QUOTE_ACCEPT = 'quote_accept';
const BILLING_REASON_SUBSCRIPTION = 'subscription';
@@ -145,24 +151,6 @@ class Invoice extends ApiResource
const STATUS_UNCOLLECTIBLE = 'uncollectible';
const STATUS_VOID = 'void';
- use ApiOperations\NestedResource;
-
- const PATH_LINES = '/lines';
-
- /**
- * @param string $id the ID of the invoice on which to retrieve the lines
- * @param null|array $params
- * @param null|array|string $opts
- *
- * @throws StripeExceptionApiErrorException if the request fails
- *
- * @return \SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\InvoiceLineItem> the list of lines (InvoiceLineItem)
- */
- public static function allLines($id, $params = null, $opts = null)
- {
- return self::_allNestedResources($id, static::PATH_LINES, $params, $opts);
- }
-
/**
* @param null|array $params
* @param null|array|string $opts
@@ -249,6 +237,24 @@ public static function upcoming($params = null, $opts = null)
return $obj;
}
+ /**
+ * @param null|array $params
+ * @param null|array|string $opts
+ *
+ * @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
+ *
+ * @return \SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\InvoiceLineItem> list of InvoiceLineItems
+ */
+ public static function upcomingLines($params = null, $opts = null)
+ {
+ $url = static::classUrl() . '/upcoming/lines';
+ list($response, $opts) = static::_staticRequest('get', $url, $params, $opts);
+ $obj = \SimplePay\Vendor\Stripe\Util\Util::convertToStripeObject($response->json, $opts);
+ $obj->setLastResponse($response);
+
+ return $obj;
+ }
+
/**
* @param null|array $params
* @param null|array|string $opts
@@ -280,4 +286,20 @@ public static function search($params = null, $opts = null)
return self::_searchResource($url, $params, $opts);
}
+
+ const PATH_LINES = '/lines';
+
+ /**
+ * @param string $id the ID of the invoice on which to retrieve the line items
+ * @param null|array $params
+ * @param null|array|string $opts
+ *
+ * @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
+ *
+ * @return \SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\LineItem> the list of line items
+ */
+ public static function allLines($id, $params = null, $opts = null)
+ {
+ return self::_allNestedResources($id, static::PATH_LINES, $params, $opts);
+ }
}
diff --git a/lib/Stripe/lib/InvoiceLineItem.php b/lib/Stripe/lib/InvoiceLineItem.php
index 46ffdb98..d2b01973 100644
--- a/lib/Stripe/lib/InvoiceLineItem.php
+++ b/lib/Stripe/lib/InvoiceLineItem.php
@@ -8,6 +8,7 @@
* @property string $id Unique identifier for the object.
* @property string $object String representing the object's type. Objects of the same type share the same value.
* @property int $amount The amount, in %s.
+ * @property null|int $amount_excluding_tax The integer amount in %s representing the amount for this line item, excluding all tax and discounts.
* @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency.
* @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users.
* @property null|\SimplePay\Vendor\Stripe\StripeObject[] $discount_amounts The amount of discount calculated per discount for this line item.
@@ -27,6 +28,7 @@
* @property \SimplePay\Vendor\Stripe\StripeObject[] $tax_amounts The amount of tax calculated per tax rate for this line item
* @property \SimplePay\Vendor\Stripe\TaxRate[] $tax_rates The tax rates which apply to the line item.
* @property string $type A string identifying the type of the source of this line item, either an invoiceitem
or a subscription
.
+ * @property null|string $unit_amount_excluding_tax The amount in %s representing the unit amount for this line item, excluding all tax and discounts.
*/
class InvoiceLineItem extends ApiResource
{
diff --git a/lib/Stripe/lib/Issuing/Card.php b/lib/Stripe/lib/Issuing/Card.php
index 279f725e..c5d86091 100644
--- a/lib/Stripe/lib/Issuing/Card.php
+++ b/lib/Stripe/lib/Issuing/Card.php
@@ -14,7 +14,7 @@
* @property null|string $cancellation_reason The reason why the card was canceled.
* @property \SimplePay\Vendor\Stripe\Issuing\Cardholder $cardholder An Issuing Cardholder
object represents an individual or business entity who is issued cards.
Related guide: How to create a Cardholder
* @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. - * @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency. + * @property string $currency Three-letter ISO currency code, in lowercase. Supported currencies areusd
in the US, eur
in the EU, and gbp
in the UK.
* @property string $cvc The card's CVC. For security reasons, this is only available for virtual cards, and will be omitted unless you explicitly request it with the expand
parameter. Additionally, it's only available via the "Retrieve a card" endpoint, not via "List all cards" or any other endpoint.
* @property int $exp_month The expiration month of the card.
* @property int $exp_year The expiration year of the card.
@@ -40,22 +40,4 @@ class Card extends \SimplePay\Vendor\Stripe\ApiResource
use \SimplePay\Vendor\Stripe\ApiOperations\Create;
use \SimplePay\Vendor\Stripe\ApiOperations\Retrieve;
use \SimplePay\Vendor\Stripe\ApiOperations\Update;
-
- /**
- * @param null|array $params
- * @param null|array|string $opts
- *
- * @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
- *
- * @return \SimplePay\Vendor\Stripe\Issuing\CardDetails the card details associated with that issuing card
- */
- public function details($params = null, $opts = null)
- {
- $url = $this->instanceUrl() . '/details';
- list($response, $opts) = $this->_request('get', $url, $params, $opts);
- $obj = \SimplePay\Vendor\Stripe\Util\Util::convertToStripeObject($response, $opts);
- $obj->setLastResponse($response);
-
- return $obj;
- }
}
diff --git a/lib/Stripe/lib/Issuing/Dispute.php b/lib/Stripe/lib/Issuing/Dispute.php
index 1125faab..2a4bebfe 100644
--- a/lib/Stripe/lib/Issuing/Dispute.php
+++ b/lib/Stripe/lib/Issuing/Dispute.php
@@ -15,7 +15,7 @@
*
* @property string $id Unique identifier for the object.
* @property string $object String representing the object's type. Objects of the same type share the same value.
- * @property int $amount Disputed amount. Usually the amount of the transaction
, but can differ (usually because of currency fluctuation).
+ * @property int $amount Disputed amount in the card's currency and in the smallest currency unit. Usually the amount of the transaction
, but can differ (usually because of currency fluctuation).
* @property null|\SimplePay\Vendor\Stripe\BalanceTransaction[] $balance_transactions List of balance transactions associated with the dispute.
* @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
* @property string $currency The currency the transaction
was made in.
diff --git a/lib/Stripe/lib/LineItem.php b/lib/Stripe/lib/LineItem.php
index 74e0df89..4209b855 100644
--- a/lib/Stripe/lib/LineItem.php
+++ b/lib/Stripe/lib/LineItem.php
@@ -24,6 +24,4 @@
class LineItem extends ApiResource
{
const OBJECT_NAME = 'item';
-
- use ApiOperations\All;
}
diff --git a/lib/Stripe/lib/Order.php b/lib/Stripe/lib/Order.php
index 927ac0bc..3ce7db70 100644
--- a/lib/Stripe/lib/Order.php
+++ b/lib/Stripe/lib/Order.php
@@ -68,9 +68,9 @@ public function cancel($params = null, $opts = null)
}
/**
+ * @param string $id
* @param null|array $params
* @param null|array|string $opts
- * @param mixed $id
*
* @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
*
diff --git a/lib/Stripe/lib/OrderItem.php b/lib/Stripe/lib/OrderItem.php
deleted file mode 100644
index 01e7e56f..00000000
--- a/lib/Stripe/lib/OrderItem.php
+++ /dev/null
@@ -1,19 +0,0 @@
-Indicates that you intend to make future payments with this PaymentIntent's payment method.Providing this parameter will attach the payment method to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be attached to a Customer after the transaction completes.
When processing card payments, SimplePay\Vendor\Stripe also uses setup_future_usage
to dynamically optimize your payment flow and comply with regional legislation and network rules, such as SCA.
requires_payment_method
, requires_confirmation
, requires_action
, processing
, requires_capture
, canceled
, or succeeded
. Read more about each PaymentIntent status.
diff --git a/lib/Stripe/lib/PaymentLink.php b/lib/Stripe/lib/PaymentLink.php
index a3c9bd36..ea71e3e1 100644
--- a/lib/Stripe/lib/PaymentLink.php
+++ b/lib/Stripe/lib/PaymentLink.php
@@ -64,9 +64,9 @@ class PaymentLink extends ApiResource
const SUBMIT_TYPE_PAY = 'pay';
/**
+ * @param string $id
* @param null|array $params
* @param null|array|string $opts
- * @param mixed $id
*
* @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
*
diff --git a/lib/Stripe/lib/PaymentMethod.php b/lib/Stripe/lib/PaymentMethod.php
index af8a3fdc..4be14a3d 100644
--- a/lib/Stripe/lib/PaymentMethod.php
+++ b/lib/Stripe/lib/PaymentMethod.php
@@ -26,6 +26,7 @@
* @property \SimplePay\Vendor\Stripe\StripeObject $bacs_debit
* @property \SimplePay\Vendor\Stripe\StripeObject $bancontact
* @property \SimplePay\Vendor\Stripe\StripeObject $billing_details
+ * @property \SimplePay\Vendor\Stripe\StripeObject $blik
* @property \SimplePay\Vendor\Stripe\StripeObject $boleto
* @property \SimplePay\Vendor\Stripe\StripeObject $card
* @property \SimplePay\Vendor\Stripe\StripeObject $card_present
@@ -46,6 +47,7 @@
* @property \SimplePay\Vendor\Stripe\StripeObject $oxxo
* @property \SimplePay\Vendor\Stripe\StripeObject $p24
* @property \SimplePay\Vendor\Stripe\StripeObject $paynow
+ * @property \SimplePay\Vendor\Stripe\StripeObject $promptpay
* @property \SimplePay\Vendor\Stripe\StripeObject $radar_options Options to configure Radar. See Radar Session for more information.
* @property \SimplePay\Vendor\Stripe\StripeObject $sepa_debit
* @property \SimplePay\Vendor\Stripe\StripeObject $sofort
diff --git a/lib/Stripe/lib/Payout.php b/lib/Stripe/lib/Payout.php
index b0fa1edb..7053df01 100644
--- a/lib/Stripe/lib/Payout.php
+++ b/lib/Stripe/lib/Payout.php
@@ -53,7 +53,9 @@ class Payout extends ApiResource
const FAILURE_COULD_NOT_PROCESS = 'could_not_process';
const FAILURE_DEBIT_NOT_AUTHORIZED = 'debit_not_authorized';
const FAILURE_DECLINED = 'declined';
+ const FAILURE_INCORRECT_ACCOUNT_HOLDER_ADDRESS = 'incorrect_account_holder_address';
const FAILURE_INCORRECT_ACCOUNT_HOLDER_NAME = 'incorrect_account_holder_name';
+ const FAILURE_INCORRECT_ACCOUNT_HOLDER_TAX_ID = 'incorrect_account_holder_tax_id';
const FAILURE_INSUFFICIENT_FUNDS = 'insufficient_funds';
const FAILURE_INVALID_ACCOUNT_NUMBER = 'invalid_account_number';
const FAILURE_INVALID_CURRENCY = 'invalid_currency';
diff --git a/lib/Stripe/lib/Price.php b/lib/Stripe/lib/Price.php
index 2bbc6b82..1ebc7a0f 100644
--- a/lib/Stripe/lib/Price.php
+++ b/lib/Stripe/lib/Price.php
@@ -29,6 +29,8 @@
* @property string $billing_scheme Describes how to compute the price per period. Either per_unit
or tiered
. per_unit
indicates that the fixed amount (specified in unit_amount
or unit_amount_decimal
) will be charged per unit in quantity
(for prices with usage_type=licensed
), or per unit of total usage (for prices with usage_type=metered
). tiered
indicates that the unit pricing will be computed using a tiering strategy as defined using the tiers
and tiers_mode
attributes.
* @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
* @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency.
+ * @property \SimplePay\Vendor\Stripe\StripeObject $currency_options Prices defined in each available currency option. Each key must be a three-letter ISO currency code and a supported currency.
+ * @property null|\SimplePay\Vendor\Stripe\StripeObject $custom_unit_amount When set, provides configuration for the amount to be adjusted by the customer during Checkout Sessions and Payment Links.
* @property bool $livemode Has the value true
if the object exists in live mode or the value false
if the object exists in test mode.
* @property null|string $lookup_key A lookup key used to retrieve prices dynamically from a static string. This may be up to 200 characters.
* @property \SimplePay\Vendor\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
diff --git a/lib/Stripe/lib/Quote.php b/lib/Stripe/lib/Quote.php
index 36df97e7..ef786c22 100644
--- a/lib/Stripe/lib/Quote.php
+++ b/lib/Stripe/lib/Quote.php
@@ -132,9 +132,9 @@ public function finalizeQuote($params = null, $opts = null)
}
/**
+ * @param string $id
* @param null|array $params
* @param null|array|string $opts
- * @param mixed $id
*
* @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
*
@@ -151,9 +151,9 @@ public static function allComputedUpfrontLineItems($id, $params = null, $opts =
}
/**
+ * @param string $id
* @param null|array $params
* @param null|array|string $opts
- * @param mixed $id
*
* @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
*
diff --git a/lib/Stripe/lib/Recipient.php b/lib/Stripe/lib/Recipient.php
deleted file mode 100644
index 34d159b8..00000000
--- a/lib/Stripe/lib/Recipient.php
+++ /dev/null
@@ -1,44 +0,0 @@
-Recipient objects, you can transfer money from your SimplePay\Vendor\Stripe
- * account to a third-party bank account or debit card. The API allows you to
- * create, delete, and update your recipients. You can retrieve individual
- * recipients as well as a list of all your recipients.
- *
- * Recipient
objects have been deprecated in favor of Connect, specifically Connect's much
- * more powerful Account objects.
- * SimplePay\Vendor\Stripe accounts that don't already use recipients can no longer begin doing so.
- * Please use Account
objects instead.
- *
- * @property string $id Unique identifier for the object.
- * @property string $object String representing the object's type. Objects of the same type share the same value.
- * @property null|\SimplePay\Vendor\Stripe\BankAccount $active_account Hash describing the current account on the recipient, if there is one.
- * @property null|\SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\Card> $cards
- * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
- * @property null|string|\SimplePay\Vendor\Stripe\Card $default_card The default card to use for creating transfers to this recipient.
- * @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users.
- * @property null|string $email
- * @property bool $livemode Has the value true
if the object exists in live mode or the value false
if the object exists in test mode.
- * @property \SimplePay\Vendor\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
- * @property null|string|\SimplePay\Vendor\Stripe\Account $migrated_to The ID of the Custom account this recipient was migrated to. If set, the recipient can no longer be updated, nor can transfers be made to it: use the Custom account instead.
- * @property null|string $name Full, legal name of the recipient.
- * @property string|\SimplePay\Vendor\Stripe\Account $rolled_back_from
- * @property string $type Type of the recipient, one of individual
or corporation
.
- * @property bool $verified Whether the recipient has been verified. This field is non-standard, and maybe removed in the future
- */
-class Recipient extends ApiResource
-{
- const OBJECT_NAME = 'recipient';
-
- use ApiOperations\All;
- use ApiOperations\Create;
- use ApiOperations\Delete;
- use ApiOperations\Retrieve;
- use ApiOperations\Update;
-}
diff --git a/lib/Stripe/lib/Refund.php b/lib/Stripe/lib/Refund.php
index 4b583e6a..a6f54f17 100644
--- a/lib/Stripe/lib/Refund.php
+++ b/lib/Stripe/lib/Refund.php
@@ -52,13 +52,9 @@ class Refund extends ApiResource
const STATUS_CANCELED = 'canceled';
const STATUS_FAILED = 'failed';
const STATUS_PENDING = 'pending';
+ const STATUS_REQUIRES_ACTION = 'requires_action';
const STATUS_SUCCEEDED = 'succeeded';
- /**
- * @deprecated use FAILURE_REASON_EXPIRED_OR_CANCELED_CARD instead
- */
- const FAILURE_REASON = 'expired_or_canceled_card';
-
/**
* @param null|array $params
* @param null|array|string $opts
diff --git a/lib/Stripe/lib/SearchResult.php b/lib/Stripe/lib/SearchResult.php
index cf753a94..46a91165 100644
--- a/lib/Stripe/lib/SearchResult.php
+++ b/lib/Stripe/lib/SearchResult.php
@@ -62,6 +62,9 @@ public function setFilters($filters)
$this->filters = $filters;
}
+ /**
+ * @return mixed
+ */
#[\ReturnTypeWillChange]
public function offsetGet($k)
{
diff --git a/lib/Stripe/lib/Service/Checkout/SessionService.php b/lib/Stripe/lib/Service/Checkout/SessionService.php
index 40759e45..fdb6ddd9 100644
--- a/lib/Stripe/lib/Service/Checkout/SessionService.php
+++ b/lib/Stripe/lib/Service/Checkout/SessionService.php
@@ -27,7 +27,7 @@ public function all($params = null, $opts = null)
* items. There is also a URL where you can retrieve the full (paginated) list of
* line items.
*
- * @param string $parentId
+ * @param string $id
* @param null|array $params
* @param null|array|\SimplePay\Vendor\Stripe\Util\RequestOptions $opts
*
@@ -35,9 +35,9 @@ public function all($params = null, $opts = null)
*
* @return \SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\LineItem>
*/
- public function allLineItems($parentId, $params = null, $opts = null)
+ public function allLineItems($id, $params = null, $opts = null)
{
- return $this->requestCollection('get', $this->buildPath('/v1/checkout/sessions/%s/line_items', $parentId), $params, $opts);
+ return $this->requestCollection('get', $this->buildPath('/v1/checkout/sessions/%s/line_items', $id), $params, $opts);
}
/**
diff --git a/lib/Stripe/lib/Service/CreditNoteService.php b/lib/Stripe/lib/Service/CreditNoteService.php
index f0ac9104..ec0fd1ee 100644
--- a/lib/Stripe/lib/Service/CreditNoteService.php
+++ b/lib/Stripe/lib/Service/CreditNoteService.php
@@ -98,7 +98,7 @@ public function preview($params = null, $opts = null)
*
* @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
*
- * @return \SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\CreditNote>
+ * @return \SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\CreditNoteLineItem>
*/
public function previewLines($params = null, $opts = null)
{
diff --git a/lib/Stripe/lib/Service/CustomerService.php b/lib/Stripe/lib/Service/CustomerService.php
index 9dbea484..ce014698 100644
--- a/lib/Stripe/lib/Service/CustomerService.php
+++ b/lib/Stripe/lib/Service/CustomerService.php
@@ -48,7 +48,7 @@ public function allBalanceTransactions($parentId, $params = null, $opts = null)
*
* @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
*
- * @return \SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\Customer>
+ * @return \SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\PaymentMethod>
*/
public function allPaymentMethods($id, $params = null, $opts = null)
{
@@ -64,7 +64,7 @@ public function allPaymentMethods($id, $params = null, $opts = null)
*
* @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
*
- * @return \SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\AlipayAccount|\SimplePay\Vendor\Stripe\BankAccount|\SimplePay\Vendor\Stripe\BitcoinReceiver|\SimplePay\Vendor\Stripe\Card|\SimplePay\Vendor\Stripe\Source>
+ * @return \SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\BankAccount|\SimplePay\Vendor\Stripe\Card|\SimplePay\Vendor\Stripe\Source>
*/
public function allSources($parentId, $params = null, $opts = null)
{
@@ -154,7 +154,7 @@ public function createFundingInstructions($id, $params = null, $opts = null)
*
* @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
*
- * @return \SimplePay\Vendor\Stripe\AlipayAccount|\SimplePay\Vendor\Stripe\BankAccount|\SimplePay\Vendor\Stripe\BitcoinReceiver|\SimplePay\Vendor\Stripe\Card|\SimplePay\Vendor\Stripe\Source
+ * @return \SimplePay\Vendor\Stripe\BankAccount|\SimplePay\Vendor\Stripe\Card|\SimplePay\Vendor\Stripe\Source
*/
public function createSource($parentId, $params = null, $opts = null)
{
@@ -218,7 +218,7 @@ public function deleteDiscount($id, $params = null, $opts = null)
*
* @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
*
- * @return \SimplePay\Vendor\Stripe\AlipayAccount|\SimplePay\Vendor\Stripe\BankAccount|\SimplePay\Vendor\Stripe\BitcoinReceiver|\SimplePay\Vendor\Stripe\Card|\SimplePay\Vendor\Stripe\Source
+ * @return \SimplePay\Vendor\Stripe\BankAccount|\SimplePay\Vendor\Stripe\Card|\SimplePay\Vendor\Stripe\Source
*/
public function deleteSource($parentId, $id, $params = null, $opts = null)
{
@@ -293,7 +293,7 @@ public function retrieveCashBalance($parentId, $params = null, $opts = null)
}
/**
- * Retrieves a PaymentMethod object.
+ * Retrieves a PaymentMethod object for a given Customer.
*
* @param string $parentId
* @param string $id
@@ -319,7 +319,7 @@ public function retrievePaymentMethod($parentId, $id, $params = null, $opts = nu
*
* @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
*
- * @return \SimplePay\Vendor\Stripe\AlipayAccount|\SimplePay\Vendor\Stripe\BankAccount|\SimplePay\Vendor\Stripe\BitcoinReceiver|\SimplePay\Vendor\Stripe\Card|\SimplePay\Vendor\Stripe\Source
+ * @return \SimplePay\Vendor\Stripe\BankAccount|\SimplePay\Vendor\Stripe\Card|\SimplePay\Vendor\Stripe\Source
*/
public function retrieveSource($parentId, $id, $params = null, $opts = null)
{
@@ -410,7 +410,7 @@ public function updateBalanceTransaction($parentId, $id, $params = null, $opts =
}
/**
- * Updates a customer’s cash balance.
+ * Changes the settings on a customer’s cash balance.
*
* @param string $parentId
* @param null|array $params
@@ -433,7 +433,7 @@ public function updateCashBalance($parentId, $params = null, $opts = null)
*
* @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
*
- * @return \SimplePay\Vendor\Stripe\AlipayAccount|\SimplePay\Vendor\Stripe\BankAccount|\SimplePay\Vendor\Stripe\BitcoinReceiver|\SimplePay\Vendor\Stripe\Card|\SimplePay\Vendor\Stripe\Source
+ * @return \SimplePay\Vendor\Stripe\BankAccount|\SimplePay\Vendor\Stripe\Card|\SimplePay\Vendor\Stripe\Source
*/
public function updateSource($parentId, $id, $params = null, $opts = null)
{
@@ -448,7 +448,7 @@ public function updateSource($parentId, $id, $params = null, $opts = null)
*
* @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
*
- * @return \SimplePay\Vendor\Stripe\AlipayAccount|\SimplePay\Vendor\Stripe\BankAccount|\SimplePay\Vendor\Stripe\BitcoinReceiver|\SimplePay\Vendor\Stripe\Card|\SimplePay\Vendor\Stripe\Source
+ * @return \SimplePay\Vendor\Stripe\BankAccount|\SimplePay\Vendor\Stripe\Card|\SimplePay\Vendor\Stripe\Source
*/
public function verifySource($parentId, $id, $params = null, $opts = null)
{
diff --git a/lib/Stripe/lib/Service/FinancialConnections/AccountService.php b/lib/Stripe/lib/Service/FinancialConnections/AccountService.php
index 1da5b046..d2eb2b8d 100644
--- a/lib/Stripe/lib/Service/FinancialConnections/AccountService.php
+++ b/lib/Stripe/lib/Service/FinancialConnections/AccountService.php
@@ -30,7 +30,7 @@ public function all($params = null, $opts = null)
*
* @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
*
- * @return \SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\FinancialConnections\Account>
+ * @return \SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\FinancialConnections\AccountOwner>
*/
public function allOwners($id, $params = null, $opts = null)
{
diff --git a/lib/Stripe/lib/Service/InvoiceService.php b/lib/Stripe/lib/Service/InvoiceService.php
index 63d39147..ddb86f61 100644
--- a/lib/Stripe/lib/Service/InvoiceService.php
+++ b/lib/Stripe/lib/Service/InvoiceService.php
@@ -35,7 +35,7 @@ public function all($params = null, $opts = null)
*
* @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
*
- * @return \SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\LineItem>
+ * @return \SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\InvoiceLineItem>
*/
public function allLines($parentId, $params = null, $opts = null)
{
@@ -241,7 +241,7 @@ public function upcoming($params = null, $opts = null)
*
* @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
*
- * @return \SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\Invoice>
+ * @return \SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\InvoiceLineItem>
*/
public function upcomingLines($params = null, $opts = null)
{
diff --git a/lib/Stripe/lib/Service/OrderService.php b/lib/Stripe/lib/Service/OrderService.php
index b12c514d..1d925f79 100644
--- a/lib/Stripe/lib/Service/OrderService.php
+++ b/lib/Stripe/lib/Service/OrderService.php
@@ -33,7 +33,7 @@ public function all($params = null, $opts = null)
*
* @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
*
- * @return \SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\Order>
+ * @return \SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\LineItem>
*/
public function allLineItems($id, $params = null, $opts = null)
{
diff --git a/lib/Stripe/lib/Service/PaymentIntentService.php b/lib/Stripe/lib/Service/PaymentIntentService.php
index ade15add..3f1aaf4e 100644
--- a/lib/Stripe/lib/Service/PaymentIntentService.php
+++ b/lib/Stripe/lib/Service/PaymentIntentService.php
@@ -24,10 +24,6 @@ public function all($params = null, $opts = null)
/**
* Manually reconcile the remaining amount for a customer_balance PaymentIntent.
*
- * This can be used when the cash balance for a
- * customer in manual reconciliation mode received funds.
- *
* @param string $id
* @param null|array $params
* @param null|array|\SimplePay\Vendor\Stripe\Util\RequestOptions $opts
diff --git a/lib/Stripe/lib/Service/PaymentLinkService.php b/lib/Stripe/lib/Service/PaymentLinkService.php
index 8124f25b..87e0f3ae 100644
--- a/lib/Stripe/lib/Service/PaymentLinkService.php
+++ b/lib/Stripe/lib/Service/PaymentLinkService.php
@@ -33,7 +33,7 @@ public function all($params = null, $opts = null)
*
* @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
*
- * @return \SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\PaymentLink>
+ * @return \SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\LineItem>
*/
public function allLineItems($id, $params = null, $opts = null)
{
diff --git a/lib/Stripe/lib/Service/PaymentMethodService.php b/lib/Stripe/lib/Service/PaymentMethodService.php
index 0ac76bb0..be7863a9 100644
--- a/lib/Stripe/lib/Service/PaymentMethodService.php
+++ b/lib/Stripe/lib/Service/PaymentMethodService.php
@@ -7,8 +7,9 @@
class PaymentMethodService extends \SimplePay\Vendor\Stripe\Service\AbstractService
{
/**
- * Returns a list of PaymentMethods. For listing a customer’s payment methods, you
- * should use List a Customer’s
+ * Returns a list of PaymentMethods attached to the StripeAccount. For listing a
+ * customer’s payment methods, you should use List a Customer’s
* PaymentMethods.
*
* @param null|array $params
@@ -30,10 +31,11 @@ public function all($params = null, $opts = null)
* you use a SetupIntent or a PaymentIntent
* with setup_future_usage.
- * These approaches will perform any necessary steps to ensure that the
- * PaymentMethod can be used in a future payment. Using the
- * /v1/payment_methods/:id/attach
endpoint does not ensure that future
- * payments can be made with the attached PaymentMethod. See /v1/payment_methods/:id/attach
+ * endpoint without first using a SetupIntent or PaymentIntent with
+ * setup_future_usage
does not optimize the PaymentMethod for future
+ * use, which makes later declines and payment friction more likely. See Optimizing cards for future
* payments for more information about setting up future payments.
*
@@ -96,7 +98,10 @@ public function detach($id, $params = null, $opts = null)
}
/**
- * Retrieves a PaymentMethod object.
+ * Retrieves a PaymentMethod object attached to the StripeAccount. To retrieve a
+ * payment method attached to a Customer, you should use Retrieve a Customer’s
+ * PaymentMethods.
*
* @param string $id
* @param null|array $params
diff --git a/lib/Stripe/lib/Service/QuoteService.php b/lib/Stripe/lib/Service/QuoteService.php
index 435baaaa..eaf66222 100644
--- a/lib/Stripe/lib/Service/QuoteService.php
+++ b/lib/Stripe/lib/Service/QuoteService.php
@@ -49,7 +49,7 @@ public function all($params = null, $opts = null)
*
* @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
*
- * @return \SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\Quote>
+ * @return \SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\LineItem>
*/
public function allComputedUpfrontLineItems($id, $params = null, $opts = null)
{
@@ -67,7 +67,7 @@ public function allComputedUpfrontLineItems($id, $params = null, $opts = null)
*
* @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
*
- * @return \SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\Quote>
+ * @return \SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\LineItem>
*/
public function allLineItems($id, $params = null, $opts = null)
{
diff --git a/lib/Stripe/lib/Service/SourceService.php b/lib/Stripe/lib/Service/SourceService.php
index e42bd0a5..8d2ac96d 100644
--- a/lib/Stripe/lib/Service/SourceService.php
+++ b/lib/Stripe/lib/Service/SourceService.php
@@ -7,17 +7,19 @@
class SourceService extends \SimplePay\Vendor\Stripe\Service\AbstractService
{
/**
+ * List source transactions for a given source.
+ *
* @param string $id
* @param null|array $params
* @param null|array|\SimplePay\Vendor\Stripe\Util\RequestOptions $opts
*
* @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
*
- * @return \SimplePay\Vendor\Stripe\Source
+ * @return \SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\SourceTransaction>
*/
- public function allTransactions($id, $params = null, $opts = null)
+ public function allSourceTransactions($id, $params = null, $opts = null)
{
- return $this->request('get', $this->buildPath('/v1/sources/%s/source_transactions', $id), $params, $opts);
+ return $this->requestCollection('get', $this->buildPath('/v1/sources/%s/source_transactions', $id), $params, $opts);
}
/**
diff --git a/lib/Stripe/lib/Service/TestHelpers/CustomerService.php b/lib/Stripe/lib/Service/TestHelpers/CustomerService.php
new file mode 100644
index 00000000..d2531aa2
--- /dev/null
+++ b/lib/Stripe/lib/Service/TestHelpers/CustomerService.php
@@ -0,0 +1,24 @@
+request('post', $this->buildPath('/v1/test_helpers/customers/%s/fund_cash_balance', $id), $params, $opts);
+ }
+}
diff --git a/lib/Stripe/lib/Service/TestHelpers/Issuing/CardService.php b/lib/Stripe/lib/Service/TestHelpers/Issuing/CardService.php
new file mode 100644
index 00000000..eb948800
--- /dev/null
+++ b/lib/Stripe/lib/Service/TestHelpers/Issuing/CardService.php
@@ -0,0 +1,76 @@
+Card object to
+ * delivered
.
+ *
+ * @param string $id
+ * @param null|array $params
+ * @param null|array|\SimplePay\Vendor\Stripe\Util\RequestOptions $opts
+ *
+ * @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
+ *
+ * @return \SimplePay\Vendor\Stripe\Issuing\Card
+ */
+ public function deliverCard($id, $params = null, $opts = null)
+ {
+ return $this->request('post', $this->buildPath('/v1/test_helpers/issuing/cards/%s/shipping/deliver', $id), $params, $opts);
+ }
+
+ /**
+ * Updates the shipping status of the specified Issuing Card
object to
+ * failure
.
+ *
+ * @param string $id
+ * @param null|array $params
+ * @param null|array|\SimplePay\Vendor\Stripe\Util\RequestOptions $opts
+ *
+ * @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
+ *
+ * @return \SimplePay\Vendor\Stripe\Issuing\Card
+ */
+ public function failCard($id, $params = null, $opts = null)
+ {
+ return $this->request('post', $this->buildPath('/v1/test_helpers/issuing/cards/%s/shipping/fail', $id), $params, $opts);
+ }
+
+ /**
+ * Updates the shipping status of the specified Issuing Card
object to
+ * returned
.
+ *
+ * @param string $id
+ * @param null|array $params
+ * @param null|array|\SimplePay\Vendor\Stripe\Util\RequestOptions $opts
+ *
+ * @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
+ *
+ * @return \SimplePay\Vendor\Stripe\Issuing\Card
+ */
+ public function returnCard($id, $params = null, $opts = null)
+ {
+ return $this->request('post', $this->buildPath('/v1/test_helpers/issuing/cards/%s/shipping/return', $id), $params, $opts);
+ }
+
+ /**
+ * Updates the shipping status of the specified Issuing Card
object to
+ * shipped
.
+ *
+ * @param string $id
+ * @param null|array $params
+ * @param null|array|\SimplePay\Vendor\Stripe\Util\RequestOptions $opts
+ *
+ * @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
+ *
+ * @return \SimplePay\Vendor\Stripe\Issuing\Card
+ */
+ public function shipCard($id, $params = null, $opts = null)
+ {
+ return $this->request('post', $this->buildPath('/v1/test_helpers/issuing/cards/%s/shipping/ship', $id), $params, $opts);
+ }
+}
diff --git a/lib/Stripe/lib/Service/TestHelpers/Issuing/IssuingServiceFactory.php b/lib/Stripe/lib/Service/TestHelpers/Issuing/IssuingServiceFactory.php
new file mode 100644
index 00000000..ba4201c8
--- /dev/null
+++ b/lib/Stripe/lib/Service/TestHelpers/Issuing/IssuingServiceFactory.php
@@ -0,0 +1,25 @@
+
+ */
+ private static $classMap = [
+ 'cards' => CardService::class,
+ ];
+
+ protected function getServiceClass($name)
+ {
+ return \array_key_exists($name, self::$classMap) ? self::$classMap[$name] : null;
+ }
+}
diff --git a/lib/Stripe/lib/Service/TestHelpers/TestHelpersServiceFactory.php b/lib/Stripe/lib/Service/TestHelpers/TestHelpersServiceFactory.php
index 64a1fbba..fc52401b 100644
--- a/lib/Stripe/lib/Service/TestHelpers/TestHelpersServiceFactory.php
+++ b/lib/Stripe/lib/Service/TestHelpers/TestHelpersServiceFactory.php
@@ -7,6 +7,8 @@
/**
* Service factory class for API resources in the TestHelpers namespace.
*
+ * @property CustomerService $customers
+ * @property Issuing\IssuingServiceFactory $issuing
* @property RefundService $refunds
* @property Terminal\TerminalServiceFactory $terminal
* @property TestClockService $testClocks
@@ -18,6 +20,8 @@ class TestHelpersServiceFactory extends \SimplePay\Vendor\Stripe\Service\Abstrac
* @var arrayIf present, the SetupIntent's payment method will be attached to the in-context SimplePay\Vendor\Stripe Account.
It can only be used for this SimplePay\Vendor\Stripe Account’s own money movement flows like InboundTransfer and OutboundTransfers. It cannot be set to true when setting up a PaymentMethod for a Customer, and defaults to false when attaching a PaymentMethod to a Customer.
* @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. * @property null|string|\SimplePay\Vendor\Stripe\Customer $customer The value of customer on the SetupIntent at the time of this confirmation. + * @property null|string[] $flow_directionsIndicates the directions of money movement for which this payment method is intended to be used.
Include inbound
if you intend to use the payment method as the origin to pull funds from. Include outbound
if you intend to use the payment method as the destination to send funds to. You can include both if you intend to use the payment method for both purposes.
true
if the object exists in live mode or the value false
if the object exists in test mode.
* @property null|string|\SimplePay\Vendor\Stripe\Account $on_behalf_of The value of on_behalf_of on the SetupIntent at the time of this confirmation.
* @property string|\SimplePay\Vendor\Stripe\PaymentMethod $payment_method ID of the payment method used with this SetupAttempt.
diff --git a/lib/Stripe/lib/ShippingRate.php b/lib/Stripe/lib/ShippingRate.php
index d736d73d..a12936db 100644
--- a/lib/Stripe/lib/ShippingRate.php
+++ b/lib/Stripe/lib/ShippingRate.php
@@ -8,7 +8,8 @@
* Shipping rates describe the price of shipping presented to your customers and
* can be applied to Checkout Sessions
- * to collect shipping costs.
+ * and Orders to collect
+ * shipping costs.
*
* @property string $id Unique identifier for the object.
* @property string $object String representing the object's type. Objects of the same type share the same value.
diff --git a/lib/Stripe/lib/Source.php b/lib/Stripe/lib/Source.php
index e888a901..4d1b183c 100644
--- a/lib/Stripe/lib/Source.php
+++ b/lib/Stripe/lib/Source.php
@@ -116,39 +116,24 @@ public function detach($params = null, $opts = null)
}
/**
- * @deprecated sourceTransactions is deprecated. Please use Source::allSourceTransactions instead.
- *
+ * @param string $id
* @param null|array $params
* @param null|array|string $opts
*
* @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
*
- * @return \SimplePay\Vendor\Stripe\Collection the list of source transactions
+ * @return \SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\SourceTransaction> list of SourceTransactions
*/
- public function sourceTransactions($params = null, $opts = null)
+ public static function allSourceTransactions($id, $params = null, $opts = null)
{
- $url = $this->instanceUrl() . '/source_transactions';
- list($response, $opts) = $this->_request('get', $url, $params, $opts);
- $obj = \SimplePay\Vendor\Stripe\Util\Util::convertToStripeObject($response, $opts);
+ $url = static::resourceUrl($id) . '/source_transactions';
+ list($response, $opts) = static::_staticRequest('get', $url, $params, $opts);
+ $obj = \SimplePay\Vendor\Stripe\Util\Util::convertToStripeObject($response->json, $opts);
$obj->setLastResponse($response);
return $obj;
}
- /**
- * @param string $id
- * @param null|array $params
- * @param null|array|string $opts
- *
- * @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
- *
- * @return \SimplePay\Vendor\Stripe\Collection the list of source transactions
- */
- public static function allSourceTransactions($id, $params = null, $opts = null)
- {
- return self::_allNestedResources($id, '/source_transactions', $params, $opts);
- }
-
/**
* @param null|array $params
* @param null|array|string $opts
diff --git a/lib/Stripe/lib/Stripe.php b/lib/Stripe/lib/Stripe.php
index 9061e2b6..773074bf 100644
--- a/lib/Stripe/lib/Stripe.php
+++ b/lib/Stripe/lib/Stripe.php
@@ -58,7 +58,7 @@ class Stripe
/** @var float Initial delay between retries, in seconds */
private static $initialNetworkRetryDelay = 0.5;
- const VERSION = '8.5.0';
+ const VERSION = '9.0.0';
/**
* @return string the API key used for requests
diff --git a/lib/Stripe/lib/StripeObject.php b/lib/Stripe/lib/StripeObject.php
index 460a1e8a..ce6d38fc 100644
--- a/lib/Stripe/lib/StripeObject.php
+++ b/lib/Stripe/lib/StripeObject.php
@@ -149,6 +149,11 @@ public function __set($k, $v)
$this->_unsavedValues->add($k);
}
+ /**
+ * @param mixed $k
+ *
+ * @return bool
+ */
public function __isset($k)
{
return isset($this->_values[$k]);
@@ -187,31 +192,48 @@ public function &__get($k)
return $nullval;
}
- // Magic method for var_dump output. Only works with PHP >= 5.6
+ /**
+ * Magic method for var_dump output. Only works with PHP >= 5.6.
+ *
+ * @return array
+ */
public function __debugInfo()
{
return $this->_values;
}
// ArrayAccess methods
+
+ /**
+ * @return void
+ */
#[\ReturnTypeWillChange]
public function offsetSet($k, $v)
{
$this->{$k} = $v;
}
+ /**
+ * @return bool
+ */
#[\ReturnTypeWillChange]
public function offsetExists($k)
{
return \array_key_exists($k, $this->_values);
}
+ /**
+ * @return void
+ */
#[\ReturnTypeWillChange]
public function offsetUnset($k)
{
unset($this->{$k});
}
+ /**
+ * @return mixed
+ */
#[\ReturnTypeWillChange]
public function offsetGet($k)
{
diff --git a/lib/Stripe/lib/Subscription.php b/lib/Stripe/lib/Subscription.php
index 568947ef..64184e40 100644
--- a/lib/Stripe/lib/Subscription.php
+++ b/lib/Stripe/lib/Subscription.php
@@ -16,19 +16,20 @@
* @property null|string|\SimplePay\Vendor\Stripe\StripeObject $application ID of the Connect Application that created the subscription.
* @property null|float $application_fee_percent A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice subtotal that will be transferred to the application owner's SimplePay\Vendor\Stripe account.
* @property \SimplePay\Vendor\Stripe\StripeObject $automatic_tax
- * @property int $billing_cycle_anchor Determines the date of the first full invoice, and, for plans with month
or year
intervals, the day of the month for subsequent invoices.
+ * @property int $billing_cycle_anchor Determines the date of the first full invoice, and, for plans with month
or year
intervals, the day of the month for subsequent invoices. The timestamp is in UTC format.
* @property null|\SimplePay\Vendor\Stripe\StripeObject $billing_thresholds Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period
* @property null|int $cancel_at A date in the future at which the subscription will automatically get canceled
* @property bool $cancel_at_period_end If the subscription has been canceled with the at_period_end
flag set to true
, cancel_at_period_end
on the subscription will be true. You can use this attribute to determine whether a subscription that has a status of active is scheduled to be canceled at the end of the current period.
* @property null|int $canceled_at If the subscription has been canceled, the date of that cancellation. If the subscription was canceled with cancel_at_period_end
, canceled_at
will reflect the time of the most recent update request, not the end of the subscription period when the subscription is automatically moved to a canceled state.
* @property string $collection_method Either charge_automatically
, or send_invoice
. When charging automatically, SimplePay\Vendor\Stripe will attempt to pay this subscription at the end of the cycle using the default source attached to the customer. When sending an invoice, SimplePay\Vendor\Stripe will email your customer an invoice with payment instructions.
* @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
+ * @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency.
* @property int $current_period_end End of the current period that the subscription has been invoiced for. At the end of this period, a new invoice will be created.
* @property int $current_period_start Start of the current period that the subscription has been invoiced for.
* @property string|\SimplePay\Vendor\Stripe\Customer $customer ID of the customer who owns the subscription.
* @property null|int $days_until_due Number of days a customer has to pay invoices generated by this subscription. This value will be null
for subscriptions where collection_method=charge_automatically
.
* @property null|string|\SimplePay\Vendor\Stripe\PaymentMethod $default_payment_method ID of the default payment method for the subscription. It must belong to the customer associated with the subscription. This takes precedence over default_source
. If neither are set, invoices will use the customer's invoice_settings.default_payment_method or default_source.
- * @property null|string|\SimplePay\Vendor\Stripe\Account|\SimplePay\Vendor\Stripe\AlipayAccount|\SimplePay\Vendor\Stripe\BankAccount|\SimplePay\Vendor\Stripe\BitcoinReceiver|\SimplePay\Vendor\Stripe\Card|\SimplePay\Vendor\Stripe\Source $default_source ID of the default payment source for the subscription. It must belong to the customer associated with the subscription and be in a chargeable state. If default_payment_method
is also set, default_payment_method
will take precedence. If neither are set, invoices will use the customer's invoice_settings.default_payment_method or default_source.
+ * @property null|string|\SimplePay\Vendor\Stripe\Account|\SimplePay\Vendor\Stripe\BankAccount|\SimplePay\Vendor\Stripe\Card|\SimplePay\Vendor\Stripe\Source $default_source ID of the default payment source for the subscription. It must belong to the customer associated with the subscription and be in a chargeable state. If default_payment_method
is also set, default_payment_method
will take precedence. If neither are set, invoices will use the customer's invoice_settings.default_payment_method or default_source.
* @property null|\SimplePay\Vendor\Stripe\TaxRate[] $default_tax_rates The tax rates that will apply to any subscription item that does not have tax_rates
set. Invoices created will have their default_tax_rates
populated from the subscription.
* @property null|string $description The subscription's description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in SimplePay\Vendor\Stripe surfaces.
* @property null|\SimplePay\Vendor\Stripe\Discount $discount Describes the current discount applied to this subscription, if there is one. When billing, a discount applied to a subscription overrides a discount applied on a customer-wide basis.
@@ -47,6 +48,7 @@
* @property int $start_date Date when the subscription was first created. The date might differ from the created
date due to backdating.
* @property string $status Possible values are incomplete
, incomplete_expired
, trialing
, active
, past_due
, canceled
, or unpaid
.
For collection_method=charge_automatically
a subscription moves into incomplete
if the initial payment attempt fails. A subscription in this state can only have metadata and default_source updated. Once the first invoice is paid, the subscription moves into an active
state. If the first invoice is not paid within 23 hours, the subscription transitions to incomplete_expired
. This is a terminal state, the open invoice will be voided and no further invoices will be generated.
A subscription that is currently in a trial period is trialing
and moves to active
when the trial period is over.
If subscription collection_method=charge_automatically
it becomes past_due
when payment to renew it fails and canceled
or unpaid
(depending on your subscriptions settings) when SimplePay\Vendor\Stripe has exhausted all payment retry attempts.
If subscription collection_method=send_invoice
it becomes past_due
when its invoice is not paid by the due date, and canceled
or unpaid
if it is still not paid by an additional deadline after that. Note that when a subscription has a status of unpaid
, no subsequent invoices will be attempted (invoices will be created, but then immediately automatically closed). After receiving updated payment information from a customer, you may choose to reopen and pay their closed invoices.
You can store multiple cards on a customer in order to charge the customer later. You can also store multiple debit cards on a recipient in order to transfer to those cards later.
Related guide: Card Payments with Sources.
- * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. - * @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency. - * @property bool $livemode Has the valuetrue
if the object exists in live mode or the value false
if the object exists in test mode.
- * @property null|string $redirect_url If present, this is the URL that you should send the cardholder to for authentication. If you are going to use Stripe.js to display the authentication page in an iframe, you should use the value "_callback".
- * @property string $status Possible values are redirect_pending
, succeeded
, or failed
. When the cardholder can be authenticated, the object starts with status redirect_pending
. When liability will be shifted to the cardholder's bank (either because the cardholder was successfully authenticated, or because the bank has not implemented 3D Secure, the object wlil be in status succeeded
. failed
indicates that authentication was attempted unsuccessfully.
- */
-class ThreeDSecure extends ApiResource
-{
- const OBJECT_NAME = 'three_d_secure';
-
- use ApiOperations\Create;
- use ApiOperations\Retrieve;
-
- /**
- * @return string the endpoint URL for the given class
- */
- public static function classUrl()
- {
- return '/v1/3d_secure';
- }
-}
diff --git a/lib/Stripe/lib/Transfer.php b/lib/Stripe/lib/Transfer.php
index c1839616..f5688807 100644
--- a/lib/Stripe/lib/Transfer.php
+++ b/lib/Stripe/lib/Transfer.php
@@ -33,7 +33,7 @@
* @property \SimplePay\Vendor\Stripe\Collection<\SimplePay\Vendor\Stripe\TransferReversal> $reversals A list of reversals that have been applied to the transfer.
* @property bool $reversed Whether the transfer has been fully reversed. If the transfer is only partially reversed, this attribute will still be false.
* @property null|string|\SimplePay\Vendor\Stripe\Charge $source_transaction ID of the charge or payment that was used to fund the transfer. If null, the transfer was funded from the available balance.
- * @property null|string $source_type The source balance this transfer came from. One of card
, fpx
, or bank_account
.
+ * @property string $source_type The source balance this transfer came from. One of card
, fpx
, or bank_account
.
* @property null|string $transfer_group A string that identifies this transaction as part of a group. See the Connect documentation for details.
*/
class Transfer extends ApiResource
@@ -46,27 +46,9 @@ class Transfer extends ApiResource
use ApiOperations\Retrieve;
use ApiOperations\Update;
- const SOURCE_TYPE_ALIPAY_ACCOUNT = 'alipay_account';
const SOURCE_TYPE_BANK_ACCOUNT = 'bank_account';
const SOURCE_TYPE_CARD = 'card';
- const SOURCE_TYPE_FINANCING = 'financing';
-
- /**
- * @param null|array $params
- * @param null|array|string $opts
- *
- * @throws \SimplePay\Vendor\Stripe\Exception\ApiErrorException if the request fails
- *
- * @return \SimplePay\Vendor\Stripe\Transfer the canceled transfer
- */
- public function cancel($params = null, $opts = null)
- {
- $url = $this->instanceUrl() . '/cancel';
- list($response, $opts) = $this->_request('post', $url, $params, $opts);
- $this->refreshFrom($response, $opts);
-
- return $this;
- }
+ const SOURCE_TYPE_FPX = 'fpx';
const PATH_REVERSALS = '/reversals';
diff --git a/lib/Stripe/lib/Treasury/CreditReversal.php b/lib/Stripe/lib/Treasury/CreditReversal.php
index 583a0fbb..2f6158d2 100644
--- a/lib/Stripe/lib/Treasury/CreditReversal.php
+++ b/lib/Stripe/lib/Treasury/CreditReversal.php
@@ -15,7 +15,7 @@
* @property int $amount Amount (in cents) transferred.
* @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency.
* @property string $financial_account The FinancialAccount to reverse funds from.
- * @property null|string $hosted_regulatory_receipt_url A hosted transaction receipt URL that is provided when money movement is considered regulated under Stripe's money transmission licenses.
+ * @property null|string $hosted_regulatory_receipt_url A hosted transaction receipt URL that is provided when money movement is considered regulated under Stripe's money transmission licenses.
* @property bool $livemode Has the value true
if the object exists in live mode or the value false
if the object exists in test mode.
* @property \SimplePay\Vendor\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
* @property string $network The rails used to reverse the funds.
diff --git a/lib/Stripe/lib/Treasury/DebitReversal.php b/lib/Stripe/lib/Treasury/DebitReversal.php
index 28adffc1..4bc93cd1 100644
--- a/lib/Stripe/lib/Treasury/DebitReversal.php
+++ b/lib/Stripe/lib/Treasury/DebitReversal.php
@@ -15,7 +15,7 @@
* @property int $amount Amount (in cents) transferred.
* @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency.
* @property null|string $financial_account The FinancialAccount to reverse funds from.
- * @property null|string $hosted_regulatory_receipt_url A hosted transaction receipt URL that is provided when money movement is considered regulated under Stripe's money transmission licenses.
+ * @property null|string $hosted_regulatory_receipt_url A hosted transaction receipt URL that is provided when money movement is considered regulated under Stripe's money transmission licenses.
* @property null|\SimplePay\Vendor\Stripe\StripeObject $linked_flows Other flows linked to a DebitReversal.
* @property bool $livemode Has the value true
if the object exists in live mode or the value false
if the object exists in test mode.
* @property \SimplePay\Vendor\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
diff --git a/lib/Stripe/lib/Treasury/InboundTransfer.php b/lib/Stripe/lib/Treasury/InboundTransfer.php
index dd188403..f1bdf6c6 100644
--- a/lib/Stripe/lib/Treasury/InboundTransfer.php
+++ b/lib/Stripe/lib/Treasury/InboundTransfer.php
@@ -5,7 +5,9 @@
namespace SimplePay\Vendor\Stripe\Treasury;
/**
- * Use InboundTransfers to add funds to your InboundTransfers
+ * to add funds to your FinancialAccount via a
* PaymentMethod that is owned by you. The funds will be transferred via an ACH
* debit.
@@ -19,7 +21,7 @@
* @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users.
* @property null|\SimplePay\Vendor\Stripe\StripeObject $failure_details Details about this InboundTransfer's failure. Only set when status is failed
.
* @property string $financial_account The FinancialAccount that received the funds.
- * @property null|string $hosted_regulatory_receipt_url A hosted transaction receipt URL that is provided when money movement is considered regulated under Stripe's money transmission licenses.
+ * @property null|string $hosted_regulatory_receipt_url A hosted transaction receipt URL that is provided when money movement is considered regulated under Stripe's money transmission licenses.
* @property \SimplePay\Vendor\Stripe\StripeObject $linked_flows
* @property bool $livemode Has the value true
if the object exists in live mode or the value false
if the object exists in test mode.
* @property \SimplePay\Vendor\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
diff --git a/lib/Stripe/lib/Treasury/OutboundPayment.php b/lib/Stripe/lib/Treasury/OutboundPayment.php
index dad8b364..8c3db282 100644
--- a/lib/Stripe/lib/Treasury/OutboundPayment.php
+++ b/lib/Stripe/lib/Treasury/OutboundPayment.php
@@ -20,14 +20,14 @@
* @property bool $cancelable Returns true
if the object can be canceled, and false
otherwise.
* @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
* @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency.
- * @property null|string $customer ID of the customer to whom an OutboundPayment is sent.
+ * @property null|string $customer ID of the customer to whom an OutboundPayment is sent.
* @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users.
* @property null|string $destination_payment_method The PaymentMethod via which an OutboundPayment is sent. This field can be empty if the OutboundPayment was created using destination_payment_method_data
.
* @property null|\SimplePay\Vendor\Stripe\StripeObject $destination_payment_method_details Details about the PaymentMethod for an OutboundPayment.
* @property null|\SimplePay\Vendor\Stripe\StripeObject $end_user_details Details about the end user.
* @property int $expected_arrival_date The date when funds are expected to arrive in the destination account.
* @property string $financial_account The FinancialAccount that funds were pulled from.
- * @property null|string $hosted_regulatory_receipt_url A hosted transaction receipt URL that is provided when money movement is considered regulated under Stripe's money transmission licenses.
+ * @property null|string $hosted_regulatory_receipt_url A hosted transaction receipt URL that is provided when money movement is considered regulated under Stripe's money transmission licenses.
* @property bool $livemode Has the value true
if the object exists in live mode or the value false
if the object exists in test mode.
* @property \SimplePay\Vendor\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
* @property null|\SimplePay\Vendor\Stripe\StripeObject $returned_details Details about a returned OutboundPayment. Only set when the status is returned
.
diff --git a/lib/Stripe/lib/Treasury/OutboundTransfer.php b/lib/Stripe/lib/Treasury/OutboundTransfer.php
index f8df0126..68ea3ec7 100644
--- a/lib/Stripe/lib/Treasury/OutboundTransfer.php
+++ b/lib/Stripe/lib/Treasury/OutboundTransfer.php
@@ -27,7 +27,7 @@
* @property \SimplePay\Vendor\Stripe\StripeObject $destination_payment_method_details
* @property int $expected_arrival_date The date when funds are expected to arrive in the destination account.
* @property string $financial_account The FinancialAccount that funds were pulled from.
- * @property null|string $hosted_regulatory_receipt_url A hosted transaction receipt URL that is provided when money movement is considered regulated under Stripe's money transmission licenses.
+ * @property null|string $hosted_regulatory_receipt_url A hosted transaction receipt URL that is provided when money movement is considered regulated under Stripe's money transmission licenses.
* @property bool $livemode Has the value true
if the object exists in live mode or the value false
if the object exists in test mode.
* @property \SimplePay\Vendor\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
* @property null|\SimplePay\Vendor\Stripe\StripeObject $returned_details Details about a returned OutboundTransfer. Only set when the status is returned
.
diff --git a/lib/Stripe/lib/Treasury/ReceivedCredit.php b/lib/Stripe/lib/Treasury/ReceivedCredit.php
index 82a1b6c3..ea6f79f3 100644
--- a/lib/Stripe/lib/Treasury/ReceivedCredit.php
+++ b/lib/Stripe/lib/Treasury/ReceivedCredit.php
@@ -18,10 +18,12 @@
* @property string $description An arbitrary string attached to the object. Often useful for displaying to users.
* @property null|string $failure_code Reason for the failure. A ReceivedCredit might fail because the receiving FinancialAccount is closed or frozen.
* @property null|string $financial_account The FinancialAccount that received the funds.
+ * @property null|string $hosted_regulatory_receipt_url A hosted transaction receipt URL that is provided when money movement is considered regulated under Stripe's money transmission licenses.
* @property \SimplePay\Vendor\Stripe\StripeObject $initiating_payment_method_details
* @property \SimplePay\Vendor\Stripe\StripeObject $linked_flows
* @property bool $livemode Has the value true
if the object exists in live mode or the value false
if the object exists in test mode.
* @property string $network The rails used to send the funds.
+ * @property null|\SimplePay\Vendor\Stripe\StripeObject $reversal_details Details describing when a ReceivedCredit may be reversed.
* @property string $status Status of the ReceivedCredit. ReceivedCredits are created either succeeded
(approved) or failed
(declined). If a ReceivedCredit is declined, the failure reason can be found in the failure_code
field.
* @property null|string|\SimplePay\Vendor\Stripe\Treasury\Transaction $transaction The Transaction associated with this object.
*/
diff --git a/lib/Stripe/lib/Treasury/ReceivedDebit.php b/lib/Stripe/lib/Treasury/ReceivedDebit.php
index a06ab5f5..77cfd2a5 100644
--- a/lib/Stripe/lib/Treasury/ReceivedDebit.php
+++ b/lib/Stripe/lib/Treasury/ReceivedDebit.php
@@ -17,10 +17,12 @@
* @property string $description An arbitrary string attached to the object. Often useful for displaying to users.
* @property null|string $failure_code Reason for the failure. A ReceivedDebit might fail because the FinancialAccount doesn't have sufficient funds, is closed, or is frozen.
* @property null|string $financial_account The FinancialAccount that funds were pulled from.
+ * @property null|string $hosted_regulatory_receipt_url A hosted transaction receipt URL that is provided when money movement is considered regulated under Stripe's money transmission licenses.
* @property \SimplePay\Vendor\Stripe\StripeObject $initiating_payment_method_details
* @property \SimplePay\Vendor\Stripe\StripeObject $linked_flows
* @property bool $livemode Has the value true
if the object exists in live mode or the value false
if the object exists in test mode.
* @property string $network The network used for the ReceivedDebit.
+ * @property null|\SimplePay\Vendor\Stripe\StripeObject $reversal_details Details describing when a ReceivedDebit might be reversed.
* @property string $status Status of the ReceivedDebit. ReceivedDebits are created with a status of either succeeded
(approved) or failed
(declined). The failure reason can be found under the failure_code
.
* @property null|string|\SimplePay\Vendor\Stripe\Treasury\Transaction $transaction The Transaction associated with this object.
*/
diff --git a/lib/Stripe/lib/Util/ApiVersion.php b/lib/Stripe/lib/Util/ApiVersion.php
new file mode 100644
index 00000000..2259e89d
--- /dev/null
+++ b/lib/Stripe/lib/Util/ApiVersion.php
@@ -0,0 +1,10 @@
+container = \array_change_key_case($initial_array, \CASE_LOWER);
}
+ /**
+ * @return int
+ */
#[\ReturnTypeWillChange]
public function count()
{
diff --git a/lib/Stripe/lib/Util/ObjectTypes.php b/lib/Stripe/lib/Util/ObjectTypes.php
index 4dd5933e..e9e61d35 100644
--- a/lib/Stripe/lib/Util/ObjectTypes.php
+++ b/lib/Stripe/lib/Util/ObjectTypes.php
@@ -12,7 +12,6 @@ class ObjectTypes
const mapping = [
\SimplePay\Vendor\Stripe\Account::OBJECT_NAME => \SimplePay\Vendor\Stripe\Account::class,
\SimplePay\Vendor\Stripe\AccountLink::OBJECT_NAME => \SimplePay\Vendor\Stripe\AccountLink::class,
- \SimplePay\Vendor\Stripe\AlipayAccount::OBJECT_NAME => \SimplePay\Vendor\Stripe\AlipayAccount::class,
\SimplePay\Vendor\Stripe\ApplePayDomain::OBJECT_NAME => \SimplePay\Vendor\Stripe\ApplePayDomain::class,
\SimplePay\Vendor\Stripe\ApplicationFee::OBJECT_NAME => \SimplePay\Vendor\Stripe\ApplicationFee::class,
\SimplePay\Vendor\Stripe\ApplicationFeeRefund::OBJECT_NAME => \SimplePay\Vendor\Stripe\ApplicationFeeRefund::class,
@@ -22,8 +21,6 @@ class ObjectTypes
\SimplePay\Vendor\Stripe\BankAccount::OBJECT_NAME => \SimplePay\Vendor\Stripe\BankAccount::class,
\SimplePay\Vendor\Stripe\BillingPortal\Configuration::OBJECT_NAME => \SimplePay\Vendor\Stripe\BillingPortal\Configuration::class,
\SimplePay\Vendor\Stripe\BillingPortal\Session::OBJECT_NAME => \SimplePay\Vendor\Stripe\BillingPortal\Session::class,
- \SimplePay\Vendor\Stripe\BitcoinReceiver::OBJECT_NAME => \SimplePay\Vendor\Stripe\BitcoinReceiver::class,
- \SimplePay\Vendor\Stripe\BitcoinTransaction::OBJECT_NAME => \SimplePay\Vendor\Stripe\BitcoinTransaction::class,
\SimplePay\Vendor\Stripe\Capability::OBJECT_NAME => \SimplePay\Vendor\Stripe\Capability::class,
\SimplePay\Vendor\Stripe\Card::OBJECT_NAME => \SimplePay\Vendor\Stripe\Card::class,
\SimplePay\Vendor\Stripe\CashBalance::OBJECT_NAME => \SimplePay\Vendor\Stripe\CashBalance::class,
@@ -77,8 +74,6 @@ class ObjectTypes
\SimplePay\Vendor\Stripe\Radar\EarlyFraudWarning::OBJECT_NAME => \SimplePay\Vendor\Stripe\Radar\EarlyFraudWarning::class,
\SimplePay\Vendor\Stripe\Radar\ValueList::OBJECT_NAME => \SimplePay\Vendor\Stripe\Radar\ValueList::class,
\SimplePay\Vendor\Stripe\Radar\ValueListItem::OBJECT_NAME => \SimplePay\Vendor\Stripe\Radar\ValueListItem::class,
- \SimplePay\Vendor\Stripe\Recipient::OBJECT_NAME => \SimplePay\Vendor\Stripe\Recipient::class,
- \SimplePay\Vendor\Stripe\RecipientTransfer::OBJECT_NAME => \SimplePay\Vendor\Stripe\RecipientTransfer::class,
\SimplePay\Vendor\Stripe\Refund::OBJECT_NAME => \SimplePay\Vendor\Stripe\Refund::class,
\SimplePay\Vendor\Stripe\Reporting\ReportRun::OBJECT_NAME => \SimplePay\Vendor\Stripe\Reporting\ReportRun::class,
\SimplePay\Vendor\Stripe\Reporting\ReportType::OBJECT_NAME => \SimplePay\Vendor\Stripe\Reporting\ReportType::class,
@@ -102,7 +97,6 @@ class ObjectTypes
\SimplePay\Vendor\Stripe\Terminal\Location::OBJECT_NAME => \SimplePay\Vendor\Stripe\Terminal\Location::class,
\SimplePay\Vendor\Stripe\Terminal\Reader::OBJECT_NAME => \SimplePay\Vendor\Stripe\Terminal\Reader::class,
\SimplePay\Vendor\Stripe\TestHelpers\TestClock::OBJECT_NAME => \SimplePay\Vendor\Stripe\TestHelpers\TestClock::class,
- \SimplePay\Vendor\Stripe\ThreeDSecure::OBJECT_NAME => \SimplePay\Vendor\Stripe\ThreeDSecure::class,
\SimplePay\Vendor\Stripe\Token::OBJECT_NAME => \SimplePay\Vendor\Stripe\Token::class,
\SimplePay\Vendor\Stripe\Topup::OBJECT_NAME => \SimplePay\Vendor\Stripe\Topup::class,
\SimplePay\Vendor\Stripe\Transfer::OBJECT_NAME => \SimplePay\Vendor\Stripe\Transfer::class,
diff --git a/package.json b/package.json
index 2e41a99f..00ad2dc5 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
"name": "wp-simple-pay-lite",
"title": "WP Simple Pay Lite for Stripe",
"description": "Add high conversion Stripe Checkout forms to your WordPress site and start accepting payments in minutes. **Lite Version**",
- "version": "4.5.2",
+ "version": "4.6.0",
"license": "GPL-2.0-or-later",
"homepage": "https://wpsimplepay.com/",
"repository": {
diff --git a/readme.txt b/readme.txt
index db4c9765..ee9ca102 100644
--- a/readme.txt
+++ b/readme.txt
@@ -3,7 +3,7 @@ Contributors: wpsimplepay, pderksen, spencerfinnell, adamjlea, mordauk, cklosows
Tags: stripe, stripe checkout, stripe payments, credit card payments, stripe gateway
Requires at least: 5.2
Tested up to: 6.0
-Stable tag: 4.5.2
+Stable tag: 4.6.0
Requires PHP: 5.6
License: GPLv2 or later
@@ -282,6 +282,10 @@ The 3% additional fee is removed by [upgrading to WP Simple Pay Pro](https://wps
[WP Simple Pay Pro](https://wpsimplepay.com/?utm_source=wporg&utm_campaign=lite-plugin&utm_medium=link) offers on-site payment forms that ensure customers never leave your site.
+= Does WP Simple Pay work with WooCommerce? =
+
+No. WP Simple Pay is a standalone Stripe payments plugin and does not integrate with other payment or ecommerce plugins, such as WooCommerce or Easy Digital Downloads.
+
== Screenshots ==
1. Payment form template selection
@@ -297,6 +301,12 @@ The 3% additional fee is removed by [upgrading to WP Simple Pay Pro](https://wps
== Changelog ==
+= Stripe Payment Forms v4.6.0 - October 11, 2022 =
+
+* New: Add Thailand to list of supported Stripe countries.
+* Fix: Ensure a fallback redirect URL always exists for Stripe Checkout.
+* Fix: Avoid JavaScript error on certain WP Simple Pay admin pages.
+
= Stripe Payment Forms v4.5.2 - September 27, 2022 =
* New: Allow licenses to be entered in Lite.
@@ -326,82 +336,3 @@ The 3% additional fee is removed by [upgrading to WP Simple Pay Pro](https://wps
* Fix: Ensure UI elements that cannot be used are not shown.
* Fix: Ensure more compatibility with MySQL indexes.
* Fix: Update Stripe API PHP library to `8.5.0`.
-
-= Stripe Payment Forms v4.4.6 - June 1, 2022 =
-
-* New: Dashboard Widget Report - view transaction amounts from the last 7 or 30 days.
-* New: Introduce "Help" panel. Quickly find documentation or request support.
-* Fix: Display relevant Stripe API error when saving payment forms.
-* Dev: Initialize `stripe.js` with Stripe API version.
-
-= Stripe Payment Forms v4.4.5 - April 27, 2022 =
-
-* New: Stay up to date with WP Simple Pay via the notification inbox.
-* Fix: Ensure payment form template explorer displays properly with WooCommerce active.
-* Fix: Ensure top of page notice remains dismissed after dismissal.
-* Fix: Ensure setup wizard does not override previously set settings.
-
-= Stripe Payment Forms v4.4.4 - March 30, 2022 =
-
-* New: Display a notice to site admins and do not output a form without price options.
-* New: Add Stripe Instant Payouts education.
-* New: Add additional payment form templates.
-* Fix: Add more specific UTM arguments to URLs.
-* Fix: Add additional opinionated styles to form preview notice.
-* Fix: Update "Tested up to" to `5.9`.
-
-= Stripe Payment Forms v4.4.3 - March 3, 2022 =
-
-* New: Payment Form Templates - choose from premade templates to quickly create payment forms.
-* New: Elementor - select a payment form to launch in a "Button", "Price Table," or "Call to Action" widget.
-* New: Divi - select a payment form to launch in the "Button", "Price Table", or "Call to Action" module.
-* Fix: Ensure screen options can be used to hide additional metaboxes added to payment form settings.
-* Fix: Ensure classic editor payment form inserter displays payment form title.
-
-= Stripe Payment Forms v4.4.2 - February 10, 2022 =
-
-* New: Add "Setup Wizard" for new installs.
-* New: Add "WP Simple Pay" payment form block.
-* New: Load payment form preview in an isolated environment. Add helper links.
-* New: Link branding bar logo to website.
-* Fix: Ensure default $1.00 amount can be saved on initial form publish.
-* Fix: Do not display empty form state when searching for payment forms.
-* Fix: Update reCAPTCHA setup description.
-* Fix: Ensure "Test Mode" can be toggled when there is no active connection.
-* Fix: Only show published pages in settings dropdowns.
-* Fix: Redirect back to relevant page when connecting to Stripe.
-* Dev: Update test matrix against WordPress 5.9.
-
-= Stripe Payment Forms v4.4.1 - January 11, 2022 =
-
-* New: Lite - add a 2% application fee to Checkout Sessions for new Stripe Connect connections.
-* New: Stripe Checkout - Add support for collecting phone numbers.
-* New: Show an alert when leaving unsaved changes on payment forms.
-* New: Add "Copy to clipboard" buttons to payment form shortcodes and system report.
-* New: Add an admin notice requesting a review after 14 days of installation/update.
-* Fix: Update admin bar from "Simple Pay" to "WP Simple Pay".
-* Dev: Update copyright dates.
-
-= Stripe Payment Forms v4.4.0 - December 14, 2021 =
-
-* New: Add additional product education.
-* New: Add product education dashboard widget.
-* New: Add branding to all plugin pages.
-* New: Various plugin UI/UX improvements.
-* New: Show notice if payment form title is empty.
-* New: Add confirmation when disconnecting a Stripe account.
-* New: Add empty states to payment form list when no forms have been created.
-* New: Show global reCAPTCHA and tax settings within payment form settings.
-* New: Alert users of test/live and publishable/secret swapped API credentials.
-* New: Add India, Brazil and United Arab Emirates as a supported account country.
-* New: Automatically retry Stripe API requests on a network failure.
-* Fix: Add consistency to UTM parameters in `*.wpsimplepay.com` outbound links.
-* Fix: Ensure `simpay_get_currencies` filter is called.
-* Fix: Avoid fatal error on the_title filter when used incorrectly by other plugins.
-* Fix: Ensure Stripe API errors are properly output.
-* Fix: Avoid `get_query_var()` usage within admin panel for better compatibility with other plugins.
-* Fix: Do not output PHP warnings when visiting Payment Confirmation page directly.
-* Fix: Show generic error message text when REST API response is invalid JSON.
-* Fix: Rename "Macedonia" to "North Macedonia".
-* Fix: Lighten placeholder colors on Payment Form settings to avoid confusion with values.
-* Dev: Add plugin service container, service providers, and subscriber architecture in `./src`.
diff --git a/src/Admin/SiteHealth/SiteHealthDebugInformation.php b/src/Admin/SiteHealth/SiteHealthDebugInformation.php
index d2f7be03..80f3769c 100644
--- a/src/Admin/SiteHealth/SiteHealthDebugInformation.php
+++ b/src/Admin/SiteHealth/SiteHealthDebugInformation.php
@@ -226,6 +226,61 @@ private function get_webhook_secret() {
}
}
+ /**
+ * Returns anit-spam email verification status.
+ *
+ * @since 4.6.0
+ *
+ * @return string
+ */
+ private function get_email_verification() {
+ /** @var string $enabled */
+ $enabled = simpay_get_setting(
+ 'fraud_email_verification',
+ 'no'
+ );
+
+ if ( 'no' === $enabled ) {
+ return 'No';
+ }
+
+ /** @var int $threshold */
+ $threshold = simpay_get_setting(
+ 'fraud_email_verification_threshold',
+ 3
+ );
+
+ /** @var int|float $timeframe */
+ $timeframe = simpay_get_setting(
+ 'fraud_email_verification_timeframe',
+ 6
+ );
+
+ return sprintf(
+ '%s: %d events in %d hours',
+ ucfirst( $enabled ),
+ $threshold,
+ $timeframe
+ );
+ }
+
+ /**
+ * Returns the anti-spam require authentication.
+ *
+ * @since 4.6.0
+ *
+ * @return string
+ */
+ private function get_require_authentication() {
+ /** @var string $enabled */
+ $enabled = simpay_get_setting(
+ 'fraud_require_authentication',
+ 'no'
+ );
+
+ return ucfirst( $enabled );
+ }
+
/**
* Filters the debug information to include our plugin-specific site health
* panel in the generated UI.
@@ -239,31 +294,39 @@ public function debug_information( $debug_info ) {
$plugin = array(
'label' => 'WP Simple Pay',
'fields' => array(
- 'version' => array(
+ 'version' => array(
'label' => __( 'Version', 'stripe' ),
'value' => $this->get_plugin_version(),
),
- 'stripetls' => array(
+ 'stripetls' => array(
'label' => __( 'Stripe TLS', 'stripe' ),
'value' => $this->stripe_tls_check(),
),
- 'mode' => array(
+ 'mode' => array(
'label' => __( 'Global Payment Mode', 'stripe' ),
'value' => $this->get_test_or_live_mode(),
),
- 'recaptcha' => array(
+ 'recaptcha' => array(
'label' => __( 'reCAPTCHA', 'stripe' ),
'value' => $this->check_repatcha_keys(),
),
- 'rate_limit_file' => array(
+ 'rate_limit_file' => array(
'label' => __( 'Rate Limit File', 'stripe' ),
'value' => $this->check_rate_limiting_file(),
),
- 'recent_webhook' => array(
+ 'fraud_email_verification' => array(
+ 'label' => __( 'Email Verification', 'stripe' ),
+ 'value' => $this->get_email_verification(),
+ ),
+ 'fraud_require_auth' => array(
+ 'label' => __( 'Require Authentication', 'stripe' ),
+ 'value' => $this->get_require_authentication(),
+ ),
+ 'recent_webhook' => array(
'label' => __( 'Most Recent Webhook Event', 'stripe' ),
'value' => $this->get_latest_webhook_event(),
),
- 'webhook_secret' => array(
+ 'webhook_secret' => array(
'label' => __( 'Webhook Secret', 'stripe' ),
'value' => $this->get_webhook_secret(),
),
diff --git a/src/AntiSpam/AntiSpamServiceProvider.php b/src/AntiSpam/AntiSpamServiceProvider.php
new file mode 100644
index 00000000..55ff070f
--- /dev/null
+++ b/src/AntiSpam/AntiSpamServiceProvider.php
@@ -0,0 +1,60 @@
+getContainer();
+
+ // Eamil verification.
+ $container->share(
+ 'anti-spam-email-verification',
+ EmailVerification::class
+ )
+ ->withArgument( $container->get( 'scheduler' ) );
+
+ // Require authentication.
+ $container->share(
+ 'anti-spam-require-authentication',
+ RequireAuthentication::class
+ );
+ }
+
+}
diff --git a/src/AntiSpam/EmailVerification.php b/src/AntiSpam/EmailVerification.php
new file mode 100644
index 00000000..5acca2d4
--- /dev/null
+++ b/src/AntiSpam/EmailVerification.php
@@ -0,0 +1,947 @@
+scheduler = $scheduler;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function get_subscribed_events() {
+ if ( true === $this->license->is_lite() ) {
+ return array();
+ }
+
+ $subscribers = array(
+ // Add/output settings.
+ 'simpay_register_settings' => 'add_settings',
+ 'simpay_admin_after_form_display_options_rows' =>
+ array( 'add_payment_form_settings', 31 ),
+
+ // Log fraud events.
+ 'simpay_webhook_charge_failed' =>
+ array( 'log_fraud_event', 10, 2 ),
+
+ // Schedule and cleanup expired verification codes.
+ 'init' =>
+ 'schedule_email_verification_code_cleanup',
+ 'simpay_cleanup_email_verification_codes' =>
+ 'cleanup_verification_codes',
+ );
+
+ // Require verification before processing endpoints if there are more than
+ // fraud events than the set threshold, within the set timeframe.
+ if (
+ 'yes' === simpay_get_setting( 'fraud_email_verification', 'no' ) &&
+ $this->get_fraud_event_count() >= $this->get_fraud_event_threshold() &&
+ $this->is_latest_fraud_event_in_timeframe()
+ ) {
+ // Send the verification code.
+ $subscribers['simpay_before_customer_from_payment_form_request'] =
+ array( 'send_verification_code', 10, 4 );
+
+ // ...verify on PaymentIntent.
+ $subscribers['simpay_before_paymentintent_from_payment_form_request'] =
+ array( 'verify_verification_code_rest', 10, 4 );
+ // ...verify on SetupIntent.
+ $subscribers['simpay_before_setupintent_from_payment_form_request'] =
+ array( 'verify_verification_code_rest', 10, 4 );
+ // ...verify Subscription.
+ $subscribers['simpay_before_subscription_from_payment_form_request'] =
+ array( 'verify_verification_code_rest', 10, 4 );
+ // ...verify on Charge.
+ $subscribers['simpay_before_charge_from_payment_form_request'] =
+ array( 'verify_verification_code_rest', 10, 4 );
+ // ...verify on Order submit.
+ $subscribers['simpay_before_order_submit_from_payment_form_request'] =
+ array( 'verify_verification_code_order', 10, 4 );
+
+ // Remove the verification code after a payment action has been made.
+
+ // ...on Checkout Session.
+ $subscribers['simpay_after_checkout_session_from_payment_form_request'] =
+ array( 'remove_verification_code_rest', 10, 4 );
+ // ...on PaymentIntent.
+ $subscribers['simpay_after_paymentintent_from_payment_form_request'] =
+ array( 'remove_verification_code_rest', 10, 4 );
+ // ...on Subscription.
+ $subscribers['simpay_after_subscription_from_payment_form_request'] =
+ array( 'remove_verification_code_rest', 10, 4 );
+ // ...on SetupIntent.
+ $subscribers['simpay_after_setupintent_from_payment_form_request'] =
+ array( 'remove_verification_code_rest', 10, 4 );
+ // ...on Order submit.
+ $subscribers['simpay_after_order_submit_from_payment_form_request'] =
+ array( 'remove_verification_code_order_submit', 10, 4 );
+
+ // Use a cleaned version of the submitted email address as the rate
+ // limiter ID. spencer+123@gmail.com turns in to spencer@gmail.com.
+ $subscribers['simpay_rate_limiting_id'] = 'set_rate_limiting_id';
+
+ // ... and extend the rate limiting window.
+ $subscribers['simpay_rate_limiting_timeout'] =
+ 'set_rate_limiting_timeout';
+ }
+
+ return $subscribers;
+ }
+
+ /**
+ * Adds the settings UI for email verification fraud prevention.
+ *
+ * @since 4.6.0
+ *
+ * @param \SimplePay\Core\Settings\Setting_Collection $settings Settings collection.
+ * @return void
+ */
+ public function add_settings( $settings ) {
+ // Enable/Disable.
+ $settings->add(
+ new Settings\Setting_Checkbox(
+ array(
+ 'id' => 'fraud_email_verification',
+ 'section' => 'general',
+ 'subsection' => 'recaptcha',
+ 'label' => esc_html_x(
+ 'Email Verification',
+ 'setting label',
+ 'stripe'
+ ),
+ 'input_label' => esc_html_x(
+ 'Enable email verification for on-site payment forms if multiple charges fail due to fraud.',
+ 'setting input label',
+ 'stripe'
+ ),
+ 'value' => simpay_get_setting(
+ 'fraud_email_verification',
+ 'no'
+ ),
+ 'toggles' => array(
+ 'value' => 'yes',
+ 'settings' => array(
+ 'fraud_email_verification_threshold',
+ 'fraud_email_verification_timeframe',
+ ),
+ ),
+ 'priority' => 5,
+ 'schema' => array(
+ 'type' => 'string',
+ 'enum' => array( 'yes', 'no' ),
+ ),
+ )
+ )
+ );
+
+ // Threshold.
+ $settings->add(
+ new Settings\Setting_Input(
+ array(
+ 'id' => 'fraud_email_verification_threshold',
+ 'section' => 'general',
+ 'subsection' => 'recaptcha',
+ 'type' => 'number',
+ 'label' => esc_html_x(
+ 'Threshold',
+ 'setting label',
+ 'stripe'
+ ),
+ 'value' => simpay_get_setting(
+ 'fraud_email_verification_threshold',
+ 3
+ ),
+ 'min' => 1,
+ 'step' => 1,
+ 'description' => sprintf(
+ '%s %s
', + esc_html__( + 'hours', + 'stripe' + ), + esc_html__( + 'Require email verification for on-site payment forms until there are no more failed payments due to fraud for this many hours.', + 'stripe' + ) + ), + 'priority' => 5.2, + 'schema' => array( + 'type' => 'number', + ), + ) + ) + ); + } + + /** + * Displays the global setting value when editing a payment form. + * + * @since 4.6.0 + * + * @return void + */ + public function add_payment_form_settings() { + $settings_url = Settings\get_url( + array( + 'section' => 'general', + 'subsection' => 'recaptcha', + 'setting' => 'fraud_email_verification', + ) + ); + + $enabled = simpay_get_setting( + 'fraud_email_verification', + 'no' + ); + + ?> +