Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/429 smart bulletin 39 #440

Merged
merged 3 commits into from
Feb 6, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions src/content/smart-bulletins/039.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
title: "U.S. General Services Administration Federal Acquisition Service Smart Bulletin No. 039"
intro: "GSA SmartPay – GSA Multiple Award Schedules Payments"
number: "No. 039"
order: 039
businessline: "Purchase"
published: "Sep 28, 2023"
lastupdated: "N/A"
---

UPDATE:
| Date | Version History Action Log - Summary of Action/Changes |
| ----------- | ----------- |
| September 28, 2023 | Implementation of SmartPay Bulletin #39 |

## Business Line(s) Affected

Purchase

## Introduction

The GSA Multiple Award Schedule (MAS) contracts for both supplies and services were updated in 2014 to include a clause which requires any contractor that holds a MAS contract to accept the purchase card for payment. This includes when the card is used as a purchasing mechanism under the micropurchase threshold (MPT) and when the card is used as a payment mechanism against a task order above the micropurchase threshold for all dollar values.
The previous MAS clause pertaining to purchase card utilization only required contractors to accept the purchase card at or below the micropurchase threshold. Acceptance of the purchase card over the micropurchase threshold was previously optional. The updated MAS clause gives cardholders a greater opportunity to expand the use of purchase cards as a payment mechanism for payment of supplies or services purchased via a MAS contract.

## Summary

Federal Acquisition Regulation (FAR) clause [52.232-36](https://www.acquisition.gov/far/52.232-36?searchTerms=52.232-36) Payment by Third Party is included in the MAS solicitation and incorporated into all MAS contracts for supplies and services. This clause captures the contractor’s agreement to accept payments due under the MAS contract through payment by a third party, i.e., the financial institution that issued the purchase card. Any processing fees should already be included in awarded MAS prices - contractors are NOT authorized to add processing fees at the order level for purchase card transactions.
Inclusion of this clause in MAS contracts means the contractor has agreed to accept the purchase card as a payment mechanism - regardless of dollar amount - subject only to any limitations related to the Contracting Officer’s warrant level, thresholds for usage in the customer agency’s purchase card contract, or agency-level restrictions established by the customer agency itself.
The clause does not contain parameters or thresholds based on dollar value, i.e., in contrast to the now-deleted GSAR clause (GSAR [552.232-79](https://sws.gsa.gov/sws-search/generateClauseBodyPdf.do?method=generate&clauseId=337&solId=63) Payment by Credit Card) that only required acceptance of the purchase card for payments at/below the micropurchase threshold.
In agreeing to accept the purchase card as a payment mechanism, the contractor has also agreed to any associated processing fees. Therefore, these fees should have been factored into proposed MAS prices. MAS contractors cannot add a separate charge at the order level for processing fees associated with purchase card payments.

## Action

This Smart Bulletin is provided to inform A/OPCs of updates to the GSA Multiple Award Schedule contracts, including a clause that requires any contractor that holds a MAS contract to accept the purchase card for payment above or below the micro-purchase threshold.

Agencies should review their current card policies and guidance and update based on additional purchase card utilization opportunities available under the GSA MAS program.
2 changes: 1 addition & 1 deletion src/pages/policies-and-audits/[...slug].astro
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import { getCollection, getEntry } from 'astro:content';

export async function getStaticPaths() {
const entries = await getCollection('policies-and-audits');
const smartbulletinsData = await getEntry('smartbulletins', 'smart-bulletins');
const smartbulletinsData = await getEntry('smartbulletins-old', 'smart-bulletins');

return entries.map(entry => {
const slug = entry.slug == './' ? undefined : entry.slug
Expand Down
34 changes: 34 additions & 0 deletions src/pages/policies-and-audits/smart-bulletins/[...slug].astro
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
/*
This page is to set up Policies & Audits parent level pages layout and routes except for smart bulletins.
It includs landing page (/policies-and-audits/), Policies page (/policies-and-audits/policies), Audit Reporistory page (/policies-and-audits/audits)
Page use side nav or use full size template based on frontmatter full_size_template value is provided or not.
*/
import PageLayout from '@layouts/PageLayout.astro';
import { getCollection } from 'astro:content';
import FullSizeTemplate from '@components/FullSizeTemplate.astro'

export async function getStaticPaths() {
const entries = await getCollection('smart-bulletins');
return entries.map(entry => {
return {
params: { slug: entry.slug },
props: { entry, entries }
}
})
}
const { entry } = Astro.props;
const { Content } = await entry.render();
---

<PageLayout title={entry.data.title}>
<FullSizeTemplate
title={ entry.data.title }
parent_nav_path="policies-and-audits/smart-bulletins"
parent_nav_text = "Return to Smart Bulletins"
intro ={entry.data.intro}
>
<Content />
</FullSizeTemplate>
</PageLayout>

32 changes: 29 additions & 3 deletions src/pages/policies-and-audits/smart-bulletins/index.astro
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,34 @@ Page is using full size template with no side nav, it has top nav return to pare
This page is served as one optionfor Smartpay team to compare markdown table structure in MDX file vs Yaml file.
If SP team prefer markdown way, this page needs to be converted to use markdown way, e.g. policies page.
*/
import { getEntry } from 'astro:content';
import { getCollection, getEntry } from 'astro:content';
import PageLayout from '@layouts/PageLayout.astro';
import FullSizeTemplate from '@components/FullSizeTemplate.astro'
const smartbulletinsData = await getEntry('smartbulletins', 'smart-bulletins');

const smartbulletinsData = await getEntry('smartbulletins-old', 'smart-bulletins');
const smartbulletins = await getCollection('smart-bulletins')
smartbulletins.sort((a, b) => parseInt(a.data.order) - parseInt(b.data.order))

export async function getStaticPaths() {
const entries = await getCollection('about');
return entries.map(entry => {
const slug = entry.slug == './' ? undefined : entry.slug
return {
params: { slug: slug },
props: { entry, entries }
}
})
}
---

<PageLayout title={smartbulletinsData.data.title}>
<FullSizeTemplate
title={smartbulletinsData.data.title}
parent_nav_path={smartbulletinsData.data.parent_nav_path}
parent_nav_text = {`Return to the ${smartbulletinsData.data.parent_nav_text}`}
intro={smartbulletinsData.data.intro}
>
<!--smart buletins table -->
<!-- smart buletins table -->
<table class="usa-table usa-table--borderless">
<thead>
<tr>
Expand All @@ -29,6 +44,17 @@ const smartbulletinsData = await getEntry('smartbulletins', 'smart-bulletins');
</tr>
</thead>
<tbody>
{ smartbulletins.map(item => (
<tr>
<th scope="row" class="grid-col-1">{item.data.number}</th>
<td class="grid-col-5">
<a href={`${import.meta.env.BASE_URL}policies-and-audits/smart-bulletins/${item.slug}`}>{item.data.title}</a>
</td>
<td class="grid-col-2">{item.data.businessline}</td>
<td class="grid-col-2">{item.data.published}</td>
<td class="grid-col-2">{item.data.lastupdated}</td>
</tr>
))}
{ smartbulletinsData.data.bulletins.map(item => (
<tr>
<th scope="row" class="grid-col-1">{item.number}</th>
Expand Down
Loading