Transfer Intents

Authentication

The Ponto API uses API keys to authenticate requests. You can access your API key by contacting the Ponto team. These secret keys have the prefix sk_live. Be sure to keep these keys secure. Authentication to the API is performed via bearer auth. Use the header Authorization: Bearer sk_test_4eC39HqLyjWDarjtT1zdp7dc when sending requests to the API.

All API requests must be made over HTTPS. API requests without authentication will fail with a 401 response code.

Once a Session has been created, the returned token should be sent with all subsequent requests to ensure the user cash out is secure. Tokens should be sent in the header x-secret. Requests without a token will fail with a 401 response code.

Create a transfer intent

POST https://ponto.org/transfer_intents

Create a new transfer intent. The quoted exchange rate, destination net amount, and all other relevant values in the response will be valid until the transaction is complete.

Headers

Name
Type
Description

Authentication

string

Authentication with secret key.

Request Body

Name
Type
Description

origin_instruction

string

Information for the transfer origin. See below. All fields shown below are required.

destination_instruction

string

Information for the transfer destination. See below. All fields shown below are required.

{
  "data": [
    {
      "sid": 46,
      "id": "transfer_intent_yPZ5yDp7pyBTNZRe",
      "status": "AWAITING_EXECUTION",
      "origin_instruction": {
        "fees": [
          {
            "estimated": false,
            "gross_fee_amount": 0.04999999999999982,
            "fee_rate_percentage": 0.01
          },
          {
            "asset": "cusd",
            "estimated": true,
            "gross_fee_amount": 0.00015,
            "fee_rate_percentage": 0.000030303030302959677
          },
          {
            "estimated": false,
            "gross_fee_amount": 0.009899700000000067,
            "fee_rate_percentage": 0.002
          }
        ],
        "asset": "cusd",
        "currency": "USD",
        "identity": "identity_wkwwaBY8qc1JxosI",
        "net_amount": 4.9399503000000005,
        "gross_amount": 5
      },
      "origin_asset_type": "cusd",
      "origin_address_primary": null,
      "destination_asset_type": "ghana_mtn",
      "destination_address_primary": "+233550134146",
      "live_mode": false,
      "destination_instruction": {
        "fees": [
          {
            "estimated": false,
            "gross_fee_amount": 0.05858304844591089,
            "fee_rate_percentage": 0.002
          },
          {
            "estimated": false,
            "gross_fee_amount": 0.5846588234901908,
            "fee_rate_percentage": 0.02
          }
        ],
        "asset": "ghana_mtn",
        "address": {
          "id": "address_tTj8LHstbDAZLaCq",
          "sid": 1,
          "asset": "ghana_mtn",
          "primary": "+233550134146",
          "created_at": "2021-07-09T20:23:04.474Z",
          "updated_at": "2021-07-09T20:23:04.474Z",
          "address_info": null,
          "authentication_info": null
        },
        "currency": "GHS",
        "identity": "identity_wkwwaBY8qc1JxosI",
        "net_amount": 28.6482823510193,
        "gross_amount": 29.291524222955402
      },
      "metadata": {},
      "funding_address": "address_9gq9zl9RFVCWly4h",
      "funding_instructions": {
        "description": "Send 5 USD in Celo Dollars to the wallet or account information in this object.",
        "cusd_address": "0x1cEF689bb5a8A37c178Dde62102dD30a63feB887"
      },
      "job": null,
      "exchange_rate": 5.929518,
      "exchange_rate_expiration_seconds": 10,
      "exchange_rate_at_execution": null,
      "origin_gross_amount": 5,
      "origin_net_amount": 4.9399503,
      "destination_gross_amount": 29.2915242229554,
      "destination_net_amount": 28.6482823510193,
      "funded": false,
      "created_at": "2021-07-15T22:22:12.172Z",
      "updated_at": "2021-07-15T22:22:12.172Z",
      "executed_at": null,
      "completed_at": null,
      "cancelled_at": null,
      "account": null,
      "partner": "partner_1",
      "_type": "transfer_intent"
    }
  ]
}

origin_instruction:

destination_instruction:

Execute a transfer intent

POST https://ponto.org/transfer_intents/:id/execute

Execute a transfer intent after creation. You will have a designated number of seconds to run this execution after creation.

Query Parameters

Name
Type
Description

id

string

id of the transfer intent to be executed.

Headers

Name
Type
Description

Authorization

string

Authentication with secret key.

Cancel a transfer intent

POST https://ponto.org/transfer_intents/:id/cancel

Cancel a transfer intent after creation. You cannot cancel a transfer intent that has already been executed.

Query Parameters

Name
Type
Description

id

string

id of the transfer intent to be cancelled.

Headers

Name
Type
Description

Authorization

string

Authentication with secret key.

Read a transfer intent

GET https://ponto.org/transfer_intents/:id

Query Parameters

Name
Type
Description

id

string

id of the transfer intent to be executed.

Headers

Name
Type
Description

Authorization

string

Authentication with secret key.

Last updated

Was this helpful?