> ## Documentation Index
> Fetch the complete documentation index at: https://developer.plugchoice.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Plugchoice SDK

> Let the people using your app connect their EV charger to Plugchoice, without leaving your app.

export const Screen = ({name, alt, caption, wide = false}) => {
  const style = wide ? {
    width: '100%'
  } : {
    width: '280px',
    maxWidth: '100%'
  };
  return <figure style={{
    margin: '1.5rem 0',
    textAlign: 'center'
  }}>
      <img className="block dark:hidden" src={`/images/sdk/${name}-light.webp`} alt={alt} style={{
    ...style,
    margin: '0 auto',
    borderRadius: '12px',
    border: '1px solid rgba(128, 128, 128, 0.25)'
  }} />
      <img className="hidden dark:block" src={`/images/sdk/${name}-dark.webp`} alt={alt} style={{
    ...style,
    margin: '0 auto',
    borderRadius: '12px',
    border: '1px solid rgba(128, 128, 128, 0.25)'
  }} />
      {caption ? <figcaption style={{
    marginTop: '0.5rem',
    fontSize: '0.875rem',
    opacity: 0.7
  }}>{caption}</figcaption> : null}
    </figure>;
};

<Note>
  The Plugchoice SDK is in beta. Until version 1.0, a minor version may change the SDK or the SDK API. Pin the SDK version in your app and the `Plugchoice-Version` header on your server.
</Note>

With the Plugchoice SDK, your app gets a **Connect charger** button that does the hard part for you. Your user taps it, and Link guides them through the rest: finding the charger, connecting it to Wi-Fi and pointing it at Plugchoice. When they're done, the charger is in your app, ready to use.

<Screen name="flow" alt="An energy app with a Connect charger button, then the consent screen, then the charger being set up" wide />

## What your users can do

<Columns cols={2}>
  <Card title="Add a charger" icon="plus">
    Connect a new charger to Plugchoice and to your app.
  </Card>

  <Card title="Change its Wi-Fi" icon="wifi">
    Move a charger to another Wi-Fi network, for example after a new router.
  </Card>

  <Card title="Set it up" icon="sliders">
    Tell Plugchoice how the charger is wired, such as its maximum current.
  </Card>

  <Card title="Reconnect it" icon="rotate">
    Bring a charger back online when it lost its connection to Plugchoice.
  </Card>
</Columns>

## What you build

Three small pieces, and Link does the rest:

<Steps>
  <Step title="An endpoint on your server">
    It asks Plugchoice for a **client secret**: a short-lived pass that says who your user is and which chargers they may touch.
  </Step>

  <Step title="A button in your app">
    It opens Link. The SDK gets the client secret from your endpoint when it needs one.
  </Step>

  <Step title="A check when Link closes">
    Your app hears how it went, and your server confirms it with Plugchoice.
  </Step>
</Steps>

[How Link works](/sdk/how-link-works) explains each piece, and [Get started](/sdk/get-started) builds them.

## Why Link

* **Many brands, one button.** Volt Time, Zaptec, Alfen, Peblar, and any other OCPP charger. Plugchoice keeps Link up to date, so new brands and fixes reach your users without an update of your app.
* **What only a phone can do.** Link joins a charger's own Wi-Fi, finds it on the home network and talks to it over Bluetooth, behind the phone's usual permission prompts.
* **Your look.** Your name, logo and colour, in light and dark, in seven languages.

## Platforms

| Platform | Package | Works on |
| - | - | - |
| iOS | `PlugchoiceSDK` (Swift Package Manager) | iOS 16 and later |
| Android | `com.plugchoice:plugchoice` (Maven Central) | Android 10 and later |
| React Native and Expo | `@plugchoice/react-native` (npm) | Expo SDK 57 and later |
| A web page | No package: open a link | Any browser |

The SDK is open source: [github.com/plugchoice/mobile-sdk](https://github.com/plugchoice/mobile-sdk).

## Get access

Email [support@plugchoice.com](mailto:support@plugchoice.com) for test credentials. Test mode works with real chargers; see [Test and live](/sdk/concepts/test-and-live).

## Next

<Columns cols={2}>
  <Card title="How Link works" icon="lightbulb" href="/sdk/how-link-works">
    The few ideas behind the SDK, in plain words.
  </Card>

  <Card title="Get started" icon="rocket" href="/sdk/get-started">
    Add a charger from your app, end to end.
  </Card>

  <Card title="Installation" icon="download" href="/sdk/install">
    Add the SDK to your iOS, Android or React Native app.
  </Card>

  <Card title="Supported chargers" icon="charging-station" href="/sdk/chargers">
    What Link can do for each brand.
  </Card>
</Columns>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.