Create an invoice
POST
/v1/invoices
package main
import ( "fmt" "strings" "net/http" "io")
func main() {
url := "https://api.feitpay.com/v1/invoices"
payload := strings.NewReader("{ \"store_id\": \"example\", \"currency\": \"EUR\", \"items\": [ { \"description\": \"example\", \"quantity\": 1, \"unit_amount\": \"59.90\" } ], \"customer\": { \"name\": \"example\", \"email\": \"hello@example.com\", \"reference\": \"example\" }, \"memo\": \"example\", \"due_at\": \"2026-04-15T12:00:00Z\", \"expires_in_seconds\": 604800, \"allowed_networks\": [ \"example\" ], \"metadata\": { \"additionalProperty\": \"example\" } }")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Gryphem-Environment", "test") req.Header.Add("Authorization", "Bearer <token>") req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close() body, _ := io.ReadAll(res.Body)
fmt.Println(res) fmt.Println(string(body))
}const url = 'https://api.feitpay.com/v1/invoices';const options = { method: 'POST', headers: { 'Gryphem-Environment': 'test', Authorization: 'Bearer <token>', 'Content-Type': 'application/json' }, body: '{"store_id":"example","currency":"EUR","items":[{"description":"example","quantity":1,"unit_amount":"59.90"}],"customer":{"name":"example","email":"hello@example.com","reference":"example"},"memo":"example","due_at":"2026-04-15T12:00:00Z","expires_in_seconds":604800,"allowed_networks":["example"],"metadata":{"additionalProperty":"example"}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.feitpay.com/v1/invoices \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --header 'Gryphem-Environment: test' \ --data '{ "store_id": "example", "currency": "EUR", "items": [ { "description": "example", "quantity": 1, "unit_amount": "59.90" } ], "customer": { "name": "example", "email": "hello@example.com", "reference": "example" }, "memo": "example", "due_at": "2026-04-15T12:00:00Z", "expires_in_seconds": 604800, "allowed_networks": [ "example" ], "metadata": { "additionalProperty": "example" } }'Honors Idempotency-Key (replays return the original response for 24 h).
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Header Parameters
Section titled “Header Parameters”Gryphem-Organization
string
Active organization for dashboard sessions. Ignored for API keys (the key determines the organization).
Gryphem-Environment
string
test (default) or live for dashboard sessions. API keys determine the environment.
Idempotency-Key
string
Unique key per logical create operation (max 255 chars). Replays return the original response; reuse with a different body returns idempotency_error.
Request Bodyrequired
Section titled “Request Bodyrequired”Media typeapplication/json
object
store_id
required
string
currency
required
string
items
required
Array<object>
object
description
required
string
quantity
required
integer
unit_amount
required
Decimal string. Never a float.
string
customer
object
name
string
email
string format: email
reference
string
memo
string
due_at
string format: date-time
expires_in_seconds
integer
allowed_networks
Array<string>
metadata
object
key
additional properties
string
Responses
Section titled “Responses”Created with a payment intent and checkout URL.
Media typeapplication/json
object
id
required
string
object
required
string
livemode
required
boolean
number
required
string
store_id
required
string
status
required
string
currency
required
string
subtotal
required
Decimal string. Never a float.
string
total
required
Decimal string. Never a float.
string
customer
required
object
name
required
string | null
email
required
string | null
reference
required
string | null
items
required
Array<object>
object
description
required
string
quantity
required
integer
unit_amount
required
Decimal string. Never a float.
string
amount
required
Decimal string. Never a float.
string
memo
required
string | null
due_at
required
string | null format: date-time
payment_intent_id
required
string | null
checkout_url
required
string | null
metadata
required
object
key
additional properties
string
created_at
required
string format: date-time
voided_at
required
string | null format: date-time
Example
{ "object": "invoice", "status": "open", "subtotal": "59.90", "total": "59.90", "items": [ { "unit_amount": "59.90", "amount": "59.90" } ], "payment_status": "created"}Missing or invalid credentials.
Media typeapplication/json
object
error
required
object
type
required
string
code
required
string
message
required
string
param
string
request_id
required
string
Example
{ "error": { "type": "invalid_request_error" }}Authenticated but not permitted.
Media typeapplication/json
object
error
required
object
type
required
string
code
required
string
message
required
string
param
string
request_id
required
string
Example
{ "error": { "type": "invalid_request_error" }}Validation failed.
Media typeapplication/json
object
error
required
object
type
required
string
code
required
string
message
required
string
param
string
request_id
required
string
Example
{ "error": { "type": "invalid_request_error" }}Too many requests. See Retry-After.
Media typeapplication/json
object
error
required
object
type
required
string
code
required
string
message
required
string
param
string
request_id
required
string
Example
{ "error": { "type": "invalid_request_error" }}Headers
Section titled “Headers”Retry-After
integer