# Introduction
Welcome to the PesaWay Developer Guide.This section contains all the information you need to integrate into the PesaWay APIs. The PesaWay API provides a whole host of products that can facilitate you to improve your business processes and gain a better competitive edge. We expose endpoints for collections, disbursements and transaction queries. To invoke the API, you can utilize tools such as Postman REST client, curl, and HTTPie. In this documentation, we have included sample code snippets in various languages along with the expected JSON responses.
PesaWay API implements the JSON API Specification (opens new window)
# Getting Started
To start integrating with PesaWay API, please send an email to info@pesaway.com with your company details and a contact person. Our team will get in touch with you to start onboarding. Immediately onboarding is done you can start integrating.
# Access API Credentials
Once you have been onboarded, the team will share your company's API Credentials. These credentials, namely Client ID and Client Secret are needed to generate an access token that is necessary for authentication purposes when accessing the various resources from the exposed endpoints. A part of the credentials you get are sandbox credentials. You will use these credentials while developing. Once you are done developing, you will have a pesaway developer session to help test all endpoints and make sure all is well. This session is important to ensure all endpoints are working well going live.
# Going Live
After the developer session, a production app will be created and the credentials shared with you through email. You can then share a callback URL for receiving transaction results for the initiated transactions.
# Common Responses
TIP
When you make any request, there are standard PesaWay status codes that will be sent along with the response. The status codes and their meanings are as follows;
200.001 - Success
401.001 - Missing authentication credentials
400.001 - Invalid parameter
404.000 - Not found
403.002 - TransactionReference is already used
455.001 - Insufficient balance