Now that we have our billing API all set up, let’s do a quick test in our local environment.

Create a mocks/billing-event.json file and add the following.

  "body": "{\"source\":\"tok_visa\",\"storage\":21}",
  "requestContext": {
    "identity": {
      "cognitoIdentityId": "USER-SUB-1234"

We are going to be testing with a Stripe test token called tok_visa and with 21 as the number of notes we want to store. You can read more about the Stripe test cards and tokens in the Stripe API Docs here.

Let’s now invoke our billing API by running the following in our project root.

$ serverless invoke local --function billing --path mocks/billing-event.json

The response should look similar to this.

    "statusCode": 200,
    "body": "{\"status\":true}"

Deploy the Changes

Let’s quickly deploy the changes we’ve made.

From your project root, run the following.

$ serverless deploy

Once deployed, you should see something like this in your console.

Service Information
service: notes-api
stage: prod
region: us-east-1
stack: notes-api-prod
resources: 38
api keys:
  POST -
  GET -{id}
  GET -
  PUT -{id}
  DELETE -{id}
  POST -
  create: notes-api-prod-create
  get: notes-api-prod-get
  list: notes-api-prod-list
  update: notes-api-prod-update
  delete: notes-api-prod-delete
  billing: notes-api-prod-billing

Note the new /billing endpoint and notes-api-prod-billing function that’s been added to the list.

Commit the Changes

Let’s commit and push our changes to GitHub.

$ git add .
$ git commit -m "Adding a billing API"
$ git push

Now that we have our new billing API ready. Let’s look at how to setup unit tests in Serverless. We’ll be using that to ensure that our business logic has been configured correctly.