/
15 minute read
September 15, 2023

2020 Release Notes

December 2020

New features

New Transaction Timeline tool added to sandbox accounts

The new Transaction Timeline tool has been added to all sandbox accounts. The Transaction Timeline tool helps newcomers to the Marqeta platform quickly understand the role played by transaction flows in their integration, as well as in the broader payments space. It demonstrates line-by-line how individual transactions impact each other, and how they affect the account balance.

After simulating at least one transaction in your sandbox, access the Transaction Timeline by logging into the Marqeta Dashboard. Enter one of your card tokens in the Transaction Timeline to generate a history of all the transactions completed on that card.

Changed functionality

Increased flexibility for expedited shipping and expedited processing time

Expedited shipping and expedited processing time are configured independently when fulfilling card orders:

  • To specify expedited shipping for card orders, use the fulfillment.shipping.method field when creating card products in the /cardproducts endpoint, when creating cards in the /cards endpoint, and when creating bulk orders in the /bulkissuance endpoint.

  • To specify expedited processing time—which shortens the time allocated to a card provider to process, pull, personalize, and pack cards into envelopes—set the expedite field in the /bulkissuance and /card endpoints to true. This expedited service is newly available for cards fulfilled by Arroweye Solutions. It was previously available only for Perfect Plastic Printing and IDEMIA.

Simplified shipping options for card fulfillment

When ordering cards from Arroweye Solutions, you can select from the following generic shipping options:

  • LOCAL_MAIL (not available for bulk orders, tracking not included)

  • GROUND (bulk orders only, tracking included)

  • TWO_DAY (tracking included)

  • OVERNIGHT (tracking included)

  • INTERNATIONAL (tracking included)

These options specify shipping companies and services available from the card provider. They were previously available only from Perfect Plastic Printing and IDEMIA.

For details on which shipping companies and services are offered by each card provider, contact your Marqeta representative.

Notable documentation changes

New look for Marqeta Docs

The Docs site has undergone a top-to-bottom design update that aligns it with Marqeta’s current aesthetic, as seen in the Marqeta Dashboard and elsewhere. The fresh look-and-feel includes design components, colors, fonts, and other elements. The site’s content and organization remain unchanged.

Improved performance of API Explorer widgets

The API Explorer has been updated to use a new custom API widget that is already available in Core API reference pages. The enhanced interactive widget resolves a major issue whereby endpoints with required query parameters did not behave as expected.

November 2020

Changed functionality

3D Secure now generally available

3D Secure is now available for use by all Marqeta customers. The Marqeta 3D Secure platform supports the latest versions of 3D Secure for Visa and Mastercard:

  • For Visa the Marqeta 3D Secure platform supports 3DS 2.2.0

  • For Mastercard the Marqeta 3D Secure platform supports supports 3D Secure 2.1+

For more information about 3D Secure, see https://www.marqeta.com/platform/3d-secure.

New fields for multiple clearings in Visa transactions

For Visa transactions that include multiple clearing events for a single authorization, Marqeta now includes two new fields in the clearing webhooks: multi_clearing_sequence_count and multi_clearing_sequence_number.

New fields for contactless point-of-sale transaction exemptions

Gateway JIT and transaction webhook payloads now include two new fields: contactless_exemption_counter and contactless_exemption_total_amount. You can use the information in these fields to notify your users that they are approaching their no-PIN limit for contactless transactions.

New card token field for digital wallet token transitions

Digital wallet token transition webhooks and GET /digitalwallettokentransitions responses can now include the card_token field. This new field contains the UUID of the card associated with the digital wallet token. This new field is not included by default. To enable receipt of this field, contact your Marqeta account representative.

ATM transactions now specify the account type

ATM transactions now include the from_account field in Gateway JIT and transaction webhooks. This new field specifies the type of account the transaction draws from, such as CHECKING or SAVINGS. You can use this account-specific information to improve your ledger management. For a full list of account type values, contract your Marqeta account representative.

Support for Gateway JIT account verification requests

You can now send account verification requests or "$0 authorizations" to your JIT gateway to take advantage of your Gateway JIT decisioning flow. You can approve such verification requests, or decline them using the decline_reason codes specified on the Gateway JIT Funding Messages API reference page.

New 3D Secure and digital wallet token cardholder OTP notification language support

You can now send your cardholders one-time passcode (OTP) notifications in German and Swedish.

Improved handling of Mastercard Cashback advice transactions

Marqeta now processes Mastercard Cashback financial advice transactions successfully. Marqeta processes these transactions as pindebit.authorization.clearing transactions, and includes them in transaction webhooks. The included amount_to_be_released field indicates the amount to be released from the previous pindebit.authorization transaction.

State field now supports more than two characters

The state field in the /cards, /cardproducts, /bulkissuances and /users APIs now supports more than two characters, allowing customers to correctly enter non-US addresses.

Velocity control tokens in decline webhooks

In cases where no name is associated with a velocity control, decline webhooks now include the velocity control token in the response.additional_information field.

Fixed issue with decline transactions webhooks

This release fixes an issue that caused decline transactions webhooks to remain unsent in some cases.

Fixed issue with Maestro transactions

This release fixes an issue that caused some Maestro transactions approved by the Marqeta platform to be declined at the point of sale.

Fixed issue with Gateway JIT balance inquiries

This release fixes an issue with incorrectly formatted Gateway JIT balance inquiries. Balance inquiries formatted as whole numbers rather than decimals are now handled correctly.

October 2020

Changed functionality

Improvements to the Direct Deposit Detail Transaction Report

All direct deposit returns now appear in the Direct Deposit Detail Transaction Report, which is available via the Marqeta Dashboard. This report is a helpful resource when reconciling funds movement and addressing customer concerns.

Notable documentation changes

Redesigned Errors page

The Core API Errors page has been restructured so that it lists all error codes in ascending numerical order. Cross-references linking the Core API and DiVA API Errors pages were added for improved navigation.

The error codes are divided into numeric ranges to make the Errors page easier to load and scroll.

New Card Network Certifications page

The new Card Network Certifications page shows certification information for the most current card network releases, as well as any relevant changes you should take into account.

September 2020

Changed functionality

Better handling of rejected direct deposit transactions

When the Marqeta platform detects that an incoming ACH transaction will cause an account’s balance to exceed the maximum load limit, it now properly creates the corresponding Direct Deposit and Direct Deposit Transition entries. In addition, the transaction’s status is now set to DECLINED instead of COMPLETION. Together, these enhancements allow for more graceful handling of large transactions and bring greater visibility to certain transactions that were previously rejected by the Marqeta platform.

If your implementation relies on consuming transaction log webhooks, you must integrate this logic change in the transaction status. Simply put, you must be able to handle DECLINED in the transaction state object (and webhook state) when a maximum final balance exception occurs, as shown in the examples below. Previously, these transactions were in the COMPLETION state, even though they were declined, which changes existing behavior.

Transaction state object
JSON
Copied
Webhook
JSON
Copied

Improved sandbox experience for new users

It is now even faster to get started with the Marqeta platform. New users who sign up receive a sandbox that comes equipped with a predefined card product based on common default values. Working straightaway with a predefined card product enables developers to try out the Marqeta platform’s core technology and successfully complete the Quick Start guide in fewer steps.

Strong Customer Authentication limits for contactless points of sale

Marqeta now supports strong customer authentication (SCA) at contactless points of sale, per European Banking Authority PSD2 Articles 11 and 12. All European customers are required to support these articles. Customers in other regions can also use this feature for additional control over contactless payments.

You can set SCA limits for contactless points of sale at the card product level. To learn more about this feature, see strong_customer_authentication_limits in the config.transaction_controls object.

Dynamic Currency Conversion Indicator now included for Visa transactions

The Dynamic Currency Conversion Indicator is now included for Visa transactions in Gateway JIT requests, webhooks, and the transactions API. This indicator appears in the new dynamic_currency_conversion field in the currency_conversion.network object. If the merchant or ATM acquirer performs currency conversion at a point of sale or at an ATM terminal, this field is set to true.

Current state of card ignored for credit voucher and online refund transactions

For credit voucher and online refund transactions, the card’s current state is now ignored when receiving refunds. This change allows one-time use cards to receive refunds. Allowing the receipt of refunds on suspended cards can cause additional issues and should only be enabled if you agree to the associated risk.

Fixed Pulse transactions issue

This release fixes an issue that caused some Pulse transactions to be tagged as incremental and not process correctly.

Fixed Zion API issue

This release fixes an issue with Zion API timeouts that caused internal errors.

State field no longer required for international addresses

The state field in addresses is now optional on the /card, /user, and /cardproduct endpoints.

Notable documentation changes

New developer guide: Configuring 3D Secure OTP Notification Languages

A new developer guide is available that documents how to configure 3D Secure one-time passcode notifications in local languages for your cardholders. See Configuring 3D Secure OTP Notification Languages.

August 2020

Changed functionality

Localized 3DS one-time passcode (OTP) notifications

You can configure 3DS OTP messages for your cardholders in French, Italian, Spanish, Polish, and Czech. The localized language for these messages can be configured at the card product or user level.

Additional 3DS parameters in Gateway JIT and Authorization webhooks

Gateway JIT and Authorization webhooks now include additional 3DS parameters to help you make better decisions during authorization based on 3DS authentication details:

  • The cardholder_authentication_data.three_ds_message_version field contains the message version of the 3DS protocol used during cardholder authentication.

  • The cardholder_authentication_data.authentication_method field contains the authentication method used for cardholder authentication.

  • The cardholder_authentication_data.authentication_status field contains the status of the cardholder authentication.

New code for questionable ACH entries

Reason code R17 is an optional new code available to RDFIs. Use this code when an ACH entry may have been initiated under questionable circumstances. When you return an entry using R17, you must add "QUESTIONABLE" to the return’s Addenda Information field. Learn more here: Direct Deposits (Beta).

More flexible settings for expedited shipping and expedited processing

For card fulfillment, you now set expedited shipping and expedited processing time separately. To specify expedited processing time, which shortens the time it takes for a card provider to process, pull, personalize, and pack cards into envelopes, set the expedite field in the /bulkissuance and /card endpoints to true. This expedited service is available only for cards fulfilled by Perfect Plastic Printing and IDEMIA.

To specify expedited shipping for card orders, use the fulfillment.shipping.method field when creating card products in the /cardproducts endpoint, when creating cards in the /cards endpoint, and when creating bulk orders in the /bulkissuance endpoint.

Simplified shipping options for card fulfillment

When ordering cards from providers Perfect Plastic Printing and IDEMIA, you can now select from the following generic shipping options:

  • LOCAL_MAIL (not available for bulk orders, tracking not included)

  • GROUND (bulk orders only, tracking included)

  • TWO_DAY (tracking included)

  • OVERNIGHT (tracking included)

  • INTERNATIONAL (tracking included)

These options specify shipping companies and services available from the card provider.

For details on specific mapping of shipping companies and services and card providers, contact your Marqeta representative.

Notable documentation changes

Redesigned API Keys page in the Marqeta Dashboard

The API Keys page has been redesigned to help new developers know what to do with their API keys once they receive them. Improvements include field-level descriptions, a link to the documentation on authentication, and a "Hello, World!" cURL that provides a personalized example of how credentials are used in the console.

Improved Swagger widgets

The interactive elements that enable you to make calls to our API directly from the website have been redesigned with an overall cleaner design and heightened usability. These elements are available in the Core API Quick Start, all API references pages, and the API Explorer.

July 2020

Changed functionality

New reason code to indicate stolen cards

The Marqeta platform now includes separate card transition reason codes for lost and stolen cards. The existing reason code 10 now applies only to lost cards, and the new reason code 23 applies to stolen cards. See Create card transition

New field to indicate mail order/telephone order (MOTO) transactions in webhooks

Authorization, clearing, and Gateway JIT request webhooks now include the transaction_metadata.moto_indicator field to indicate MOTO transactions. Possible values for this field are MANUAL, RECURRING, INSTALLMENT, and OTHERS. This change applies to version two of the Transaction Model.

New field to indicate installment transactions in webhooks

Authorization, clearing, and Gateway JIT request webhooks now include the pos.is_installment field to indicate installment transactions.

Credit voucher and online refund transaction enhancements

You can now ignore the suspended state of a card for credit voucher and online refund transactions. Be aware that allowing suspended cards to receive funds entails the associated risk of causing additional issues.

Acquiring reference identifier updated for Visa clearing webhooks

For Visa transactions, the acquiring_reference_id field now uses the six-digit acquirer reference identifier in clearing webhooks.

Updated handling of incremental authorizations for Mastercard

For Mastercard transactions, some merchants send incremental authorizations after the original authorization was cleared or reversed. These incremental authorizations could not be cleared or expired, which negatively impacted cardholders. The Marqeta platform now processes such transactions as standard authorizations that are cleared or expired based on the actions of the merchant.

Offline PIN script issue fixed

An issue occasionally caused an incorrect reset of the offline PIN script flag, which then forced cardholders to reset their PIN multiple times. This issue is fixed in this release.

Zero-amount authorization with cashback issue fixed

Some zero-amount authorizations with cashback amounts did not work correctly, impacting the cardholders balance but not allowing them to get cash. This issue is fixed in this release.

Bulk order shipping options clarified

USPS_Regular is no longer available for bulk card orders. In the past, you could select USPS_Regular, and this selection would automatically convert to FedEx_Expedited to support tracking information for bulk orders.

June 2020

Changed functionality

Improved handling of mismatched authorizations and clearings

Transactions for identical amounts at the same merchant occasionally are mismatched with their reference identifiers. This enhancement provides additional data to help you determine the correct authorization for a given transaction.

Missing pin_present field added to Swagger

The pin_present is now included in Swagger with this release.

Clearing webhooks included incorrect data in the original_amount field for some Visa transactions

Clearing webhooks for Visa transactions now include the correct data in the original_amount field of the currency_conversion object.

Clearing webhooks included incorrect data for cross-border issuer fees for some Visa transactions

Clearing webhooks for Visa transactions now include the correct data for the CROSS_BORDER_ISSUER_FEE.

Notable documentation changes

Wording change: "master access token" renamed "admin access token"

This change is implemented throughout Marqeta documentation.

May 2020

Changed functionality

New decline_reason field in Gateway JIT response

The decline_reason field lets you specify the reason why a Gateway JIT Funding transaction was rejected. This field is optional. If you do not include this field in your Gateway JIT Funding response, the transaction is declined with the reason "insufficient funds." The new decline reasons are mapped to the relevant card network response codes. See Gateway JIT Funding Messages.

New JIT Funding transaction response codes

Several new JIT Funding codes, available as transaction response codes, provide more clarity about JIT Funding decisions for transactions. See transaction response codes.

Added support for Compressed AVS Data for Mastercard AVS processing

Compressed AVS data is commonly used by United Kingdom and European Union merchants during tokenization.

New pin_present field in Transaction Model v2

This field indicates whether a PIN was entered during a transaction, and appears in Gateway JIT calls, transaction webhooks, and GET /transactions.

New notification_email field in user.metadata

This email address can receive one-time passcodes for 3DS authentication. It is useful when the user.email field is null or not set. Send a PUT or POST request to /users to set this metadata.

Visa chargeback representment webhooks original amount issue resolved

Visa chargeback representment webhooks no longer include incorrect original amounts in the currency_conversion object.

Gateway JIT and transaction webhooks no longer receive cardholder_authentication_data

The cardholder_authentication_data object in Gateway JIT and transaction webhooks was being sent unnecessarily for tokenized transactions. This object will now be sent only for transactions where 3DS authentication is attempted.

Easier direct deposit return handling

You can now return direct deposits directly from the cardholder transaction table in apps.marqeta.com, which simplifies the direct deposit returns workflow. To return a transaction, choose an applicable return reason code from the list, then enter a description.

Notable documentation changes

New developer guide for personal identification numbers (PINs)

This new guide covers resetting the PIN retry counter and modifying a program’s PIN retry limit value. It also includes a PIN retry flow that explains how to intervene when a cardholder’s card has been locked out after reaching the maximum number of unsuccessful PIN retries. For details, see About Personal Identification Numbers.

New API reference page for the /acceptedcountries endpoint

New documentation for Visa Cases (Beta)

For guidance and reference information about the Cases API for Visa, see Managing Visa Cases (Beta) Developer Guide and Cases (Visa) (Beta) API Reference.

April 2020

Changed functionality

For the accepted_countries endpoint, POST and PUT are newly restricted to Admin users only

Other roles can retrieve the list of accepted countries, but cannot change its contents. With this change, the API Explorer will no longer show POST and PUT calls for this endpoint.

Webhooks provide spend control details for declined transactions

You can configure the Marqeta platform to send a webhook whenever a transaction is declined. If a spend control is responsible for declining the transaction, the webhook sent now includes the additional_information field. This field contains the name of the spend control responsible for the transaction being declined. To learn more, read Controlling Spending.

Last four digits of PAN displayed in digital wallets during PAN swap functions

The Mobile Wallet UI now displays the last four digits of the card PAN during PAN swap functions for Mastercard. Previously, the PAN swap was occurring successfully, but was not reflected in the Mobile Wallet UI.

Improved support for long business names

Long business names (up to 255 characters) are now supported when creating or updating a business' payment card information. To learn more, read Businesses.

Notable documentation changes

New and updated sections in the Ledger Management with JIT Funding guide

March 2020

New features

Visa and Mastercard have added new token requestor names

Visa and Mastercard have added a number of new token requestors as a response to increased tokenization by e-commerce merchants. These token requestors have unique token requestor IDs and use unknown as the token requestor name.

We are currently creating specific, more accurate names for approximately 200 new token requestors on the Marqeta platform. For details, see the token_service_provider object of GET /digitalwallettokens/{token}.

Because the list of token requestor names may change, we recommend not hardcoding against specific values for token requestor names.

Financial advice authorization clearing events include amount to be released

Financial advice authorization.clearing transaction events include a new field, amount_to_be_released. This field is useful for automated fuel dispenser (AFD) transactions, where the authorization may be for a fixed amount higher than the actual amount cleared.

You can use this field to update your ledgers to reflect the actual amount more quickly, then release the excess funds back to your customer. For details, see Transaction Events.

Velocity controls supported for dual-message withdrawal transactions

Velocity controls that apply to cash withdrawals now support dual-message withdrawal transactions, which are common in the European Union.

Previously, any velocity controls that excluded purchases from consideration also did not limit cash withdrawals. For details, see Controlling Spending.

Changed functionality

State of digital wallet tokens reflected in wallets

Digital wallets now update to reflect the status of their digital wallet tokens when a token is suspended or resumed. Previously, suspended tokens appeared active, but their transactions would decline.

Suspended tokens now appear as unavailable for payment in their digital wallets.

Notable documentation changes

New ledger management developer guide

The Ledger Management for JIT Funding guide describes how to use information contained in JIT messages to help manage your account ledgers, which transaction events impact the ledger, and best practices for ledger management.

Newly documented fields in transaction response model

Transaction type authorization.clearing, following a financial advice, returns these fields:

Name Description

amount_to_be_released

Amount to release following a financial advice.

preceding_transaction

Object containing the amount and token of the preceding authorization transaction.

See the Transactions API reference.

Conditionally returned fields explained

Core and DiVA API reference pages now describe the conditions under which the API returns all fields documented as "Conditionally returned."

Subscribe to our developer newsletter