This information is for merchants and merchant service providers who want to integrate a card reader into their app and accept EMV and contactless payments with a Stripe account. Information is also provided about how Stripe Connect can be used together with Payworks.
Go to the
Test Gateway Manager to create a new Merchant with a Stripe Processing Path and make sure to enter your
Stripe Test Secret Key.
Also create a
merchantSecretKey
for the new Merchant.
Perform a Payment with Stripe
After
integrating the Pay Button make sure to switch to a real card reader and use the
merchantIdentifier
and
merchantSecretKey
from the merchant you have just created.
You can then start a payment and also send additional parameters towards Stripe like a statment descriptor or metadata.
MPTransactionParameters *parameters =
[MPTransactionParameters chargeWithAmount:[NSDecimalNumber decimalNumberWithString:@"10.00"]
currency:MPCurrencyGBP
optionals:^(id optionals)
{
// This subject (max. 128 characters with spaces) will appear as the Description in the Stripe Dashboard
optionals.subject = @"Bouquet of Flowers";
// Specify a Statement Descriptor
optionals.statementDescriptor = @"Bouquet";
// Specify up to 20 key-value pairs (See https://stripe.com/docs/api#metadata)
optionals.metadata = @{
@"Source" : @"POS",
@"Clerk Name" : @"John Appleseed"
};
}];
// Specify up to 20 key-value pairs (See https://stripe.com/docs/api#metadata)
Map metadata = new HashMap();
metadata.put("Source","POS");
metadata.put("Clerk Name", "John Appleseed");
TransactionParameters parameters =
new TransactionParameters.Builder()
.charge(new BigDecimal("10.00"), Currency.GBP)
// This subject (max. 128 characters with spaces) will appear as the Description in the Stripe Dashboard
.subject("Bouquet of Flowers")
// Specify a Statement Descriptor
.statementDescriptor("Bouquet")
.metadata(metadata)
.build();
,>,string>
All transactions will immediately appear in your Stripe Dashboard.
Make sure to use the payworks Testcard when testing, since real cards are not permitted on the test system. Transactions below GBP 0.30 will be declined by Stripe.
When creating new Merchants in the Live Gateway Manager, please provide the
Stripe Live Secret Key.
Accessing the Stripe Charge ID
If you need the Stripe Charge ID for a transaction, you can get it via
MPTransaction
in the
completed
block on iOS:
NSString *stripeChargeId = [[transaction clearingDetails] transactionIdentifier];
On Android use
Transaction
in the
onActivityResult
method:
Transaction transaction = MposUi.getInitializedInstance().getTransaction();
String stripeChargeId = transaction.getClearingDetails().getTransactionIdentifier();
If you want to offer EMV and contactless payments as part of your marketplace or platform, payworks makes this easy for you as well with full support for
Stripe Connect.
Working with Connected Accounts
In general, you need to provide the payworks platform with the
Stripe Account ID
(starting with acct_*) of the connected account that should receive the payment.
For
Standalone Accounts, you first need to make sure, that the Standalone Account is successfully connected to your own Stripe Platform Account. The
Stripe documentation explains how to implement the required OAuth workflow for this. In the last step of this workflow, you will receive the
stripe_user_id
, which must be provided as the Stripe Account ID.
During development and for pilots, you can perform all required Merchant Setup through the Gateway Manager as documented below. Later on, you can use the
payworks API to automatically set up the Merchants on the payworks Platform.
Merchant Setup to Create Charges Directly on the Connected Account
In the Gateway Manager, create a new Merchant with a Stripe Processing Path and make sure to specify the Secret Key of your
own Stripe Platform Account
as the
Stripe Secret Key.
Merchant Setup to Create Charges on the Platform Account
In the Gateway Manager, create a new Merchant with a Stripe Processing Path and make sure to specify the Secret Key of your
own Stripe Platform Account
as the
Stripe Secret Key.
If you want to refund a charge that has been created on your Stripe Platform Account, we strongly recommend that you use the Stripe API directly to refund the charge and make sure to set the reverse_transfer
parameter to true
.See Accessing the Stripe Charge ID above to learn how to get the required Stripe Charge ID.
Collecting an Application Fee
On iOS just also provide the
applicationFee
parameter:
MPTransactionParameters *parameters =
[MPTransactionParameters chargeWithAmount:[NSDecimalNumber decimalNumberWithString:@"10.00"]
currency:MPCurrencyGBP
optionals:^(id optionals)
{
// This subject will appear as the Description in the Stripe Dashboard
optionals.subject = @"Bouquet of Flowers";
// Specify a Statement Descriptor
optionals.statementDescriptor = @"Bouquet";
// Specify the Application Fee you want to receive (e.g. 1.23 equals 123 pence)
optionals.applicationFee = [NSDecimalNumber decimalNumberWithString:@"1.23"];
// Specify up to 20 key-value pairs (See https://stripe.com/docs/api#metadata)
optionals.metadata = @{
@"Source" : @"POS",
@"Clerk Name" : @"John Appleseed"
};
}];
Also on Android just also provide the
applicationFee
parameter:
// Specify up to 20 key-value pairs (See https://stripe.com/docs/api#metadata)
Map metadata = new HashMap();
metadata.put("Source","POS");
metadata.put("Clerk Name", "John Appleseed");
TransactionParameters parameters =
new TransactionParameters.Builder()
.charge(new BigDecimal("10.00"), Currency.GBP)
// This subject will appear as the Description in the Stripe Dashboard
.subject("Bouquet of Flowers")
// Specify a Statement Descriptor
.statementDescriptor("Bouquet")
// Specify the Application Fee you want to receive (e.g. 1.23 equals 123 pence)
.applicationFee(new BigDecimal("1.23"))
.metadata(metadata)
.build();
,>,string>