Skip to content
Moov API documentation
Branch: master
Clone or download
Latest commit 7552e5c Jul 19, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github github: add issue template Oct 2, 2018
apps apps: lint html and fix ICL link Jun 19, 2019
cmd cmd/apitest: create a random email for Receiver Jun 19, 2019
nginx nginx: disable server_tokens Jun 19, 2019
vendor Update all Jul 18, 2019
.gitignore cmd/apitest: initial setup Oct 15, 2018
.travis.yml Update .travis.yml Jun 5, 2019
AUTHORS bump version for dev Oct 5, 2018
Dockerfile chore(deps): update nginx docker tag to v1.17 Jun 10, 2019
Dockerfile-apitest build: upgrade to Go 1.12 Feb 26, 2019
Dockerfile-localdevproxy build: add localdevproxy to image build steps Mar 12, 2019
LICENSE apache2 licensed Oct 2, 2018 docs: clarify apitest install May 21, 2019
go.mod build: update go module dependencies Jul 19, 2019
go.sum build: update go module dependencies Jul 19, 2019
makefile build: enable osx May 21, 2019
montserrat.css fix title, serve font and js ourselves Oct 2, 2018
openapi.yaml Remove ~1 Jun 28, 2019
redoc.standalone.js fix title, serve font and js ourselves Oct 2, 2018
renovate.json renovate: only run on monday Feb 28, 2019

Build Status Apache 2 licensed

This repository holds our website, which is our API documentation.

Documentation is markdown generated by ReDoc. View source on the Swagger Editor.

Getting Started / Install

  1. Clone the repository somewhere (git clone
  2. Edit the files to make your change (i.e. openpai.yaml)
  3. Run make to generate a docker image with your changes
    1. Verify your changes by running locally with make serve
    2. Also, you can run make serve-apps to load the OpenAPI pages for each Moov application
  4. Commit your changes, push up a new branch, and create a Pull Request!

API Requirements

  • Every endpoint MUST support X-Request-Id.
  • Every POST, PUT, and PATCH endpoint MUST support X-Idempotency-Key.
  • Authenticated requests (outside OAuth and Users) MUST accept both OAuth and User auth.
    • Some OAuth and User operations require their speciifc auth (or the other form to bootstrap).
  • All 4xx errors MUST include an error message for the user.


apitest is the name for a tool we write to test out API endpoints. Largely this tool is for checking our business logic paths work together (i.e. create a transfer).

To use this tool we recommend installing it locally (go get

$ apitest
2019/05/21 20:07:14.061194 main.go:59: Starting apitest v0.9.2-rc1
2019/05/21 20:07:14.061292 main.go:131: Using as base API address
2019/05/21 20:07:15.182516 main.go:169: ACH PONG
2019/05/21 20:07:15.290894 main.go:179: auth PONG
2019/05/21 20:07:15.397242 main.go:189: paygate PONG
2019/05/21 20:07:15.397276 main.go:216: Using X-Request-ID: 2e65e7b1c388aa2c030bb169afdc64b910d7ef66
2019/05/21 20:07:17.909185 main.go:216: SUCCESS: Created user 0d1b2ab53e85444b328db8838c4bcf3bd2d4b055 (email:
2019/05/21 20:07:18.076136 main.go:216: SUCCESS: Cookie works for user 0d1b2ab53e85444b328db8838c4bcf3bd2d4b055
2019/05/21 20:07:18.689341 main.go:216: SUCCESS: Created OAuth access token (ZEOVXUCENWIBVI9QICN-HA), expires in 2h0m0s
2019/05/21 20:07:19.971389 main.go:216: SUCCESS: Created Originator Depository (id=5131701bbf18d439471e7d7f025d061707a76bfa) for user
2019/05/21 20:07:20.176333 main.go:216: SUCCESS: Created Originator (id=3d04991ff9d92a22a33b25b31ee252846402fc84) for user
2019/05/21 20:07:21.191111 main.go:216: SUCCESS: Created Receiver Depository (id=9d763c8a83f3a0d652e4aed64712ac95510d7d09) for user
2019/05/21 20:07:21.625332 main.go:216: SUCCESS: Created Receiver (id=2ceb2c969428002bb437ceda22e3b0f64f3fac52) for user
2019/05/21 20:07:22.107874 main.go:216: SUCCESS: Created USD 220.98 transfer (id=630490fdaee379a3705a1f20940d850a659e17a0) for user
2019/05/21 20:07:22.431543 main.go:216: SUCCESS: Matched transactions on accounts
2019/05/21 20:07:22.549011 main.go:216: SUCCESS: invalid login credentials were rejected
2019/05/21 20:07:22.724240 main.go:216: SUCCESS: invalid OAuth2 access token was rejected

apitest -local can be used when launching Moov's applications with go run commands on the same host.

apitest -dev can be ran against our local dev setup in the infra repository.

Getting Help

channel info
Google Group moov-users The Moov users Google group is for contributors other people contributing to the Moov project. You can join them without a google account by sending an email to After receiving the join-request message, you can simply reply to that to confirm the subscription.
Twitter @moov_io You can follow Moov.IO's Twitter feed to get updates on our project(s). You can also tweet us questions or just share blogs or stories.
GitHub Issue If you are able to reproduce an problem please open a GitHub Issue under the specific project that caused the error.
moov-io slack Join our slack channel to have an interactive discussion about the development of the project. Request an invite to the slack channel


Yes please! Please start by reviewing our Code of Conduct.

You only have a fresh set of eyes once! The easiest way to contribute is to give feedback on the documentation that you are reading right now. This can be as simple as sending a message to our Google Group with your feedback or updating the markdown in this documentation and issuing a pull request.


Apache License 2.0 See LICENSE for details.

You can’t perform that action at this time.