Collecting payment details with Stripe

Using the payment details endpoint you can collect a customer's payment details.
In order to achieve this you must also utilise Stripe's API as that's where the details first need to be stored in order for OfficeRnD to be able access them.

Limitations

  • Currently payment details can be recorded only when using our Stripe integration.
  • Only cards can be recorded using method.
    Bank accounts can be recorded only in OfficeRnD's UI.
  • Multi-location billing isn't supported for cards, that are added using this endpoint.
    The recorded card will always have the same location as the member/company for which it's added.

How it works

  1. You must first create an account with Stripe.

  2. Once your account is created you'll need 2 things from Stripe:

    • Stripe account ID - this can be found in your Stripe account's dashboard by following this article.
    • Publishable key - this can be found in your Stripe account's developer keys section by following this article.
  3. You can use the parameters from above to call Stripe's tokens API.
    This will allow you to generate a token for the card that you'd like to record.

  4. After you generate a Stripe token for the desired card, you can then call our API to add the card in OfficeRnD.

    1. In order to associate the card with a member or a company in OfficeRnD you'll need to authenticate with a member's credentials and generate a token using the signin API.
  1. Once you've authenticated as a member you can then call the /payment-details endpoint and record the card under the member/company profile .

    Whether a card is associated with a member (if the member is part of a company) or a company depends on the "isPersonal" parameter.

    If set to true, the card will be associated with the member only and will not appear under the company's profile. If set to false, the card will be associated with the company.

    πŸ“˜

    Note

    If you want to associate a card with a company it must have at least one member with valid credentials in order to call the /payment-details endpoint.
    This member must be a billing person.

  1. After the POST request is successful the card should now be visible both in OfficeRnD and Stripe under the customer's profile.
    If the card you're trying to record is using 3DS, please see this section.

Personal and non-personal payment details

The "isPersonal" parameter is important when recording a card, as that determines for whom it will be recorded.
Since the /payment-details API is always called by a user, that is logged in, a member must be associated with this user.

  • If a member isn't part of a company, the "isPersonal" parameter should always be set to true, since they are the only ones who can use the card.
  • If recording a card for a company, said company must have at least one member to authenticate on its behalf and record the card with "isPersonal" set to false.

❗️

Important

The member recording a card for a company must be a billing person as only billing persons can record/remove payment details for their company.

Recording cards with 3DS

Certain cards that are recorded could require additional authentication.
If that's the case, when calling our /payment-details endpoint the response body that's returned will state that additional confirmation is needed for the card to be recorded.

More specifically, the "authorization" object of the response body contains a parameter called "status".
If a card requires 3DS authorization the value of said parameter will be set to "pending", rather than "not required".
Example:

"authorization": {
            "authProviderId": "seti_1NKg6BB82VXYHnlm7mDJnSqw",
            "status": "pending"
        }

In order to finalise the recording of the card in OfficeRnD you'll need to initiate the 3DS flow Stripe have described here.

Once the additional confirmation is completed, the card should be successfully recorded in OfficeRnD and will be visible in Stripe as well.