Card Issuing
Productfy offers a suite of APIs to create an end-to-end card issuing experience for your customers. All debit cards must be linked to a Virtual Account on Productfy as the source of funds. Work with your Productfy representative to set up custom card designs for your plastic cards to get mailed out. For virtual cards, see our Virtual Card Widget for an easy way to display card details in your app.
For testing card transactions, Productfy offers a set of simulation APIs to generate all the different kinds of transactions that can come up.
Webhooks are generated on each card transaction, see our Webhooks section for more details.
See our Debit Card Implementation Guide for more details.
Create Physical Card Product
Create a group of settings for a physical card product for consumers. The Card Product ID returned should be used in your Issue Card calls to open individual cards under this card product.
For consumer debit physical cards:
For business debit physical cards:
For consumer secured credit physical cards:
NOTE: Before creating a business debit card product, you must contact Productfy support to enable this feature for your environment.
Create Virtual Card Product
Create a group of settings for a virtual card product for consumers. The Card Product ID returned should be used in your Issue Card calls to open individual cards under this card product.
For consumer debit virtual cards:
For business debit virtual cards:
For consumer secured credit virtual cards:
NOTE: Before creating a business debit card product, you must contact Productfy support to enable this feature for your environment.
Set Card PIN
Set payment card PIN. PIN numbers must NOT be all the same (i.e. 0000), nor be consecutive (i.e. 1234 OR 4321). NOTE: PINs need to be set for virtual cards, since customers may get prompted for PINs when using mobile payments in stores.
Issue Card
Order a card to be created for a customer. This API can also open the virtual account along with the card, or take in a Virtual Account ID if you created it previously. This action requires tenant admin or admin privileges.
Multiple Addresses
This API also supports a multi-address feature allowing users to have a card associated with an address that is not their primary address. Physical cards are mailed to this address, not the primary address. To utilize this feature, call the appropriate Issue Card API below with the ID of the address in the addressId
parameter. The addressId
will be in the format Pfy_A-XXXXXXX and is returned from the Save Person Address API on initial creation. The card is issued on the primary address if the addressId
parameter is omitted.
To issue consumer debit cards:
To issue business debit cards:
To issue secured credit cards:
Activate Card
Change the card's status to active so that the card can be used. For example, you have issued the card to the user and the user has activated the card using your application.
Deactivate Card
Deactivate a card by specifying the card's ID number. This action is permanent and cannot be reversed. Deactivated cards can no longer be used.
Freeze Card
Temporarily block all debit transactions (e.g. purchases) from processing against a card, credit transactions like refunds will continue to process. The status of the card will change to Suspended.
Unfreeze Card
Change a card status from Suspended back to Active to allow transactions to process on it.
Simulate Card Authorization
Generate an authorized test purchase transaction against a card. This action creates a pending transaction on the account and reduces the available balance.
Simulate Card Clearing
Generate a clearing message that follows the authorization message from signature card transactions. The clearing message shows the finalized transaction and amount. The message is generated using the token of the original authorization.
Simulate Card Advice Message
Generate an advice message that follows the authorization but precedes the clearing. Merchants can use this to amend an existing authorization, such as at a gas pump transaction. The message is generated using the token of the original authorization.
Simulate Card Refund
Simulate a cardholder requesting a refund after the transaction is settled and the clearing message is received. The message is generated using the token of the original authorization.
Simulate Card Reversal
Simulate a merchant canceling a transaction after the authorization is sent but before the transaction is cleared. The message is generated using the token of the original authorization.
Get Payment Cards
Gets all payment cards associated with either personIds
, organizationIds
, or tenantDeploymentEnvironmentIds
Get Virtual Card Access Token
Call the Get Virtual Card Access Token API to retrieve your Virtual Card access token from our card processor. This token is only valid for 5 minutes, and a new token must be requested again upon expiration. See our Debit Card Issuing or Secured Credit Card implementation guides for more info on Virtual Cards.
Make Credit Card Payment
This API makes a payment to a credit card via ACH.
Initiate Credit Application
This API is used to gather credit card underwriting information (self-reported bankruptcies) and to formally track the start date/time of a credit card application.
Save Card Control
This API is used to set spending and authorization controls for virtual or physical cards. Once a card is created, you can call the Save Payment Card Control API to set spending and authorization limits on the existing card. When a user attempts to spend with a card, the controls are evaluated at the time of the transaction. This will allow you to create, read, or update spending and authorization controls that are set on the card level. Only one card control can be applied per card.
This API contains the following fields:
active: A boolean field that indicates whether the authorization control is active. Defaulted to true. A required field.
card_id: A string field token identifying the associated card. A required field.
mccs: An array that contains 1 or more merchant category codes. Either the mccs, merchantIds, or amount_limit field are required.
merchantIds: An array that contains a list of alphanumeric merchant identifiers. Either this field or amount_limit field are required.
amount_limit: A decimal field that indicates the maximum monetary sum that can be cleared. Either this field or mids field are required.
To modify an existing card control, call the API again with the paymentCardId to update the "active", "mids", or "amount_limit" field.
With the Get Transactions API you have the opportunity to obtain merchant IDs from the networkMerchantId field. Te merchant ID is assigned by the card network for payment card transactions. This value however is not guaranteed to be returned by the card network.